4.

Помните, что XML — это метод вывода по умолчанию, если только ваш входной документ не содержит тег <HTML> или <html>. Тем не менее, даже если вы выполняете преобразование одного XML-документа в другой, зачастую удобно использовать элемент <xsl:output> — для того, чтобы, например, задать кодировку символов (по умолчанию это обычно UTF-8, восьмибитовое подмножество Unicode) или выравнивание выходного документа (это описывается в главе 3).

РАБОТА С ФРАГМЕНТАМИ XML

Можно работать не только с документами XML целиком, но и с их фрагментами. В этом случае следует установить атрибут omit-xml-declaration в «yes» — для того, чтобы опустить объявление XML в начале дерева вывода, как обсуждается в главе 6.

Когда вы используете метод вывода XML, дерево вывода представляет собой хорошо сформированный XML (однако он не обязан быть допустимым). Не обязательно оно должно быть хорошо сформированным XML-документом, это может быть общая разобранная внешняя сущность XML. Содержимое вывода может включать символьные данные, разделы CDATA, ссылки на сущности, инструкции обработки, комментарии и элементы. Вывод должен также удовлетворять объявлению пространств имен XML.

Метод вывода: текст

Метод текстового вывода предназначен не только для создания простого текста: он применяется для любого основанного на тексте формата, не являющегося XML или HTML. Например, с его помощью можно создавать документы в формате RTF (Rich Text Format). В этом формате для задания форматирования документов используются встроенные текстовые коды — их можно поместить в документы самостоятельно при помощи метода текстового вывода.

В листинге 2.6 приведен пример таблицы стилей (которую мы увидим в главе 6), преобразующей planets.xml в planets.rtf.

Листинг 2.6. Таблица стилей RTF

<?xml version='1.0'?>

<xsl:stylesheet version='1.0'

 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

 <xsl:output method='text'/>

 <xsl:strip-space elements='*'/>

 <xsl:template match='/PLANETS'>{ tf1ansideff0{fonttbl {\fcharset0 Courier New:}}

  viewkind4uc1pardlangl033 The Planets Tablepar0

  Name ab Mass ab Rad. ab Daypar

  <xsl:apply-templates/>

  par

 }</xsl:template>

 <xsl:template match='PLANET'>

  <xsl:value-of select='NAME'/>

  ab

  <xsl:value-of select='MASS'/>

   ab

  <xsl:value-of select='RADIUS'/>

   ab

  <xsl:value-of select='DAY'/>

  ab

  par

 </xsl:template>

</xsl:stylesheet>

Результирующий документ RTF, planets.rtf, изображен на рис. 2.3 в Microsoft Word 2000. Обратите внимание на то, что я установил метод вывода в текст в элементе <xsl:output method='text'>:

<?xml version='1.0'?>

<xsl:stylesheet version='1.0'

 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

 <xsl:output method='text'/>

 <xsl:template match='/PLANETS'>{ tf1ansideff0{fonttbl(\fcharset0 Courier New;}}

  viewkind4uclpardlang1033 The Planets Tablepar

  .

  .

  .

Рис. 2.3. Planets.rtf в Microsoft Word

Вы также могли заметить, что я принялся записывать коды RTF сразу же после элемента <xsl:template> — я сделал так потому, что в документах RTF коды RTF должны появляться с самого начала. Если бы я решил вставлять коды RTF на следующей строке — например, так:

<?xml versions='1.0'>

<xsl:stylesheet version='1.0'

 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

 <xsl:output method='text'/>

 <xsl:template match='/PLANETS'>

  { tf1ansideff0{fonttbl{\fcharset0 Courier New;}}

  viewkind4uc1pardlang1033 The Planets Tablepar

  .

  .

  .

то выходной файл RTF начинался бы с символа новой строки, что вызвало бы ошибку приложения для работы с файлами RTF — такого, как Microsoft Word. Более подробно RTF и другие форматы будут рассмотрены в главе 6.

Упрощенные таблицы стилей

Как можно заметить на основе рассмотренного до сих пор материала, создавать таблицы стилей XSLT не так-то просто. W3C попытался облегчить эту процедуру, разработав упрощенные таблицы стилей (simplified stylesheets), в которые не нужно — а на самом деле и невозможно — включать элемент <xsl:stylesheet> или какие-либо еще элементы высокого уровня.

Фактически упрощенная таблица стилей представляет собой результирующий документ, содержащий

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

0

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

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