<!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
.
<?xml version='1.0'?>