       Status of implementation of the XSLT 1.0 Features:
       ==================================================

      $Id$

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
