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

Задает элемент документа в XSLT-файле, который содержит все остальные XSLT-элементы.

Задает элемент документа в XSLT-файле, который содержит все остальные XSLT-элементы.Этот элемент является синонимом элемента <xsl:transform>.

<xsl:stylesheet
  id = id
  extension-element-prefixes = NCNames
  exclude-result-prefixes = NCNames
  version = number>
</xsl:stylesheet>

Атрибуты

  • id
    Уникальный идентификатор, облегчающий внедрение XSLT-файлов.

  • extension-element-prefixes
    Пространство имен, которое будет использоваться как пространство имен расширения.Значение представляет собой разделенный пробелами список префиксов пространств имен.Пространство имен, привязанное к каждому из префиксов, назначено пространством имен расширений.Пространство имен по умолчанию (определенное в xmlns) может быть назначено пространством имен расширений, если включить элемент #default в список префиксов пространств имен.Назначение пространства имен пространством имен расширений эффективно в поддереве таблицы стилей, корень которой является элементом, хранящим extension-element-prefixes. Поддерево с корнем в элементе <xsl:stylesheet> не включает таблиц стилей, импортированных или включенных дочерними элементами <xsl:stylesheet> этого элемента.

  • exclude-result-prefixes
    Пространство имен уникального идентификатора ресурса (URI) в качестве исключенного пространства имен.Значение представляет собой разделенный пробелами список префиксов пространств имен.Пространство имен, привязанное к каждому из префиксов, назначено пространством имен исключенных элементов.Пространство имен по умолчанию (определенное в xmlns) может быть назначено пространством имен исключенных элементов, если включить элемент #default в список префиксов пространств имен.Назначение пространства имен пространством имен исключенных элементов эффективно в поддереве таблицы стилей, корень которой является элементом, хранящим exclude-result-prefixes. Поддерево с корнем в элементе <xsl:stylesheet> не включает таблиц стилей, импортированных или включенных дочерними элементами <xsl:stylesheet> этого элемента.

  • version
    Обязательный.Версия XSLT, необходимая для XSLT-файла.Для этой версии XSLT значение должно быть "1.0".

Сведения об элементе

Количество

Однократно

Родительские элементы

(Нет родительских элементов)

Дочерние элементы

xsl:attribute-set, xsl:import, xsl:include, xsl:output, xsl:param, xsl:template, xsl:variable, msxsl:script

Замечания

Каждый XSTL-файл должен объявлять элемент <xsl:stylesheet> в качестве элемента документа.

Таблица стилей может использовать серию объявлений правил шаблона (<xsl:template>) для того, чтобы задавать явные преобразования набора данных.Она может использовать элементы <xsl:include> или <xsl:import> для включения других таблиц стилей. Это позволяет заново использовать существующие проверенные правила шаблонов.Таблица стилей может также поддерживать глобальные переменные (<xsl:param>) и именованные константы (<xsl:variable>), используя их в преобразованиях.Элемент <xsl:param> может быть использовать для передачи параметров в таблицу стилей.Используя элемент расширения (<msxsl:script>), таблица стилей может допускать применение пользовательских функций, хотя использовать подобный метод не рекомендуется.

В следующем примере показан элемент <xsl:stylesheet> с несколькими общими пространствами имен.

Таблица стилей XSLT должна как минимиум объявлять пространство имен для XSL-преобразования.В средстве синтаксического анализа MSXML 4.0 и более поздних версиях это пространство имен должно быть объявлено следующим образом.

<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Если обрабатываются элементы или типы данных из другого пространства имен, то таблица стилей также должна объявлять соответствующие пространства имен.Например, следующее объявление таблицы стилей XSLT требует использования дополнительных словарей XML, определенных в расширениях Microsoft и объектах форматирования XSL (XSL-FO).

<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:msxsl="urn:schemas-microsoft-com:xslt"
      xmlns:fo="http://www.w3.org/1999/XSL/Format">

Пример

В данном примере показан полный XSLT-файл, содержащий набор шаблонов.Корневой элемент (match="/") определяет структуру общего документа вывода, а другие шаблоны определяют структуру элементов <name>, <address> и <phone>.Данный HTML-файл вывода был создан с помощью средства msxml.exe в командной строке.

XML-файл (customers.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="customers.xsl"?>
<customers>
   <customer>
      <name>John Smith</name>
      <address>123 Elm St.</address>
      <phone>(123) 456-7890</phone>
   </customer>
   <customer>
      <name>Mary Jones</name>
      <address>456 Oak Ave.</address>
      <phone>(156) 789-0123</phone>
   </customer>
</customers>

XSLT-файл (customers.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <HTML>
    <BODY>
      <TABLE>
        <xsl:for-each select="customers/customer">
          <TR>
            <xsl:apply-templates select="name" />
            <xsl:apply-templates select="address" />
            <xsl:apply-templates select="phone" />
          </TR>
        </xsl:for-each>
      </TABLE>

    </BODY>
  </HTML>
</xsl:template>

<xsl:template match="name">
  <TD STYLE="font-size:14pt font-family:serif">
    <xsl:apply-templates />
  </TD>
</xsl:template>

<xsl:template match="address">
  <TD> <xsl:apply-templates /> </TD>
</xsl:template>

<xsl:template match="phone">
  <TD> <xsl:apply-templates /> </TD>
</xsl:template>

<xsl:template match="text()">
  <xsl:value-of select='.'/>
</xsl:template>

</xsl:stylesheet>

Вывод

Далее приведен форматированный вывод.

Форматированные выходные данные

Далее приведен вывод обработчика.

<HTML>
<BODY>
<TABLE>
<TR>
<TD STYLE="font-size:14pt font-family:serif">John Smith</TD>
<TD>123 Elm St.</TD>
<TD>(123) 456-7890</TD>
</TR>
<TR>
<TD STYLE="font-size:14pt font-family:serif">Mary Jones</TD>
<TD>456 Oak Ave.</TD>
<TD>(156) 789-0123</TD>
</TR>
</TABLE>

</BODY>
</HTML>

См. также

Справочник

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