Порядок просмотра документа

Порядок просмотра документа

Узлы дерева 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?> и заканчиваться корневым элементом.