Технология XSLT
Шрифт:
Отличие обработки пробельных символов заключается в том, что после разбора и создания логической модели для входящего документа и для самого преобразования, узлы, которые содержат только пробельные символы, будут удалены из дерева.
Рассмотрим шаблон преобразования, содержащий пробельные символы ("
Поскольку
Вообще, текстовый узел будет сохранен при выполнении хотя бы одного из следующих условий.
□ Он содержит хотя бы один непробельный символ.
□ Он принадлежит элементу, в котором сохранение пробельных символов задано средствами XML, а именно атрибутом
□ Он принадлежит элементу, имя которого включено во множество имен элементов, для которых нужно сохранять пробельные символы.
Во всех остальных случаях текстовый узел будет удален.
Продемонстрируем все три случая сохранения текстового узла на примерах.
Первый случай довольно прост. Шаблон
создаст в выходящем документе фрагмент
безо всяких пробельных символов, в то время как шаблон
создаст фрагмент вида
Различие двух этих шаблонов в том, что в первом текстовые узлы содержат текст "
Второй случай сохранения текстовых узлов основан на использовании возможностей XML по управлению пробельными символами. Если в элементе задан атрибут
Шаблон
создаст в выходящем документе фрагмент вида:
Если же шаблон будет определен в виде:
то в выходящем фрагменте в элементах
В третьем случае сохранение пробельных символов текстового узла зависит от того, принадлежит ли имя родительского элемента особому множеству, называемому множеством имен элементов, для которых следует сохранять пробельные символы или, для краткости, сохраняющее множество.
Для преобразований сохраняющее множество состоит из единственного элемента