, в отличие от многих других элементов не может переопределяться в преобразованиях со старшим порядком импорта. Элементы
xsl:decimal-format
должны определять десятичные форматы с различными именами (за исключением тех случаев, когда значения их атрибутов полностью
совпадают).
Контроль вывода документа
Несмотря на то, что XSLT-процессоры должны лишь только преобразовывать логические модели документов, организованные в виде деревьев, многие из них имеют также возможность выдавать результат преобразования в виде последовательности символов.
Элемент xsl:output
Синтаксис этого элемента приведен ниже:
<xsl:output
method = "xml" | "html" | "text" | "имя"
version = "токен"
encoding = "строка"
omit-xml-declaration = "yes" | "no"
standalone = "yes" | "no"
doctype-public = "строка"
doctype-system = "строка"
cdata-section-elements = "имена"
indent = "yes" | "no"
media-type = "строка"/>
Элемент верхнего уровня
xsl:output
позволяет указывать, каким образом должно быть выведено результирующее дерево.
Главным атрибутом элемента
xsl:output
является атрибут
method
, который определяет, какой метод должен использоваться для вывода документа. Значением этого атрибута может быть любое имя, но при этом техническая рекомендация XSLT определяет только три стандартных метода вывода —
"xml"
,
"html"
и
"text"
. В том случае, если процессор поддерживает нестандартный метод вывода, его реализация полностью зависит от производителя.
Если в преобразовании не определен элемент
xsl:output
или в нем не указан атрибут
method
, метод преобразования выбирается по умолчанию исходя из следующих условий.
□ Если корень выходящего документа имеет дочерний элемент с локальным именем "
html
" (в любом регистре символов), которому предшествуют только пробельные символы, методом вывода по умолчанию становится
"html
".
□ Во всех остальных случаях методом вывода по умолчанию является
(версия) — определяет версию языка выходящего документа;
□
indent
(индентация) — определяет, должен ли процессор добавлять пробельные символы для более наглядного форматирования документа;
□
encoding
(кодировка) — определяет, в какой кодировке должен быть выведен документ. Значение этого атрибута не зависит от регистра символов, то есть значения
encoding="utf-8"
и
encoding="UtF-8"
будут эквивалентны. В атрибуте
encoding
можно использовать только печатаемые символы ASCII, то есть символы интервала от
#x21
до
#x7e
. Значением
encoding
должно быть название набора символов, определенное в стандартах IANA (Internet Assigned Numbers Authority) или RFC2278. В противном случае, атрибут должен начинаться символами "
x-
";
□
media-type
— определяет тип содержимого MIME выходящего документа;
□
doctype-system
— определяет системный идентификатор, который должен быть использован в декларации типа документа (DTD);
□
doctype-public
— определяет публичный идентификатор, который должен быть использован в декларации типа документа (DTD);
□
omit-xml-declaration
(пропустить декларацию XML) — определяет, нужно ли включать декларацию XML в выходящий документ или нет. Значением этого атрибута должно быть либо
"yes"
(пропустить декларацию), либо
"no"
(включить декларацию в выходящий документ);
□
standalone
(самостоятельный документ) — определяет, должен ли процессор выводить указание на самостоятельность документа (standalone declaration). Значением этого атрибута может быть либо
"yes"
(выводить указание), либо
"no"
(не выводить указание на самостоятельность);
□
cdata-section-elements
— определяет список элементов, текстовое содержимое которых должно быть выведено с использованием секций CDATA.
Использование этих атрибутов зависит от того, какой из методов выбран для вывода преобразованного документа.