блок CDATA должен быть закрыт, сам символ должен быть представлен как ссылка на символ или сущность, затем должен быть открыт новый блок CDATA для остальных символов в текстовом узле.
Блоки CDATA не должны использоваться за исключением тех текстовых узлов, где атрибут cdata-section-elements явно требует вывода с помощью блоков CDATA.
Метод вывода xml должен предоставить декларацию XML, если атрибут omit-xml-declaration не имеет значения yes. Декларация XML должна содержать и информацию о версии, и декларацию кодировки. Если указан атрибут standalone , то должна быть включена декларация одиночного документа с тем же значением, какое было у атрибута standalone. В противном случае декларация одиночного документа быть не должно. Тем самым гарантируется, что будут присутствовать и декларация XML (допустимая в начале сущности документа) и декларация текста (допустимая в начале внешней общей разобранной сущности).
Если указан атрибут doctype-system, метод вывода xml должен ставить декларацию типа документа непосредственно перед первым элементом. Имя, следующее за <!DOCTYPE, должно быть названием этого первого элемента. Если к тому же указан атрибут doctype-public, то метод вывода xml за PUBLIC должен сперва поставить публичный идентификатор, а затем системный идентификатор. В противном случае, за SYSTEM должен следовать системный идентификатор. Внутренний набор декларации должен быть пуст. Если атрибут doctype-system не указан, атрибут doctype-public следует игнорировать.
Для метода вывода xml можно использовать атрибут media- type . Значением по умолчанию для атрибута media-type является text/xml.
Метод вывода html представляет конечное дерево в виде HTML. Например,
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method='html'/>
<xsl:template match='/'>
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
…
</xsl:stylesheet>
Атрибут version показывает версию HTML. Значением по умолчанию является 4.0, означающее, что результат должен быть выведен как HTML документ, отвечающий Рекомендации HTML 4.0 [HTML].
Метод вывода html не должен представлять элемент, иначе чем метод xml, если расширенное имя этого элемента имеет ненулевой URI пространства имён. Элемент, чье расширенное имя имеет ненулевой URI пространства имён, должен быть представлен как XML. Если расширенное имя элемента имеет нулевой URI пространства имён, но локальная часть этого имени как название элемента HTML не распознается, этот элемент должен быть представлен как непустой встроенный элемент, такой как span.
Метод вывода html для пустых элементов не должен показывать конечный тэг. В HTML 4.0 пустыми элементами являются area, base, basefont, br, col, frame, hr, img, input, isindex, link, meta и param. Например, элемент, указанный в стиле как <br/> или <br></br> , должен быть представлен как <br>.
Метод вывода html должен распознавать названия HTML элементов независимо от регистра. Например, все элементы с названиями br, BR и Br должны распознаваться как HTML элемент br и показываться без закрывающего тэга.
Метод вывода html не должен выполнять маскирование содержимого элементов script и style. Например, фиксированный конечный элемент, записанный в стиле как
<script>if (a < b) foo()</script>
или
<script><![CDATA[if (a < b) foo()]]></script>
должен быть представлен как
<script>if (a < b) foo()</script>
Метод вывода html не должен маскировать символы <, встретившиеся в значении атрибутов.
Если атрибут indent имеет значение yes, то метод вывода html, показывая конечное дерево, может добавлять или, наоборот, удалять пробельные символы ровно до тех пор, пока это не влияет на то, как HTML-агент пользователя будет отображать результат вывода. По умолчанию атрибут имеет значение yes.
В значении атрибутов URI метод вывода html должен маскировать символы, не относящиеся к набору ASCII, используя метод, рекомендованный в главе B.2.1 Рекомендации HTML 4.0.
Метод вывода html может показать любой символ, воспользовавшись