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

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

Так же как и <xsl:include>, <xsl:import> позволяет вставить таблицу стилей или фрагмент таблицы стилей в другую таблицу стилей. И так же, как <xsl:include>, у <xsl:import> есть только один атрибут:

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

И так же, как <xsl:include>, <xsl:import> пуст и не имеет содержимого. В чем же тогда разница между ними? Разница заключается в старшинстве импорта (import precedence).

Порядок включения дает процессору XSLT способ разрешения; конфликтов, которые могут возникнуть, например, когда двум правилам соответствует один и тот же узел. Старшинство импортируемой таблицы стилей или фрагмента таблицы меньше, чем старшинство таблицы стилей, которая ее импортирует. Если вы импортируете несколько таблиц стилей или фрагментов таблицы стилей, первая из них будет обладать меньшим старшинством, чем импортируемая вслед за ней, которая в свою очередь будет обладать меньшим старшинством, чем следующая, и т.д.

В остальном, однако, импорт таблицы стилей или фрагмента таблицы практически аналогичен их включению, хотя вы и используете <xsl:import> вместо <xsl:include>:

Листинг 2.11. Импорт таблицы стилей

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:import 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>