Для определения логической структуры документов в XML используются DTD — определения типов документов. В большинстве случаев определения типов содержатся во внешних ресурсах, которые включаются в документ в виде системных или публичных идентификаторов.
XSLT позволяет создавать ссылки на внешние определения типов при помощи атрибута
doctype-system
элемента
xsl:output
.
Пример
Предположим,
что мы создаем документ, логическая схема которого определена во внешнем файле по адресу
"/dtds/document.dtd"
. Тогда, определив в преобразовании элемент
xsl:output
с атрибутом
doctype-system
, равным
"/dtds/document.dtd"
, мы получим в выходящем документе определение типа в виде
задано внешнее определение логического типа документа, это определение может быть расширено также и публичным идентификатором. Публичный идентификатор указывается в атрибуте
doctype-public
элемента
xsl:output
. Его использование может быть продемонстрировано следующим примером.
PUBLIC "-//Document//Description" "/dtds/document.dtd">
<page> content </page>
Атрибут media-type
Атрибут
media-type
позволяет задавать медиа-тип содержимого выходящего
документа. Для метода вывода
"xml"
значением
media-type
по умолчанию является
"text/xml"
. Несмотря на то, что
media-type
не оказывает никакого влияния на содержимое самого документа, XSLT-процессоры, используемые на стороне сервера, могут в зависимости от значения этого атрибута изменять MIME-тип исходящих данных при использовании, к примеру, такого протокола, как HTTP.
Атрибут omit-xml-declaration
XML-документы, в принципе, могут быть корректными и без декларации XML. Поэтому XSLT позволяет опускать эту декларацию в выходящем документе, для чего значению атрибута
omit-xml-declaration
должно быть присвоено
"yes"
:
<xsl:output
omit-xml-declaration="yes"/>
В случае если значение атрибута
omit-xml-declaration
опущено или не равно
"yes"
, процессор будет выводить в выходящем документе декларацию XML, которая включает информацию о версии (по умолчанию
"1.0"
) и кодировке документа (по умолчанию
"utf-8"
или
"utf-16"
в зависимости от процессора).
Атрибут standalone
Для того чтобы объявить документ как самостоятельный или несамостоятельный (standalone или non-standalone соответственно), следует использовать атрибут
standalone
элемента
xsl:output
. Если этот атрибут будет присутствовать в
xsl:output
, то процессор включит в декларацию XML объявление
standalone
с соответствующим значением. Если атрибут
standalone
не указан, объявление
standalone
в декларацию XML выходящего документа включено не будет.
Метод вывода "html"
В нынешнем состоянии языки XML и HTML сильно похожи синтаксически, но при этом имеют некоторые довольно весомые различия. Метод вывода
"html"
используется для того, чтобы выводить документы в формате, который будет понятен большинству существующих на данный момент Web-браузеров.
Одно из основных различий HTML и XML состоит в том, что в XML пустые элементы имеют формат
<имя/>
, в то время как в HTML тот же элемент был бы выведен, как
<имя>
— без косой черты. Метод вывода
"html"
учитывает эти различия и выводит теги пустых элементов HTML без косой черты после имени. В соответствии с технической рекомендацией языка HTML 4.0, пустыми элементами являются