Стивен Холзнер - XSLT
| 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;>
Приложение Б
Форматирующие свойства XSL-FO
В этом приложений перечислены все форматирующие свойства XSL-FO в спецификации XSL 1.0. Подробнее о свойствах XSL-FO можно узнать по адресу www.w3.org/TR/xsl/slice7.html. Многие свойства XSL-FO унаследованы из спецификации для каскадных таблиц стилей версии 2, которую вы можете найти по адресу www.w3.org/TR/REC-CSS2.
В следующем списке приведен синтаксис, используемый в этом приложении, соответствующий спецификации XSL-FO:
• <> обозначает единицы значений (см. таблицу В.1), или свойства (например, <color>), которые уже были определены;
• | означает вариант выбора, использовать можно только один из них;
• || означает вариант выбора, можно использовать один или несколько вариантов в любом порядке;
• [] означает групповые инструкции, вычисляемые во многом так же, как и математические выражения;
• * означает, что предыдущий терм может встречаться ноль или более раз;