публичным идентификатором. Публичный идентификатор указывается в атрибуте doctype- public
элемента xsl:output
. Его использование может быть продемонстрировано следующим примером.
<?xml version='1.0' encoding='utf-8'?>
<page> content </page>
<xsl:stylesheet
version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output indent='yes'
doctype-system='/dtds/document.dtd'
doctype-public='-//Document//Description' />
<xsl:template match='/'><xsl:copy-of select='/'/></xsl:template>
</xsl:stylesheet>
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE page
PUBLIC '-//Document//Description' '/dtds/document.dtd'>
<page> content </page>
Атрибут media-type
позволяет задавать медиа-тип содержимого выходящего документа. Для метода вывода 'xml'
значением media-type
по умолчанию является 'text/xml'
. Несмотря на то, что media-type
не оказывает никакого влияния на содержимое самого документа, XSLT-процессоры, используемые на стороне сервера, могут в зависимости от значения этого атрибута изменять MIME-тип исходящих данных при использовании, к примеру, такого протокола, как HTTP.
XML-документы, в принципе, могут быть корректными и без декларации XML. Поэтому XSLT позволяет опускать эту декларацию в выходящем документе, для чего значению атрибута omit-xml- declaration
должно быть присвоено 'yes'
:
<xsl:output
omit-xml-declaration='yes'/>
В случае если значение атрибута omit-xml-declaration
опущено или не равно 'yes'
, процессор будет выводить в выходящем документе декларацию XML, которая включает информацию о версии (по умолчанию '1.0'
) и кодировке документа (по умолчанию 'utf-8'
или 'utf-16'
в зависимости от процессора).
Для того чтобы объявить документ как самостоятельный или несамостоятельный (standalone или non-standalone соответственно), следует использовать атрибут standalone
элемента xsl:output
. Если этот атрибут будет присутствовать в xsl:output
, то процессор включит в декларацию XML объявление standalone
с соответствующим значением. Если атрибут standalone
не указан, объявление standalone
в декларацию XML выходящего документа включено не будет.
Метод вывода
В нынешнем состоянии языки XML и HTML сильно похожи синтаксически, но при этом имеют некоторые довольно весомые различия. Метод вывода 'html'
используется для того, чтобы выводить документы в формате, который будет понятен большинству существующих на данный момент Web-браузеров.
Одно из основных различий HTML и XML состоит в том, что в XML пустые элементы имеют формат <
, в то время как в HTML тот же элемент был бы выведен, как <
— без косой черты. Метод вывода 'html'
учитывает эти различия и выводит теги пустых элементов HTML без косой черты после имени. В соответствии с технической рекомендацией языка HTML 4.0, пустыми элементами являются area
, base
, basefont
, br
, col
, frame
, hr
, img
, input
, isindex
, link
, meta
и param
.
<?xml version='1.0' encoding='utf-8'?>
<page>
<title>I'm just a simple page...</title>
<content>I've got a simple content</content>
</page>
<xsl:stylesheet
version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output indent='yes' method='html'/>
<xsl:template match='/page'>
<html>
<head>
<title>
<xsl:value-of select='title'/>
</title>
</head>
<body>
Welcome!<br/>
Be our guest! <HR/>
<xsl:value-of select='content'/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>I'm just a simple page...</title>