публичным идентификатором. Публичный идентификатор указывается в атрибуте doctype- public элемента xsl:output. Его использование может быть продемонстрировано следующим примером.

Листинг 8.50. Входящий документ

<?xml version='1.0' encoding='utf-8'?>

<page> content </page>

Листинг 8.51. Преобразование

<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>

Листинг 8.52. Выходящий документ

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE page

 PUBLIC '-//Document//Description' '/dtds/document.dtd'>

<page> content </page>

Атрибут media-type

Атрибут media-type позволяет задавать медиа-тип содержимого выходящего документа. Для метода вывода 'xml' значением media-type по умолчанию является 'text/xml'. Несмотря на то, что media-type не оказывает никакого влияния на содержимое самого документа, XSLT-процессоры, используемые на стороне сервера, могут в зависимости от значения этого атрибута изменять MIME-тип исходящих данных при использовании, к примеру, такого протокола, как HTTP.

Атрибут omit-xml-declaration

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

Для того чтобы объявить документ как самостоятельный или несамостоятельный (standalone или non-standalone соответственно), следует использовать атрибут standalone элемента xsl:output. Если этот атрибут будет присутствовать в xsl:output, то процессор включит в декларацию XML объявление standalone с соответствующим значением. Если атрибут standalone не указан, объявление standalone в декларацию XML выходящего документа включено не будет.

Метод вывода 'html'

В нынешнем состоянии языки 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.

Пример Листинг 8.53. Входящий документ

<?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>

Листинг 8.54. Преобразование

 <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>

Листинг 8.55. Выходящий документ

<html>

 <head>

  <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

  <title>I'm just a simple page...</title>

Вы читаете Технология XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату