ссылкой на сущность символа, если таковая определена в той версии HTML, которую использует данный метод вывода.
Инструкции обработки метод вывода html должен завершать символом > , а не комбинацией ?>.
Булевы атрибуты (то есть, такие атрибуты, которым разрешено иметь только одно значение – название самого атрибута) метод вывода html должен показывать в минимизированной форме. Например, начальный тэг, записанный в стиле как
<OPTION selected='selected'>
должен быть представлен в виде
<OPTION selected>
В значении атрибута метод вывода html не должен маскировать символ & , сразу за которым следует символ { (см. главу B.7.1 в Рекомендации HTML 4.0). Например, начальный тэг, записанный в стиле как
<BODY bgcolor='&{{randomrbg}};'>
должен быть представлен в виде
<BODY bgcolor='&{randomrbg};'>
Атрибут encoding указывает, какая должна использоваться предпочтительная кодировка. Если имеется элемент HEAD, то метод вывода html сразу после начального элемента HEAD должен добавить элемент META, указывающий реально используемую кодировку символов. Например,
<HEAD>
<META http-equiv='Content-Type' content='text/html; charset=EUC-JP'> …
Может оказаться, что конечное дерево содержит символ, который невозможно представить в той кодировке, которую XSLT процессор использует для вывода. В этом случае, если символ встретился в таком контексте, где HTML распознает ссылки на символы, то этот символ должен быть представлен ссылкой на сущность символа или десятичной числовой ссылкой на символ. В противном случае (например, в элементе script, style или в комментарии), XSLT процессор должен фиксировать ошибку.
Если указаны атрибуты doctype-public или doctype- system, метод вывода html непосредственно перед первым элементом должен представить декларацию типа документа. Именем, следующим за <! DOCTYPE, должно быть HTML или html. Если указан атрибут doctype-public, метод вывода должен представить PUBLIC, за которым следует указанный публичный идентификатор. Если дополнительно указан атрибут doctype-system, то перед публичным идентификатором должен быть показан указанный системный идентификатор. Если указан атрибут doctype-system, но не было атрибута doctype-public, метод вывода должен представить SYSTEM , за которым следует указанный системный идентификатор.
Для метода вывода html можно использовать атрибут media- type. По умолчанию подразумевается значение text/html.
Метод вывода text представляет конечное дерево, показывая строковое значение каждого текстового узла в конечном дереве, причем в том порядке, как они следуют в документе, и без какого-либо маскирования.
Для метода вывода text можно использовать атрибут media- type. Значением по умолчанию для атрибута media-type является text/plain.
Атрибут encoding указывает кодировку, которую метод вывода text должен использовать для преобразования последовательностей символов в последовательности байтов. Значение по умолчанию для этого атрибута зависит от системы. Если в конечном дереве есть символ, который невозможно представить в той кодировке, которую XSLT процессор использует для вывода, XSLT процессор должен фиксировать ошибку.
16.4 Запрет маскирования при выводе
Обычно метод вывода xml, представляя текстовые узлы, маскирует & и < (а также, возможно, и другие символы). Тем самым обеспечивается вывод корректного XML документа. Иногда однако бывает удобно иметь возможность показывать почти, но не совсем корректный документ XML. Например, вывод может содержать некорректные разделы, которые будут преобразованы в корректный XML последующей процедурой, не связанной с XML. По этой причине XSLT предоставляет механизм запрета маскирования при выводе. Элементы xsl:value-of или xsl:text могут содержать атрибут disable-output-escaping, который может иметь значения yes или no. По умолчанию подразумевается значение no. Если значение атрибута yes, текстовый узел, полученный обработкой элемента xsl:value-of или xsl:text, должен быть представлен без маскирования. Например,
<xsl:text disable-output-escaping='yes'><</xsl:text>
должен сгенерировать единственный символ <.
Если маскирование при выводе было запрещено для текстового узла, который используется где- либо еще кроме текстового узла в конечном дереве, фиксируется ошибка. Таким образом, будет ошибкой