Валиков Алексей Н.
Шрифт:
Попросту говоря, литеральные элементы выводятся в результирующий документ без изменений; но их содержимое при этом все же выполняется.
В предыдущем случае шаблон содержал пустой литеральный элемент
Теперь обратимся к случаю, когда один литеральный элемент будет включать другой:
При выполнении этого шаблона процессор создаст элемент
Теперь попробуем включить в содержимое элемента инструкцию XSLT:
При выполнении этого шаблона процессор создаст результирующий элемент а и включит в него результат выполнения его содержимого, то есть элемента
результатом выполнения был бы следующий элемент:
При воссоздании литеральных элементов в результирующем документе, процессор копирует также все атрибуты и узлы пространств имен, которые ассоциируются с данным элементом. Например, результатом выполнения следующего шаблона:
будет элемент вида:
Как можно заметить, процессор воссоздал не только сам элемент, но также его атрибуты и объявления пространств имен. В этом и есть смысл литеральных элементов — они копируются в выходящее дерево без изменений, хотя и здесь есть несколько исключений.
□ Процессор не будет копировать атрибуты, принадлежащие пространству имен XSLT.
□ Процессор не будет создавать узел пространства имен, соответствующий URI
□ Процессор не будет создавать узлы пространств имен, префиксы которых исключаются атрибутами
Обратим внимание на следующие особенности этого преобразования.
□ В нем объявлено пространство имен с префиксом
□ Литеральный элемент
□ Литеральный элемент