<!– Category: instruction ->
select = string-expression
disable-output-escaping = «yes» | «no» />
<!– Category: top-level-element ->
<!– Category: instruction ->
name = qname
select = expression >
<!– Content: template ->
</xsl:variable>
< xsl:when
test = boolean-expression >
<!– Content: template ->
</xsl:when>
name = qname
select = expression >
<!– Content: template ->
</xsl:with-param>
c Фрагмент dtd для стилей xslt (пояснения к спецификации)
Замечание: Данный фрагмент dtd не является нормативным, поскольку в XML 1.0 DTD не поддерживают пространства имён XML, а потому не могут корректно описывать структуру, допустимую для стиля XSLT.
Приводимая далее сущность может использоваться при создании DTD для XSLT стилей, который создает экземпляры уже конкретного конечного DTD. Прежде чем ссылаться на сущность, стиль DTD должен определить сущность параметра
<!ENTITY % result-elements '
| fo:inline-sequence
| fo:block
'>
Должно быть декларировано, что такие конечное элементы имеют атрибуты
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;)*
'>