B.6. XSLT

Table B.6.  Table 5.1, Section 5.1

<xsl:stylesheet>
    xsl:import*, 
    (declaration|xsl:variable|xsl:param)*
</xsl:stylesheet>
<xsl:template match="pattern" name="QName">
    xsl:param*, sequence-constructor*
</xsl:template>
<xsl:param name="QName" select="expression">
    sequence-constructor
</xsl:param>
<xsl:apply-templates select="expression">
    (xsl:sort*|xsl:with-param)*
</xsl:apply-templates>
<xsl:call-template name="Qname"/>
<xsl:with-param name="QName" select="expression">
    sequence-constructor
</xsl:with-param>
<xsl:function name="QName">
    xsl:param*, sequence-constructor*
</xsl:function>
<xsl:value-of select="expression">
    sequence-constructor
</xsl:value-of>
<xsl:variable name="QName" select="expression">
    sequence-constructor
</xsl:variable>
<xsl:copy>
    sequence-constructor
</xsl:copy>
<xsl:copy-of select="expression"/>
<xsl:if test="expression">
    sequence-constructor
</xsl:if>
<choose>
    xsl:when*, xsl:otherwise?
</choose>
<xsl:when test="expression">
    sequence-constructor
</xsl:when>
<xsl:otherwise>
    sequence-constructor
</xsl:otherwise>
<xsl:for-each select="expression">
    xsl:sort*, sequence-constructor
</xsl:for-each>
<xsl:for-each-group select="expression" group-by="expression">
    xsl:sort*, sequence-constructor
</xsl:for-each-group>
<xsl:sort select="expression" data-type="{string}">
    sequence-constructor
</xsl:sort>
<xsl:key name="qname" match="pattern"
 use="expression">
    sequence-constructor
</xsl:key>
<xsl:element name="{string}">
    sequence-constructor
</xsl:element>
<xsl:text>
    character data
</xsl:text>
<xsl:attribute name="{string}" select="expression">
    sequence-constructor
</xsl:attribute>
<xsl:attribute-set name="QName" use-attribute-sets="Qnames">
    xsl:attribute*
</xsl:attribute-set>
<xsl:message>
    sequence-constructor
</xsl:message>