|
||||
|
Приложение ADTD XSLT В данном приложении приводится фрагмент определений DTD для таблиц стилей XSLT 1.0, раздел С рекомендации W3C XSLT 1.0 по адресу www.w3.org/TR/xslt. Здесь для справки перечислены элементы XSLT 1.0 и их атрибуты. Фрагмент DTD для таблиц стилей XSLT
При помощи следующей сущности можно конструировать объявления для таблиц стилей XSLT, создающих экземпляры конкретного результирующего DTD. Перед тем как ссылаться на сущность, DTD таблицы стилей должно определить сущность параметра result-elements, перечисляющую допустимые типы результирующих элементов. Например: <!ENTITY % result-elements " | fo:inline-sequence | fo:block "> Такие результирующие элементы должны быть объявлены с атрибутами xsl:use-attribute-setsи xsl:extension-element-prefixes. Следующая сущность объявляет для этих целей параметр result-element-atts. XSLT допускает для результирующих элементов то же содержимое, что и для элементов XSLT, объявленных в следующей сущности с моделью содержимого %template;. DTD может использовать более строгую модель содержимого, чем %template;, для того чтобы отразить ограничения результирующего DTD. DTD может определить сущность параметра non-xsl-top-level, чтобы сделать допустимыми дополнительные элементы высокого уровня из пространств имен, отличных от пространства имен XSLT.
Использование префикса xsl:в этом DTD не означает, что таблицы стилей XSLT обязаны его применять. Любые элементы, объявленные в этом DTD, могут иметь атрибуты, имена которых начинаются с xmlns:или равны xmlns, в дополнение к атрибутам, объявленным в этом DTD. <!ENTITY % char-instructions " | xsl:apply-templates | xsl:call-template | xsl:apply-imports | xsl:for-each | xsl:value-of | xsl:copy-of | xsl:number | xsl:choose | xsl:if | xsl:text | xsl:copy | xsl:variable | xsl:message | xsl:fallback "> <!ENTITY % instructions " %char-instructions; | xsl:processing-instruction | xsl:comment | xsl:element | xsl:attribute "> <!ENTITY % char-template " (#PCDATA %char-instructions;)* "> <!ENTITY % template " (#PCDATA %instructions; %result-elements;)* "> <!-- Используется для типа значения атрибута, являющегося ссылкой URI.--> <! ENTITY % URI "CDATA"> <!-- Используется для типа значения атрибута, являющегося образцом.--> <!ENTITY % pattern "CDATA"> <!-- Используется для типа значения атрибута, являющегося шаблоном значений атрибута.--> <!ENTITY % avt "CDATA"> <!-- Используется для типа значения атрибута, являющегося QName: префикс раскрывается процессором XSLT. --> <!ENTITY % qname "NMTOKEN"> <!-- Как qname, но список QName, разделенных символам разделителями --> <!ENTITY % qnames "NMTOKENS"> <!-- Используется для типа значения атрибута, являющегося выражением.--> <!ENTITY % expr "CDATA"> <!-- Используется для типа значения атрибута, состоящего из одного символа.--> <!ENTITY % char "CDATA"> <!-- Используется для типа значения атрибута, являющегося приоритетом. --> <!ENTITY % priority "NMTOKEN"> <!ENTITY % space-att "xml:space (default|preserve) #IMPLIED"> <!-- Это может быть перекрыто, для того чтобы модифицировать множество элементов допустимых на верхнем уровне. --> <!ENTITY % non-xsl-top-level ""> <!ENTITY % top-level " (xsl:import*, (xsl:include | xsl:strip-space | xsl:preserve-space | xsl:output | xsl:key | xsl:decimal-format | xsl:attribute-set | xsl:variable | xsl:param | xsl:template | xsl:namespace-alias %non-xsl-top-level:)*) "> <!ENTITY % top-level-atts " extension-element-prefixes CDATA #IMPLIED exclude-result-prefixes CDATA #IMPLIED id ID #IMPLIED version NMTOKEN #REQUIRED xmlns:xsl CDATA #FIXED "http://www.w3.org/1999/XSL/Transform" %space-att; "> <!-- Эта сущность определена для использования в объявлении ATTLIST для результирующих элементов. --> <!ENTITY % result-element-atts " xsl:extension-element-prefixes CDATA #IMPLIED xsl:exclude-result-prefixes CDATA #IMPLIED xsl:use-attribute-sets %qnames: #IMPLIED xsl:version NMTOKEN #IMPLIED "> <!ELEMENT xsl:stylesheet %top-level;> <!ATTLIST xsl:stylesheet %top-level-atts;> <!ELEMENT xsl:transform %top-level;> <!ATTLIST xsl:transform %top-level-atts;> <!ELEMENT xsl:import EMPTY> <!ATTLIST xsl:import href %URI; #REQUIRED> <!ELEMENT xsl:include EMPTY> <!ATTLIST xsl:include href %URI; #REQUIRED> <!ELEMENT xsl:strip-space EMPTY> <!ATTLIST xsl:strip-space elements CDATA #REQUIRED> <!ELEMENT xsl:preserve-space EMPTY> <!ATTLIST xsl:preserve-space elements CDATA #REQUIRED> <!ELEMENT xsl:output EMPTY> <!ATTLIST xsl:output method %qname; #IMPLIED version NMTOKEN #IMPLIED encoding CDATA #IMPLIED omit-xml-declaration (yes|no) #IMPLIED standalone (yes|no) #IMPLIED doctype-public CDATA #IMPLIED doctype-system CDATA #IMPLIED cdata-section-elements %qnames; #IMPLIED indent (yes|no) #IMPLIED media-type CDATA #IMPLIED> <!ELEMENT xsl:key EMPTY> <!ATTLIST xsl:key name %qname; #REQUIRED match %pattern; #REQUIRED use %expr; #REQUIRED> <!ELEMENT xsl:decimal-format EMPTY> <!ATTLIST xsl:decimal-format name %qname; #IMPLIED decimal-separator %char; "." grouping-separator %char; "." infinity CDATA "Infinity" minus-sign %char; "-" NaN CDATA "NaN" percent %char; "%" per-mille %char; "‰" zero-digit %char; "0" digit %char; "#" pattern-separator %char; ":"> <!ELEMENT xsl:namespace-alias EMPTY> <!ATTLIST xsl:namespace-alias stylesheet-prefix CDATA #REQUIRED result-prefix CDATA #REQUIRED> <!ELEMENT xsl:template (#PCDATA %instructions; %result-elements; | xsl:param)*> <!ATTLIST xsl:template match %pattern: #IMPLIED name %qname: #IMPLIED priority %priority: #IMPLIED mode %qname: #IMPLIED %space-att; > <!ELEMENT xsl:value-of EMPTY> <!ATTLIST xsl:value-of select %expr; #REQUIRED disable-output-escaping (yes|no) "no"> <!ELEMENT xsl:copy-of EMPTY> <!ATTLIST xsl:copy-of select %expr; #REQUIRED> <!ELEMENT xsl:number EMPTY> <!ALLLIST xsl:number level (single|multtyle|any) "single" count %pattern; #IMPLIED from %pattern; #IMPLIED value %expr; #IMPLIED format %avt; '1' lang %avt; #IMPLIED letter-value %avt; #IMPLIED grouping-separator %avt; #IMPLIED grouping-size %avt; #IMPLIED> <!ELEMENT xsl:apply-templates (xsl:sort|xsl:with-param)*> <!ATTLIST xsl:apply-templates select %expr; "node()" mode %qname; #IMPLIED> <!ELEMENT xsl:apply-imports EMPTY> <!-- xsl:sort не может встречаться после любых других элементов или любого символа, не являющегося разделителем --> <!ELEMENT xsl:for-each (#PCDATA %instructions; %result-elements; | xsl:sort)*> <!ATTLIST xsl:for-each select %expr; #REQUIRED %space-att;> <!ELEMENT xsl:sort EMPTY> <!ATTLIST xsl:sort select %expr; "." lang %avt; #IMPLIED data-type %avt; "text" order %avt; "ascending" case-order %avt; #IMPLIED> <!ELEMENT xsl:if %template;> <!ATTLIST xsl:if test %expr; #REQUIRED %space-att;> <!ELEMENT xsl:choose (xsl:when+, xsl:otherwise?)> <!ATTLIST xsl:choose %space-att;> <!ELEMENT xsl:when %template;> <!ATTLIST xsl:when test %expr; #REQUIRED %space-att;> <!ELEMENT xsl:otherwise %template;> <!ATTLIST xsl:otherwise %space-att;> <!ELEMENT xsl:attribute-set (xsl:attribute)*> <!ATTLIST xsl:attribute-set name %qname; #REQUIRED use-attribute-sets %qnames; #IMPLIED> <!ELEMENT xsl:call-template (xsl:with-param)*> <!ATTLIST xsl:call-template name %qname; #REQUIRED> <!ELEMENT xsl:with-param %template;> <!ATTLIST xsl:with-param name %qname; #REQUIRED select %expr; #IMPLIED> <!ELEMENT xsl:variable %template;> <!ATTLIST xsl:variable name %qname; #REQUIRED select %expr; #IMPLIED> <!ELEMENT xsl:param %template;> <!ATTLIST xsl:param name %qname; #REQUIRED select %expr; #IMPLIED> <!ELEMENT xsl:text (#PCDATA)> <!ATTLIST xsl:text disable-output-escaping (yes|no) "no"> <!ELEMENT xsl:processing-instruction %char-template;> <!ATTLIST xsl:processing-instruction name %avt; #REQUIRED %space-att;> <!ELEMENT xsl:element %template;> <!ATTLIST xsl:element name %avt; #REQUIRED namespace %avt; #IMPLIED use-attribute-sets %qnames; #IMPLIED %space-att;> <!ELEMENT xsl:attribute %char-template;> <!ATTLIST xsl:attribute name %avt; #REQUIRED namespace %avt; #IMPLIED %space-att;> <!ELEMENT xsl:comment %char-template;> <!ATTLIST xsl:comment %space-att;> <!ELEMENT xsl:copy %template;> <!ATTLIST xsl:copy %space-att; use-attribute-sets %qnames; #IMPLIED <!ELEMENT xsl:message %template;> <!ATTLIST xsl:message %space-att; terminate (yes|no) "no"> <!ELEMENT xsl:fallback %template;> <!ATTLIST xsl:fallback %space-att;> |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх |
||||
|