<!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;>