Status of implementation of the XSLT 1.0 Features: ================================================== Stylesheet Constructs: ====================== YES xsl:stylesheet ? id = id YES extension-element-prefixes = tokens YES exclude-result-prefixes = tokens YES version = number YES xsl:transform ? id = id YES extension-element-prefixes = tokens YES exclude-result-prefixes = tokens YES version = number YES Literal Result Element as Stylesheet YES Embedding Stylesheets NO mediaType Top Level Elements: =================== YES xsl:include YES href = uri-reference YES xsl:import YES href = uri-reference YES xsl:strip-space YES elements = tokens YES xsl:preserve-space YES elements = tokens YES xsl:template YES match = pattern YES name = qname YES priority = number YES mode = qname YES xsl:namespace-alias YES stylesheet-prefix = prefix | "#default" YES result-prefix = prefix | "#default" YES xsl:attribute-set YES name = qname YES use-attribute-sets = qnames YES xsl:variable YES name = qname YES select = expression YES Content: template YES xsl:param YES name = qname YES select = expression YES Content: template YES xsl:key YES name = qname YES match = pattern YES use = expression YES xsl:output YES method = "xml" | "html" | "text" | qname-but-not-ncname YES version = nmtoken YES encoding = string YES omit-xml-declaration = "yes" | "no" YES standalone = "yes" | "no" YES doctype-public = string YES doctype-system = string YES cdata-section-elements = qnames YES indent = "yes" | "no" YES media-type = string Instructions: ============= YES xsl:apply-templates YES select = node-set-expression YES mode = qname YES xsl:apply-imports YES xsl:call-template YES name = qname YES xsl:element YES name = { qname } YES namespace = { uri-reference } YES use-attribute-sets = qnames YES xsl:attribute YES name = { qname } YES namespace = { uri-reference } YES xsl:text YES disable-output-escaping = "yes" | "no" YES xsl:processing-instruction YES name = { ncname } YES xsl:comment YES xsl:copy YES use-attribute-sets = qnames YES xsl:value-of YES select = string-expression YES disable-output-escaping = "yes" | "no" YES xsl:number YES level = "single" | "multiple" | "any" YES count = pattern YES from = pattern YES value = number-expression YES format = { string } NO lang = { nmtoken } NO letter-value = { "alphabetic" | "traditional" } YES grouping-separator = { char } YES grouping-size = { number } YES xsl:for-each YES select = node-set-expression YES xsl:if YES test = boolean-expression YES xsl:choose YES xsl:when YES test = boolean-expression YES xsl:otherwise YES xsl:sort YES select = string-expression NO lang = { nmtoken } YES data-type = { "text" | "number" | qname-but-not-ncname } YES order = { "ascending" | "descending" } NO case-order = { "upper-first" | "lower-first" } YES xsl:variable YES name = qname YES select = expression YES Content: template YES xsl:param YES name = qname YES select = expression YES Content: template YES xsl:copy-of YES select = expression YES xsl:with-param YES name = qname YES select = expression YES xsl:decimal-format YES name = qname YES decimal-separator = char YES grouping-separator = char YES infinity = string YES minus-sign = char YES NaN = string YES percent = char YES per-mille = char YES zero-digit = char YES digit = char YES pattern-separator = char YES xsl:message YES terminate = "yes" | "no" YES xsl:fallback General: ======== YES Conflict Resolution for Template Rules YES Whitespace Stripping YES Built-in Template Rules YES match="*|/" YES match="text()|@*" YES match="processing-instruction()|comment()" YES Namespace YES Mode YES Extension Elements YES Extension Functions YES Attribute Value Templates YES Result Tree Fragments Functions: ========== YES node-set document(object, node-set?) YES node-set key(string, object) YES string format-number(number, string, string?) YES node-set current() YES string unparsed-entity-uri(string) YES string generate-id(node-set?) YES object system-property(string) YES boolean element-available(string) YES boolean function-available(string) Patterns: ========= YES para YES * YES chapter|appendix YES olist/item YES appendix//para YES / YES text() YES processing-instruction() YES node() YES id("W11") YES para[1] YES *[position()=1 and self::para] YES para[last()=1] YES items/item[position()>1] YES item[position() mod 2 = 1] YES div[@class="appendix"]//p YES @class YES @* YES except ns for key key('a','b') daniel@veillard.com