Метод вывода: HTML
Метод вывода: HTML
В нашей таблице стилей planets.xsl элемент <xsl:output> не используется; это значит, что для этой таблицы я полагался на правила вывода по умолчанию. Типом вывода по умолчанию является XML, если только процессор XSLT не встретит тег <HTML> или <html>. (Заметьте, что это не формальное требование, а только соглашение, которому не обязаны следовать все процессоры XSLT.) В planets.xsl я использовал тег <HTML> следующим образом:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
.
.
.
Однако, если удалить этот тег:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
.
.
.
то такой вид вывода вы получите от процессора XT Джеймса Кларка. Обратите внимание на инструкции обработки XML в начале:
<?xml version="1.0" encoding="utf-8"?>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
.
.
.
С другой стороны, можно явно указать тип вывода HTML при помощи элемента <xsl:output>, даже не прибегая к элементу <HTML>:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/PLANETS">
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
.
.
.
Вот вывод XT в данном случае — только фрагмент HTML, никаких инструкций обработки XML:
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
.
.
.
ЭЛЕМЕНТЫ <META>, АВТОМАТИЧЕСКИ ДОБАВЛЯЕМЫЕ В HTML
Если вы явно используете элемент <xml:output method="html"/>, некоторые процессоры XSLT, такие как Saxon, добавляют в элемент <head> выходного документа элемент <meta> подобным образом: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">.
В общем случае процессоры XSLT должны учитывать, что в HTML определенные элементы, такие как <br>, <img>, <frame> и т.д., пусты. Также пробелы и другие символы в значениях атрибута URI преобразуются в соответствии со спецификацией HTML (пробел становится «%20» и т.п.), инструкции обработки завершаются символом >, а не ?>, и учитывается тот факт, что отдельным атрибутам значение не присваивается.