Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:
Пример

Узел комментария

<!-- To do...
– ->
может быть изображен следующим образом (рис. 3.10):

Рис. 3.10. Изображение узла комментария

Сводная таблица характеристик узлов

Для удобства использования мы можем свести в одну таблицу (табл. 3.1) такие характеристики узлов, как строковое значение, локальная часть имени, пространство имен и так далее.

Таблица 3.1. Характеристики различных типов узлов

Тип узла Характеристики
Строковое значение Расширенное имя Дочерние узлы Родительские узлы
Локальная часть имени Пространство имен
Корневой узел Конкатенация текстовых потомков Нет Узлы элементов, комментариев, инструкций по обработке Нет
Узел элемента Конкатенация текстовых потомков Имя элемента Пространство имен элемента Узлы элементов, комментариев, инструкций по обработке, текстовые узлы Корневой узел или узел элемента
Узел атрибута Значение атрибута Имя атрибута Пространство имен атрибута Нет Узел элемента
Текстовый узел Символьные данные Нет Нет Узел элемента
Узел пространства имен URI пространства имен Префикс пространства имен Нулевое Нет Узел элемента
Узел инструкции по обработке Содержимое инструкции Имя целевого приложения Нулевое Нет Корневой узел или узел элемента
Узел комментария Текст комментария Нет Нет Корневой узел или узел элемента

Ограничения модели XML-документа

Модель XML-документа, описанная выше, является вполне достаточной для того, чтобы манипулировать структурой документа и данными, которые он содержит. Между тем, эта модель имеет определенные ограничения, а именно:

□ Не учитывается информация, содержащаяся в блоке DTD. Как следствие, в XSLT невозможно манипулировать определениями сущностей, элементов, атрибутов и так далее.

□ Не учитываются некоторые синтаксические особенности входящего XML-документа. Например: использовались ли в определенном атрибуте одинарные или двойные кавычки; была ли определенная строка задана сущностью или просто текстом, был ли текст заключен в секции CDATA или нет.

□ Если атрибут элемента был определен в DTD со значением по умолчанию, то в преобразовании нельзя точно сказать, присутствовал ли он физически во входящем документе или нет.

□ Не учитывается, был ли пустой элемент определен как

<b></b>
или
<b/>
.

Одним словом, предложенная выше модель не учитывает информацию, которая не важна с точки зрения структуры документа. На практике помимо структуры бывает также важен и детальный синтаксис документа (например, необходимо вместо

&#160;
выводить
&nbsp;
). К сожалению, применение XSLT для таких задач ограничено вследствие ограничений самой модели документа.

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

Узлы дерева 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. Порядок просмотра данного документа будет следующим:

□ корневой узел;

  • Читать дальше
  • 1
  • ...
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: