<!ELEMENT xsl:template (#PCDATA)>

<!ATTLIST xsl:stylesheet

 id ID #REQUIRED

 version CDATA #IMPLIED>

]>

<PLANETS>

 <PLANET>

  <NAME>Mercury</NAME>

  <MASS UNITS='(Earth = 1)'>.0553</MASS>

  <DAY UNITS='days'>58.65</DAY>

  <RADIUS UNITS='miles'>1516</RADIUS>

  <DENSITY UNITS='(Earth = 1)'>.983</DENSITY>

  <DISTANCE UNITS='million miles'>43.4</DISTANCE><!--B перигелии-- >

 </PLANET>

 <PLANET>

  <NAME>Venus</NAME>

  <MASS UNITS='(Earth = 1)'>.815</MASS>

  <DAY UNITS='days'>116.75</DAY>

  <RADIUS UNITS='miles'>3716</RADIUS>

  <DENSITY UNITS='(Earth = 1)'>.943</DENSITY>

  <DISTANCE UNITS='million miles'>66.8</DISTANCE><!--B перигелии-- >

 </PLANET>

 <PLANET>

  <NAME>Earth</NAME>

  <MASS UNITS='(Earth = 1)'>1</MASS>

  <DAY UNITS='days'>1</DAY>

  <RADIUS UNITS='miles'>2107</RADIUS>

  <DENSITY UNITS='(Earth = 1)'>1</DENSITY>

  <DISTANCE UNITS='million miles'>128.4</DISTANCE><!--B перигелии-- >

 </PLANET>

 <xsl:stylesheet version='1.0' id='stylesheet'

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

  <xsl:template match='/PLANETS'>

   <HTML>

    <HEAD>

     <TITLE>

      The Planets Table

     </TITLE>

    </HEAD>

    <BODY>

     <H1>

      The Planets Table

     </H1>

     <TABLE BORDER='2'>

      <TR>

       <TD>Name</TD>

       <TD>Mass</TD>

       <TD>Radius</TD>

       <TD>Day</TD>

      </TR>

      <xsl:apply-templates/>

     </TABLE>

    </BODY>

   </HTML>

  </xsl:template>

  <xsl:template match='PLANET'>

   <TR>

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

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

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

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

   </TR>

  </xsl:template>

  <xsl:template match='xsl:stylesheet'></xsl:template>

 </xsl:stylesheet>

</PLANETS>

Следует отметить еще одно: включив всю таблицу стилей в файле embedded.xml в элемент <xsl:stylesheet>, я должен был предоставить шаблон таблицы стилей для элемента <xsl:stylesheet>. (Если бы я этого не сделал, текст из текстовых узлов таблицы стилей был бы скопирован в результирующий документ, — это обсуждается в главе 3 в разделе, посвященном правилам по умолчанию для шаблонов.) Я оставил этот элемент пустым, поместив в конце таблицы стилей в embedded.xml следующую строку, поэтому из самой таблицы стилей в результирующий документ ничего не копируется:

<xsl:template match='xsl:stylesheet'></xsl:template>

Теперь в Saxon я могу из embedded.xml создать planets.html. В Windows для указания того, что используется встроенная таблица стилей, в Saxon служит параметр :

C:planets>saxon -a embedded.xml > planets.html

Элемент <xsl:include>

Другой способ вставить таблицы стилей внутрь других документов — использовать элемент <xsl:include>, позволяющий включить содержимое файла в определенное место в таблице стилей. У этого элемента только один атрибут:

• href (обязательный). URI таблицы стилей, которую вы хотите включить.

Этот элемент пустой и не обладает никаким содержимым.

Рассмотрим листинг 2.9. В этом случае я помещу часть таблицы стилей из planets.xsl в новый документ, rules.xml. Затем я смогу включить rules.xml в planets.xsl.

Листинг 2.9. Включение таблицы стилей

<?xml version='1.0'?>

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

0

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

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