Книга: XSLT

Фрагмент DTD для таблиц стилей XSLT

Фрагмент DTD для таблиц стилей XSLT

ПРИМЕЧАНИЕ

Этот фрагмент DTD ненормативен, поскольку объявления DTD XML 1.0 не поддерживают пространства имен XML и, таким образом, не могут правильно описывать допустимую структуру таблицы стилей 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.

ПРИМЕЧАНИЕ И ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ ДЛЯ ДОКУМЕНТОВ W3C

Copyright © 1994-2000 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). Все права защищены. http://www.w3.org/Consortium/Legal/

Открытые документы на web-узле W3C защищены правами в соответствии с данной лицензией. На программное обеспечение или объявления типов документа (DTD, Document Type Definitions), использующие спецификации W3C, распространяется Примечание о программном обеспечении (Software Notice). Используя и/или копируя этот документ, или документ W3C, ссылающийся на данное утверждение, вы (сторона, обладающая лицензией) соглашаетесь, что вы прочитали, поняли и будете выполнять следующие положения и условия:

разрешается использовать, копировать и распространять содержимое этого документа, или документа W3C, ссылающегося на данное утверждение, любыми средствами для любых целей бесплатно и без каких-либо отчислений, при условии, что во ВСЕ используемые копии документа или его частей вы включите следующее:

 URL или ссылку на исходный документ W3C;

 существующее примечание об авторских правах первоначального автора, или, если оно отсутствует, примечание вида "Copyright © [$date-of-document] World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/" (Желательна гиперссылка, но разрешается и текстовое представление.);

 если существует, СТАТУС (STATUS) документа W3C;

 если позволяет место, должен быть включен полный текст данного ПРИМЕЧАНИЯ (NOTICE). Мы требуем, чтобы ссылка на авторство присутствовала в любом программном обеспечении, документах или других продуктах, созданных вами на основе реализации содержимого этого документа или любой его части;

согласно данной лицензии, вы не получаете права модифицировать документы W3C или создавать производные от них документы. Тем не менее, при выполнении дополнительных требований (документированных в Copyright FAQ), W3C в некоторых случаях предоставляет право создавать модификации или производные документы.

ЭТОТ ДОКУМЕНТ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», И ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ ПРЕДОСТАВЛЯЮТ НИКАКИХ УТВЕРЖДЕНИЙ ИЛИ ГАРАНТИЙ —ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ — В ТОМ ЧИСЛЕ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ — ПРИГОДНОСТИ ДЛЯ КОММЕРЧЕСКОГО ИСПОЛЬЗОВАНИЯ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ, ОТСУТСТВИЯ НАРУШЕНИЯ АВТОРСКИХ ПРАВ ИЛИ ПРАВ СОБСТВЕННОСТИ, А ТАКЖЕ ЧТО ИСПОЛЬЗОВАНИЕ ДАННОГО СОДЕРЖИМОГО НЕ НАРУШИТ КАКИХ-ЛИБО ПАТЕНТОВ, АВТОРСКИХ ПРАВ, ТОРГОВЫХ МАРОК ТРЕТЬИХ ФИРМ ИЛИ ДРУГИХ ПРАВ.

ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ ПОДЛЕЖАТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЙ ПРЯМОЙ, КОСВЕННЫЙ, СПЕЦИАЛЬНЫЙ ИЛИ ПОСЛЕДУЮЩИЙ УЩЕРБ, ВОЗНИКШИЙ ОТ ЛЮБОГО ИСПОЛЬЗОВАНИЯ ДОКУМЕНТА ИЛИ ВЫПОЛНЕНИЯ ИЛИ РЕАЛИЗАЦИИ ЕГО СОДЕРЖИМОГО.

Имя и торговые марки владельцев авторских прав НЕ могут быть использованы в рекламе или публичных ссылках на этот документ или его содержимое без особого письменного разрешения владельцев. Собственность на авторские права на этот документ при любых условиях останется у владельцев авторских прав. 

Использование префикса 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; "&#x2030;"
 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;>

Оглавление книги

Оглавление статьи/книги

Генерация: 1.093. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз