Поделиться через


Элемент <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>