Язык преобразований XSL


Метод вывода XML - часть 3


Атрибут cdata-section-elements содержит список (разделенных пробельными символами). Каждый приводится к расширенному имени с помощью деклараций пространства имен, в области действия которых находится элемент xsl:output с данным . Если имеется пространство имен по умолчанию, то оно используется для тех , которые своего префикса не имеют. Расширение выполняется до того, как несколько элементов xsl:output будут объединены в один эффективный элемент xsl:output. Если членом данного переченя является расширенное имя родителя текстового узла, то сам текстовый узел должен быть представлен в виде блока CDATA. Например, <xsl:output cdata-section-elements="example"/>

приведет к тому, что фиксированный конечный элемент, записанный в стиле как <example>&lt;foo></example>

или <example><![CDATA[<foo>]]></example>

будет представлен как <example><![CDATA[<foo>]]></example>

Если текстовый узел содержит последовательность символов ]]>, то текущий открытый блок CDATA будет закрыт сразу после ]], а перед > будет открыт новый блок CDATA. Например, фиксированный конечный элемент, записанный в стиле как

<example>]]&gt;</example>

будет представлен в виде <example><![CDATA[]]]]><![CDATA[>]]></example>

Если текстовый узел содержит символ, который невозможно представить в той кодировке символов, которая используется для вывода конечного дерева, перед таким символом текущий открытый блок CDATA должен быть закрыт, сам символ должен быть представлен как ссылка на символ или сущность, затем должен быть открыт новый блок CDATA для остальных символов в текстовом узле.

Блоки CDATA не должны использоваться за исключением тех текстовых узлов, где атрибут cdata-section-elements явно требует вывода с помощью блоков CDATA.

Метод вывода xml должен предоставить декларацию XML, если атрибут omit-xml-declaration не имеет значения yes. Декларация XML должна содержать и информацию о версии, и декларацию кодировки.


- Начало -  - Назад -  - Вперед -