Шрифт:
</xt:document>
Все это создало весьма запутанную ситуацию, поскольку каждый разрабатывал свои собственные решения. По этой причине в XSLT 1.1 для поддержки нескольких результирующих документов был представлен новый элемент,
<xsl:document>
, со следующими атрибутами: •
href
(обязательный). Показывает, где будет помещен новый документ. Устанавливается в абсолютный или относительный URI, без идентификатора фрагмента; •
method
(необязательный). Определяет метод вывода, используемый для создания результирующего документа. Устанавливается в «xml», «html», «text» или QName, не являющееся NCName; •
version
(необязательный). Определяет версию выходного документа. Устанавливается в NMTOKEN; •
encoding
(необязательный). Устанавливает кодировку выходного документа. Устанавливается в строку; •
omit-xml-declaration
(необязательный). Устанавливается в «yes» или «no», чтобы опустить объявление XML или не отпускать; •
cdata-section-elements
(необязательный). Задает имена тех элементов, чье содержимое нужно вывести как разделы CDATA. Устанавливается в список QName, разделенных символами-разделителями; •
doctype-public
(необязательный). Задает открытый идентификатор, который будет использован в объявлении <!DOCTYPE>
вывода. Устанавливается в строковое значение; •
doctype-system
(необязательный). Задает системный идентификатор, который будет использован в объявлении <!DOCTYPE>
вывода. Устанавливается в строковое значение; •
indent
(необязательный). Определяет, будет ли выходной документ выровнен для отображения структуры вложенности. Устанавливается в «yes» или «no»; •
media-type
(необязательный). Устанавливает тип MIME вывода. Устанавливается в строковое значение; •
standalone
(необязательный). Определяет, будет ли отдельное объявление включено в выходные данные, и если да, устанавливает его значение. Устанавливается в «yes» или «no». Этот элемент содержит тело шаблона.
Следующий пример основан на упрощенной таблице стилей. В этом случае я создал в HTML-документе две рамки (frame), а также два HTML-документа для отображения в этих рамках (
frame1.html
и frame2.html
). Первую рамку и ее документ я создал следующим образом: <HTML>
<HEAD>
<TITLE>
Two Frames
</TITLE>
</HEAD>
<FRAMESET cols="50%, 50%">
<FRAME src="frame1.html"/>
<xsl:document href="#">
<HTML>
<HEAD>
<TITLE>
Frame 1
</TITLE>
</HEAD>
<BODY>
<H1>This is frame 1.</H1>
</BODY>
</HTML>
</xsl:document>
.
.
.
Затем я могу создать вторую рамку и ее документ:
<HTML>
<HEAD>
<TITLE>
Two Frames
</TITLE>
</HEAD>
<FRAMESET cols="50%, 50%">
<FRAME src="frame1.html"/>
<xsl:document href="#">
<HTML>
<HEAD>
<TITLE>
Frame 1
</TITLE>
</HEAD>
<BODY>