Порядок просмотра документа
Порядок просмотра документа
Узлы дерева XML-документа находятся в определенном порядке, который называется порядком просмотра документа (англ. document order). Этот порядок важен для вычисления XPath-вырэжений, которые оперируют множествами узлов. Несмотря на то, что эти множества не имеют внутреннего порядка, при вычислении выражений узлы в них будут перебираться в прямом или обратном порядке просмотра документа в зависимости от того, какие оси навигации применяются в выражении.
Порядок просмотра документа — это порядок, который соответствует появлению в документе первого символа текстовой записи узла. Например, для элементов это будет порядок появления в документе открывающих тегов.
Более четко порядок просмотра документа определяется следующими правилами:
? корневой узел является первым узлом в порядке просмотра документа;
? узлы элементов предшествуют своим дочерним узлам, узлам пространств имен и узлам атрибутов;
? узлы пространств имен предшествуют узлам атрибутов;
? узлы атрибутов предшествуют другим дочерним узлам своего элемента;
? остальные узлы упорядочиваются в последовательности их появления в документе.
Обратным порядком просмотра документа называется порядок, который в точности противоположен обычному порядку просмотра документа. Обычный порядок просмотра документа также называют прямым порядком или порядком документа.
Пример
В качестве примера приведем схему дерева и выясним порядок просмотра
следующего документа:
<!-- Start -->
<?арр open?>
<а level="0" xmlns:b="urn:b" xmlns="urn:a">
alpha
<b:bravo/><!-- To do... --><charlie/>
delta
</a>
<?app close?>
Дерево этого документа показано на рис. 3.11. Порядок просмотра данного документа будет следующим:
? корневой узел;
? узел комментария <!-- start -->;
? узел инструкции по обработке <?app open?>;
? узел элемента a;
? узел пространства имен "urn:а";
? узел пространства имен "urn:b";
? атрибут level;
? текстовый узел "alpha";
? узел элемента b:bravo;
? узел пространства имен "urn:а";
? узел пространства имен "urn:b";
? комментарий с текстом "To do ...";
? элемент charlie;
? узел пространства имен "urn:а";
? узел пространства имен "urn:b";
? текстовый узел "delta";
? узел инструкции по обработке <?арр close?>.
Рис. 3.11. Схема дерева XML-документа
Соответственно, обратный порядок просмотра документа будет начинаться с инструкции по обработке <?app close?> и заканчиваться корневым элементом.