XML-дерево
Документы XML имеют иерархическую структуру и концептуально могут интерпретироваться как древовидная структура, называемая деревом XML .
Документы XML должны содержать корневой элемент (тот, который является родительским для всех остальных элементов). Все элементы XML-документа могут содержать подэлементы, текст и атрибуты. Дерево, представленное XML-документом, начинается с корневого элемента и разветвляется до самого нижнего уровня элементов. выпустила как минимум две стандартные терминологии Хотя нет единого мнения относительно терминологии, используемой в XML-деревьях, W3C :
- Терминология, используемая в XPath модели данных
- Терминология, используемая в наборе информации XML .
XPath определяет синтаксис, называемый выражениями XPath , который идентифицирует один или несколько внутренних компонентов (элементов, атрибутов и т. д.) XML-документа. XPath широко используется для доступа к данным, структурированным в формате XML.
Информационный набор XML, или информационный набор XML, описывает абстрактную модель данных для документов XML в терминах информационных элементов. Он часто используется в спецификациях языков XML из-за удобства описания ограничений на конструкции, допускаемые этими языками.
Представление в виде деревьев
[ редактировать ]В математике дерево — это неориентированный граф, в котором любые две вершины соединены ровно одним простым путем. Любой связный граф без простых циклов является деревом. Древовидная структура данных имитирует иерархическую древовидную структуру с набором связанных узлов. Иерархия состоит из порядка, определенного на множестве. Термин «иерархия» используется, чтобы подчеркнуть иерархические отношения между элементами.
Спецификация XML определяет документ XML как правильно сформированный текст, если он удовлетворяет списку правил синтаксиса, определенных в спецификации. Эта спецификация длинная, однако есть два ключевых момента, касающихся древовидной структуры XML-документа:
- Теги начала, конца и пустого элемента, разделяющие элементы, правильно вложены, ни один из них не пропущен и не перекрывается.
- Один «корневой» элемент содержит все остальные элементы.
Эти функции напоминают свойства деревьев, поскольку имеется один корневой узел и порядок элементов. XML появился как первоклассный тип данных в других языках. Расширение JavaScript (E4X) явно определяет два конкретных объекта (XML и XMLList), которые поддерживают узлы документов XML и списки узлов XML как отдельные объекты и используют точечную нотацию, определяющую отношения родитель-потомок. [1] Эти структуры данных представляют XML-документы в виде древовидной структуры.
Графическое представление XML-дерева может быть простым, как диаграмма ASCII, или более графически сложной иерархией. Например, документ XML и дерево ASCII имеют одинаковую структуру. XML-деревья не отображают содержимое экземпляра документа, а только структуру документа. В этом примере «Продукт» является корневым элементом дерева, а два дочерних узла «Продукта» — «Имя» и «Сведения». Подробности содержат два дочерних узла: «Описание» и «Цена». Команда дерева в Windows и *nix также создает аналогичную древовидную структуру и путь.
Product
├───Name
└───Details
└───Description
└───Price
<Product>
<Name>Widget</Name>
<Details>
<Description>
This Widget is the highest quality widget.
</Description>
<Price>5.50</Price>
</Details>
</Product>
Модель данных XPath
[ редактировать ]XPath , язык путей XML, представляет собой язык запросов для выбора узлов из документа XML. XPath определяет синтаксис, называемый выражениями XPath , который может запрашивать в XML-документе один или несколько внутренних компонентов (элементов, атрибутов и т. д.). XPath широко используется в других базовых спецификациях XML и в библиотеках программирования для доступа к данным, закодированным в XML. [2]
Терминология модели данных XPath
[ редактировать ]Модель данных XPath — это длинная спецификация, включающая множество функций, не связанных с деревьями XML. Ниже перечислены ключевые термины из этой спецификации и спецификации XML. [3] [4]
- Пример
- Модель данных представлена в виде последовательности.
- Экземплярный документ
- Документ, использующий одно и то же дерево последовательности/XML и соответствующий ему.
- Последовательность
- Коллекция заказов, состоящая из нуля или более элементов. Последовательность не может быть членом последовательности. Отдельный элемент, появляющийся индивидуально, моделируется как последовательность, содержащая один элемент.
- Элемент
- Узел в последовательности, который может содержать
- Узел
- Любой элемент, представленный в дереве/последовательности XML.
- Корневой узел
- Самый верхний элемент дерева. Все остальные элементы и узлы должны содержаться внутри корневого узла.
- Элемент
- Узел или атомарное значение.
- Пространство ценности
- Часть элемента, содержащая данные, а не дополнительные элементы.
- Атомный тип
- Примитивный простой тип или тип, полученный путем ограничения из другого атомарного типа.
- Атомная ценность
- Значение, содержащееся в пространстве значений, которое является атомарным типом.
- QName
- Полное имя элемента. Он должен соответствовать правилам именования объектов XML. (т. е. должно начинаться с буквы или подчеркивания, учитывать регистр, не может начинаться с букв xml (в любом случае), может содержать буквы, цифры, дефисы, подчеркивания и точки, не может содержать пробелы.)
- Расширенное имя QName
- Полное имя элемента. Он может включать префикс и пространство имен. Оно должно включать локальное имя элемента.
Внутри данного дерева порядок документов удовлетворяет следующим ограничениям: [5]
- Корневой узел — это первый узел.
- Каждый узел возникает раньше всех своих детей и потомков.
- Узлы пространства имен следуют сразу за узлом элемента, с которым они связаны. Относительный порядок узлов пространства имен стабилен, но зависит от реализации.
- Узлы атрибутов следуют сразу за узлами пространства имен элемента, с которым они связаны. Если с данным элементом не связаны узлы пространства имен, то узлы атрибутов, связанные с этим элементом, сразу же следуют за элементом. Относительный порядок узлов атрибутов стабилен, но зависит от реализации.
- Относительный порядок одноуровневых узлов — это порядок, в котором они встречаются в дочернем свойстве родительского узла.
- Дети и потомки появляются раньше следующих братьев и сестер.
XML-информационный набор
[ редактировать ]Информационный набор XML (XML Infoset) описывает абстрактную модель данных XML-документа в терминах набора информационных элементов. Определения в спецификации набора информации XML предназначены для использования в других спецификациях, которые должны ссылаться на информацию в правильно сформированном документе XML. Информационный набор позволяет удобно описывать ограничения на конструкции XML, которые допускают другие языки XML. XML-документ имеет набор информации, если он правильно сформирован и удовлетворяет ограничениям пространства имен. Информационный набор может содержать до одиннадцати различных типов информационных элементов:
- Информационный элемент документа (всегда присутствует)
- Информационные элементы элемента
- Элементы информации об атрибутах
- Информационные элементы инструкции по обработке
- Нерасширенные информационные элементы ссылки на сущность
- Информационные элементы персонажа
- Информационные элементы комментариев
- Информационный элемент объявления типа документа
- Неанализируемые элементы информации об объекте
- Информационные элементы обозначений
- Информационные элементы пространства имен [6]
Терминология набора информации XML
[ редактировать ]Информационный набор XML представляет собой длинную спецификацию, включающую множество функций, не связанных с деревьями XML. Ниже перечислены наиболее важные термины, относящиеся к терминологии XML-дерева:
«В наборе информации имеется ровно один информационный элемент документа, а все остальные информационные элементы доступны из свойств информационного элемента документа, либо прямо, либо косвенно через свойства других информационных элементов. Информационный элемент документа имеет следующие свойства:
- [дети]
- [элемент документа]
- [нотации]
- [неразобранные сущности]
- [базовый URI]
- [схема кодировки символов]
- [автономный]
- [версия]
- [все декларации обработаны]
Для каждого элемента, появляющегося в XML-документе, существует элемент информации об элементе. Одним из информационных элементов элемента является значение свойства [document element] информационного элемента документа, соответствующего корню дерева элементов, а все остальные информационные элементы элемента доступны путем рекурсивного следования его свойству [children]. Информационный элемент элемента имеет следующие свойства:
- [имя пространства имен]
- [местное название]
- [префикс]
- [дети]
- [атрибуты]
- [атрибуты пространства имен]
- [пространства имен в области видимости]
- [базовый URI]
- [родитель]
Для каждого атрибута (указанного или заданного по умолчанию) каждого элемента в документе, включая объявления пространства имен, существует элемент информации об атрибуте. Однако последние появляются как члены свойства [namespace атрибуты] элемента, а не его свойства [attributes]. Атрибуты, объявленные в DTD без значения по умолчанию и не указанные в начальном теге элемента, не представлены элементами информации об атрибутах. Информационный элемент атрибута имеет следующие свойства:
- [имя пространства имен]
- [местное название]
- [префикс]
- [нормализованное значение]
- [уточнено]
- [тип атрибута]
- [ссылки]
- [элемент владельца] [7]
Примечания
[ редактировать ]- ^ «Обработка XML с помощью E4X». Центр разработчиков Mozilla. Фонд Мозилла.
- ^ Модель данных XQuery 1.0 и XPath 2.0 (XDM) (второе издание), 14 декабря 2010 г., http://www.w3.org/TR/xpath-datamodel/
- ^ Модель данных XQuery 1.0 и XPath 2.0 (XDM) (второе издание), 14 декабря 2010 г., http://www.w3.org/TR/xpath-datamodel/
- ^ Расширяемый язык разметки (XML) 1.0 (пятое издание), 26 ноября 2008 г., дата обращения: 24 июля 2018 г., https://www.w3.org/TR/xml/REC-xml-20081126-review.html#sec-terminology
- ^ Модель данных XQuery 1.0 и XPath 2.0 (XDM) (второе издание), 14 декабря 2010 г., http://www.w3.org/TR/xpath-datamodel/
- ^ Информационный набор XML (второе издание), 4 февраля 2004 г., http://www.w3.org/TR/xml-infoset/
- ^ Информационный набор XML (второе издание), 4 февраля 2004 г., http://www.w3.org/TR/xml-infoset/