<?xml version="1.0" encoding="utf-8"?>
<page><br/><br/></page>
<xsclass="underline" stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsclass="underline" output
indent="yes"
cdata-section-elements="page"/>
<xsclass="underline" template match="/">
<xsclass="underline" copy-of select="/"/>
</xsclass="underline" template>
</xsclass="underline" stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<page><![CDATA[<br/>]]><br/>
</page>
В соответствии с синтаксисом XML, секции CDATA не могут содержать последовательности символов "]]>". Потому, встретив такую комбинацию в тексте элемента, имя которого включено в cdata-section-elements, процессор заменит ее двумя секциями CDATA. Одна будет содержать "]]", вторая – ">".
<?xml version="1.0" encoding="utf-8"?>
<page>
<data>]]></data>
<pre><!-- Comment --></pre>
</page>
<xsclass="underline" stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsclass="underline" output
indent="yes"
cdata-section-elements="data pre"/>
<xsclass="underline" template match="/">
<xsclass="underline" copy-of select="/"/>
</xsclass="underline" template>
</xsclass="underline" stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<page>
<data><![CDATA[]]]]><![CDATA[>]]></data>
<pre><![CDATA[<!-- Comment -->]]></pre>
</page>
Для определения логической структуры документов в XML используются DTD — определения типов документов. В большинстве случаев определения типов содержатся во внешних ресурсах, которые включаются в документ в виде системных или публичных идентификаторов.
XSLT позволяет создавать ссылки на внешние определения типов при помощи атрибута doctype-system элемента xsclass="underline" output.
Предположим, что мы создаем документ, логическая схема которого определена во внешнем файле по адресу "/dtds/document.dtd". Тогда, определив в преобразовании элемент xsclass="underline" output с атрибутом doctype-system, равным "/dtds/document.dtd", мы получим в выходящем документе определение типа в виде
<!DOCTYPE элемент SYSTEM "/dtds/document.dtd">
где элемент — первый элемент выходящего документа.
<?xml version="1.0" encoding="utf-8"?>
<page> content </page>
<xsclass="underline" stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsclass="underline" output indent="yes" doctype-system="/dtds/document.dtd"/>
<xsclass="underline" template match="/"><xsclass="underline" copy-of select="/"/></xsclass="underline" template>
</xsclass="underline" stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE page SYSTEM "/dtds/document.dtd">
<page> content </page>
Если в преобразовании атрибутом doctype-system элемента xsclass="underline" output задано внешнее определение логического типа документа, это определение может быть расширено также и публичным идентификатором. Публичный идентификатор указывается в атрибуте doctype-public элемента xsclass="underline" output. Его использование может быть продемонстрировано следующим примером.
<?xml version="1.0" encoding="utf-8"?>
<page> content </page>
<xsclass="underline" stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsclass="underline" output indent="yes"
doctype-system="/dtds/document.dtd"
doctype-public="-//Document//Description" />
<xsclass="underline" template match="/"><xsclass="underline" copy-of select="/"/></xsclass="underline" template>
</xsclass="underline" stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE page
PUBLIC "-//Document//Description" "/dtds/document.dtd">
<page> content </page>
Атрибут media-type позволяет задавать медиа-тип содержимого выходящего документа. Для метода вывода "xml" значением media-type по умолчанию является "text/xml". Несмотря на то, что media-type не оказывает никакого влияния на содержимое самого документа, XSLT-процессоры, используемые на стороне сервера, могут в зависимости от значения этого атрибута изменять MIME-тип исходящих данных при использовании, к примеру, такого протокола, как HTTP.
XML-документы, в принципе, могут быть корректными и без декларации XML. Поэтому XSLT позволяет опускать эту декларацию в выходящем документе, для чего значению атрибута omit-xml-declaration должно быть присвоено "yes":
<xsclass="underline" output
omit-xml-declaration="yes"/>
В случае если значение атрибута omit-xml-declaration опущено или не равно "yes", процессор будет выводить в выходящем документе декларацию XML, которая включает информацию о версии (по умолчанию "1.0") и кодировке документа (по умолчанию "utf-8" или "utf-16" в зависимости от процессора).