Элемент <xsl:include>
Элемент <xsl:include>
Другой способ вставить таблицы стилей внутрь других документов — использовать элемент <xsl:include>, позволяющий включить содержимое файла в определенное место в таблице стилей. У этого элемента только один атрибут:
• href (обязательный). URI таблицы стилей, которую вы хотите включить.
Этот элемент пустой и не обладает никаким содержимым.
Рассмотрим листинг 2.9. В этом случае я помещу часть таблицы стилей из planets.xsl в новый документ, rules.xml. Затем я смогу включить rules.xml в planets.xsl.
Листинг 2.9. Включение таблицы стилей
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="rules.xsl"/>
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
<xsl:apply-templates/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
А вот как выглядит rules.xsl (листинг 2.10). Обратите внимание на то, что это полный документ XSL с объявлением XML и элементом <xsl:stylesheet>.
Листинг 2.10. rules.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<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:stylesheet>
Вот как это работает. Кроме <xsl:include>, для вставки таблиц стилей или фрагментов таблицы стилей можно также применять <xsl:import>.
НОВШЕСТВА В XSLT 2.0
Один из аспектов, которые явно войдут в XSLT 2.0, следующий — включаемые документы могут использовать свои собственные таблицы стилей. Например, если вы включите документ, написанный на XML языке MathML, этот включенный документ должен иметь возможность использовать свою собственную таблицу стилей.