Язык преобразований XSL

       

Метод вывода HTML


Метод вывода 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 не должен представлять элемент, иначе чем метод 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 &lt; 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, используя метод, рекомендованный в главе Рекомендации HTML 4.0.

Метод вывода html может показать любой символ, воспользовавшись ссылкой на сущность символа, если таковая определена в той версии HTML, которую использует данный метод вывода.

Инструкции обработки метод вывода html должен завершать символом >, а не комбинацией ?>.

Булевы атрибуты (то есть, такие атрибуты, которым разрешено иметь только одно значение - название самого атрибута) метод вывода html должен показывать в минимизированной форме. Например, начальный тэг, записанный в стиле как

<OPTION selected="selected">

должен быть представлен в виде

<OPTION selected>

В значении атрибута метод вывода html не должен маскировать символ &, сразу за которым следует символ { (см. главу в Рекомендации HTML 4.0). Например, начальный тэг, записанный в стиле как

<BODY bgcolor='&amp;{{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.


Содержание раздела