Schema "schema-for-xslt20.xsd"
Target Namespace:
http://www.w3.org/1999/XSL/Transform
Defined Components:
elements (52 global), complexTypes (6), simpleTypes (22), element groups (2), attribute groups (1)
Default Namespace-Qualified Form:
Local Elements: qualified; Local Attributes: unqualified
Schema Location:
http://www.w3.org/2007/schema-for-xslt20.xsd; see XML source
Imports Schemas (2):
xml.xsd [src], XMLSchema.xsd [src]
Annotation
Annotation 1 [src]:
This is a schema for XSLT 2.0 stylesheets.

It defines all the elements that appear in the XSLT namespace; it also
provides hooks that allow the inclusion of user-defined literal result elements,
extension instructions, and top-level data elements.

The schema is derived (with kind permission) from a schema for XSLT 1.0 stylesheets
produced by Asir S Vedamuthu of WebMethods Inc.

This schema is available for use under the conditions of the W3C Software License
published at http://www.w3.org/Consortium/Legal/copyright-software-19980720

The schema is organized as follows:

PART A: definitions of complex types and model groups used as the basis
for element definitions
PART B: definitions of individual XSLT elements
PART C: definitions for literal result elements
PART D: definitions of simple types used in attribute definitions

This schema does not attempt to define all the constraints that apply to a valid
XSLT 2.0 stylesheet module. It is the intention that all valid stylesheet modules
should conform to this schema; however, the schema is non-normative and in the event
of any conflict, the text of the Recommendation takes precedence.

This schema does not implement the special rules that apply when a stylesheet
has sections that use forwards-compatible-mode. In this mode, setting version="3.0"
allows elements from the XSLT namespace to be used that are not defined in XSLT 2.0.

Simplified stylesheets (those with a literal result element as the outermost element)
will validate against this schema only if validation starts in lax mode.

This version is dated 2007-03-16
Authors: Michael H Kay, Saxonica Limited
Jeni Tennison, Jeni Tennison Consulting Ltd.

2007-03-15: added xsl:document element
revised xsl:sequence element
see http://www.w3.org/Bugs/Public/show_bug.cgi?id=4237
Annotation 2 [src]:
PART A: definitions of complex types and model groups used as the basis
for element definitions
Annotation 3 [src]:
PART B: definitions of individual XSLT elements
Elements are listed in alphabetical order.
Annotation 4 [src]:
PART C: definition of literal result elements

There are three ways to define the literal result elements
permissible in a stylesheet.

(a) do nothing. This allows any element to be used as a literal
result element, provided it is not in the XSLT namespace

(b) declare all permitted literal result elements as members
of the xsl:literal-result-element substitution group

(c) redefine the model group xsl:result-elements to accommodate
all permitted literal result elements.

Literal result elements are allowed to take certain attributes
in the XSLT namespace. These are defined in the attribute group
literal-result-element-attributes, which can be included in the
definition of any literal result element.
Annotation 5 [src]:
PART D: definitions of simple types used in stylesheet attributes
All Element Summary
xsl:analyze-string
Type:
Content:
complex, 9 attributes, attr. wildcard, 3 elements
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 3 attributes, 3 elements
Used:
never
xsl:apply-imports
Type:
Content:
complex, 6 attributes, attr. wildcard, 1 element
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definition of 1 element
Used:
never
xsl:apply-templates
Type:
Content:
complex, 8 attributes, attr. wildcard, 2 elements
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 2 attributes, 2 elements
Used:
never
xsl:attribute
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 12 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 6 attributes
Used:
xsl:attribute-set
Type:
Content:
complex, 8 attributes, attr. wildcard, 1 element
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 2 attributes, 1 element
Used:
never
xsl:call-template
Type:
Content:
complex, 7 attributes, attr. wildcard, 1 element
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, 1 element
Used:
never
xsl:character-map
Type:
Content:
complex, 8 attributes, attr. wildcard, 1 element
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 2 attributes, 1 element
Used:
never
xsl:choose
Type:
Content:
complex, 6 attributes, attr. wildcard, 2 elements
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 2 elements
Used:
never
xsl:comment
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 7 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
never
xsl:copy
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 11 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 5 attributes
Used:
never
xsl:copy-of
Type:
anonymous complexType (extension of xsl:versioned-element-type)
Content:
mixed (allows character data), 10 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 4 attributes
Used:
never
xsl:decimal-format
Type:
Content:
empty, 17 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 11 attributes
Used:
never
xsl:declaration
Type:
Content:
mixed (allows character data), 5 attributes, attr. wildcard
Abstract:
(may not be used directly in instance XML documents)
Subst.Gr:
may be substituted with 12 elements
Defined:
globally; see XML source
Used:
at 13 locations
xsl:document
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 8 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 2 attributes
Used:
never
xsl:element
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 12 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 6 attributes
Used:
never
xsl:fallback
Type:
Content:
mixed (allows character data), 6 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Used:
xsl:for-each
Type:
anonymous complexType (extension of xsl:versioned-element-type)
Content:
mixed (allows character data), 7 attributes, attr. wildcard, 4 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, 1 element
Used:
never
xsl:for-each-group
Type:
anonymous complexType (extension of xsl:versioned-element-type)
Content:
mixed (allows character data), 12 attributes, attr. wildcard, 4 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 6 attributes, 1 element
Used:
never
xsl:function
Type:
anonymous complexType (extension of xsl:versioned-element-type)
Content:
mixed (allows character data), 9 attributes, attr. wildcard, 4 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 3 attributes, 1 element
Used:
never
xsl:if
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 7 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
never
xsl:import
Type:
Content:
empty, 7 attributes, attr. wildcard
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
xsl:import-schema
Type:
Content:
complex, 8 attributes, attr. wildcard, 1 element
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 2 attributes, 1 element
Used:
never
xsl:include
Type:
Content:
empty, 7 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
never
xsl:instruction
Type:
Content:
mixed (allows character data), 6 attributes, attr. wildcard
Abstract:
(may not be used directly in instance XML documents)
Subst.Gr:
may be substituted with 25 elements
Defined:
globally; see XML source
Used:
at 26 locations
xsl:key
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 10 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 4 attributes
Used:
never
xsl:literal-result-element
Type:
Content:
mixed (allows character data), attr. wildcard, elem. wildcard
Abstract:
(may not be used directly in instance XML documents)
Defined:
globally; see XML source
Used:
xsl:matching-substring
Type:
Content:
mixed (allows character data), 6 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Used:
xsl:message
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 8 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 2 attributes
Used:
never
xsl:namespace
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 8 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 2 attributes
Used:
never
xsl:namespace-alias
Type:
Content:
empty, 8 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 2 attributes
Used:
never
xsl:next-match
Type:
Content:
complex, 6 attributes, attr. wildcard, 2 elements
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 2 elements
Used:
never
xsl:non-matching-substring
Type:
Content:
mixed (allows character data), 6 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Used:
xsl:number
Type:
anonymous complexType (extension of xsl:versioned-element-type)
Content:
mixed (allows character data), 17 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 11 attributes
Used:
never
xsl:otherwise
Type:
Content:
mixed (allows character data), 6 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Used:
xsl:output
Type:
anonymous complexType (extension of xsl:generic-element-type)
Content:
mixed (allows character data), 22 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 17 attributes
Used:
never
xsl:output-character
Type:
Content:
empty, 8 attributes, attr. wildcard
Defined:
globally; see XML source
Includes:
definitions of 2 attributes
Used:
xsl:param
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 11 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Includes:
definitions of 5 attributes
Used:
xsl:perform-sort
Type:
anonymous complexType (extension of xsl:versioned-element-type)
Content:
mixed (allows character data), 7 attributes, attr. wildcard, 4 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, 1 element
Used:
never
xsl:preserve-space
Type:
Content:
empty, 7 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
never
xsl:processing-instruction
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 8 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 2 attributes
Used:
never
xsl:result-document
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 26 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 20 attributes
Used:
never
xsl:sequence
Type:
Content:
mixed (allows character data), 7 attributes, attr. wildcard, 1 element
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, 1 element
Used:
never
xsl:sort
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 13 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Includes:
definitions of 7 attributes
Used:
xsl:strip-space
Type:
Content:
empty, 7 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
never
xsl:stylesheet
Type:
anonymous complexType (extension of xsl:transform-element-base-type), inherited from xsl:transform
Content:
complex, 9 attributes, attr. wildcard, 4 elements, elem. wildcard
Subst.Gr:
may substitute for element xsl:transform
Defined:
globally; see XML source
Used:
never
xsl:template
Type:
anonymous complexType (extension of xsl:versioned-element-type)
Content:
mixed (allows character data), 11 attributes, attr. wildcard, 4 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:declaration
Defined:
globally; see XML source
Includes:
definitions of 5 attributes, 1 element
Used:
never
xsl:text
Type:
anonymous complexType (extension of xsl:text-element-base-type)
Content:
simple, 7 attributes, attr. wildcard
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
never
xsl:transform
Type:
anonymous complexType (extension of xsl:transform-element-base-type)
Content:
complex, 9 attributes, attr. wildcard, 4 elements, elem. wildcard
Subst.Gr:
may be substituted with 1 element
Defined:
globally; see XML source
Includes:
definitions of 3 attributes, 4 elements, elem. wildcard
Used:
xsl:value-of
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 9 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Subst.Gr:
may substitute for element xsl:instruction
Defined:
globally; see XML source
Includes:
definitions of 3 attributes
Used:
never
xsl:variable
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 9 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Includes:
definitions of 3 attributes
Used:
xsl:when
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 7 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
xsl:with-param
Type:
anonymous complexType (extension of xsl:sequence-constructor)
Content:
mixed (allows character data), 10 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Includes:
definitions of 4 attributes
Used:
Complex Type Summary
Content:
empty, 6 attributes, attr. wildcard
Defined:
globally; see XML source
Includes:
definition of attr. wildcard
Used:
at 18 locations
Content:
mixed (allows character data), 5 attributes, attr. wildcard
Defined:
globally; see XML source
Includes:
definitions of 5 attributes, attr. wildcard
Used:
Content:
mixed (allows character data), 6 attributes, attr. wildcard, 3 elements, 2 elem. wildcards
Defined:
globally; see XML source
Used:
at 21 locations
Content:
simple, 6 attributes, attr. wildcard
Defined:
globally; see XML source
Includes:
definition of attr. wildcard
Used:
Content:
empty, 6 attributes, attr. wildcard
Defined:
globally; see XML source
Includes:
definitions of 1 attribute, attr. wildcard
Used:
Content:
mixed (allows character data), 6 attributes, attr. wildcard
Defined:
globally; see XML source
Includes:
definition of 1 attribute
Used:
at 11 locations
Simple Type Summary
This type is used for all attributes that allow an attribute value template.
Defined:
globally; see XML source
Used:
at 39 locations
A string containing exactly one character.
Defined:
globally; see XML source
Used:
An XPath 2.0 expression.
Defined:
globally; see XML source
Used:
at 27 locations
Describes how type annotations in source documents are handled.
Defined:
globally; see XML source
Used:
The level attribute of xsl:number: one of single, multiple, or any.
Defined:
globally; see XML source
Used:
The method attribute of xsl:output: Either one of the recognized names "xml", "xhtml", "html", "text", or a QName that must include a prefix.
Defined:
globally; see XML source
Used:
The mode attribute of xsl:apply-templates: either a QName, or #current, or #default.
Defined:
globally; see XML source
Used:
The mode attribute of xsl:template: either a list, each member being either a QName or #default; or the value #all
Defined:
globally; see XML source
Used:
A list of NameTests, as defined in the XPath 2.0 Recommendation.
Defined:
globally; see XML source
Used:
A match pattern as defined in the XSLT 2.0 Recommendation.
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
Either a namespace prefix, or #default.
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
A QName.
Defined:
globally; see XML source
Used:
at 23 locations
A list of QNames.
Defined:
globally; see XML source
Used:
The description of a data type, conforming to the SequenceType production defined in the XPath 2.0 Recommendation
Defined:
globally; see XML source
Used:
Defined:
globally; see XML source
Used:
Describes different ways of type-annotating an element or attribute.
Defined:
globally; see XML source
Used:
Describes different ways of type-annotating an element or attribute.
Defined:
globally; see XML source
Used:
One of the values "yes" or "no".
Defined:
globally; see XML source
Used:
at 18 locations
One of the values "yes" or "no" or "omit".
Defined:
globally; see XML source
Used:
Element Group Summary
Content:
element, 2 elem. wildcards
Defined:
globally; see XML source
Includes:
definitions of 1 element, 2 elem. wildcards
Used:
Content:
elements, 2 elem. wildcards
Defined:
globally; see XML source
Includes:
definitions of 2 elements
Used:
Attribute Group Summary
Content:
Defined:
globally; see XML source
Includes:
definitions of 10 attributes
Used:
never
XML Source
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" targetNamespace="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
<xs:documentation>
This is a schema for XSLT 2.0 stylesheets.

It defines all the elements that appear in the XSLT namespace; it also
provides hooks that allow the inclusion of user-defined literal result elements,
extension instructions, and top-level data elements.

The schema is derived (with kind permission) from a schema for XSLT 1.0 stylesheets
produced by Asir S Vedamuthu of WebMethods Inc.

This schema is available for use under the conditions of the W3C Software License
published at http://www.w3.org/Consortium/Legal/copyright-software-19980720

The schema is organized as follows:

PART A: definitions of complex types and model groups used as the basis
for element definitions
PART B: definitions of individual XSLT elements
PART C: definitions for literal result elements
PART D: definitions of simple types used in attribute definitions

This schema does not attempt to define all the constraints that apply to a valid
XSLT 2.0 stylesheet module. It is the intention that all valid stylesheet modules
should conform to this schema; however, the schema is non-normative and in the event
of any conflict, the text of the Recommendation takes precedence.

This schema does not implement the special rules that apply when a stylesheet
has sections that use forwards-compatible-mode. In this mode, setting version="3.0"
allows elements from the XSLT namespace to be used that are not defined in XSLT 2.0.

Simplified stylesheets (those with a literal result element as the outermost element)
will validate against this schema only if validation starts in lax mode.

This version is dated 2007-03-16
Authors: Michael H Kay, Saxonica Limited
Jeni Tennison, Jeni Tennison Consulting Ltd.

2007-03-15: added xsl:document element
revised xsl:sequence element
see http://www.w3.org/Bugs/Public/show_bug.cgi?id=4237
</xs:documentation>
</xs:annotation>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!--
The declaration of xml:space and xml:lang may need to be commented out because
of problems processing the schema using various tools
-->
<!--
An XSLT stylesheet may contain an in-line schema within an xsl:import-schema element,
so the Schema for schemas needs to be imported
-->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
<xs:documentation>
PART A: definitions of complex types and model groups used as the basis
for element definitions
</xs:documentation>
</xs:annotation>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType mixed="true" name="generic-element-type">
<xs:attribute name="default-collation" type="xsl:uri-list"/>
<xs:attribute name="exclude-result-prefixes" type="xsl:prefix-list-or-all"/>
<xs:attribute name="extension-element-prefixes" type="xsl:prefix-list"/>
<xs:attribute name="use-when" type="xsl:expression"/>
<xs:attribute name="xpath-default-namespace" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType mixed="true" name="versioned-element-type">
<xs:complexContent>
<xs:extension base="xsl:generic-element-type">
<xs:attribute name="version" type="xs:decimal" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType mixed="false" name="element-only-versioned-element-type">
<xs:complexContent>
<xs:restriction base="xsl:versioned-element-type">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="sequence-constructor">
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xsl:sequence-constructor-group"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:group name="sequence-constructor-group">
<xs:choice>
<xs:element ref="xsl:variable"/>
<xs:element ref="xsl:instruction"/>
<xs:group ref="xsl:result-elements"/>
</xs:choice>
</xs:group>
<xs:element abstract="true" name="declaration" type="xsl:generic-element-type"/>
<xs:element abstract="true" name="instruction" type="xsl:versioned-element-type"/>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
<xs:documentation>
PART B: definitions of individual XSLT elements
Elements are listed in alphabetical order.
</xs:documentation>
</xs:annotation>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element name="analyze-string" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent>
<xs:sequence>
<xs:element minOccurs="0" ref="xsl:matching-substring"/>
<xs:element minOccurs="0" ref="xsl:non-matching-substring"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:fallback"/>
</xs:sequence>
<xs:attribute name="select" type="xsl:expression" use="required"/>
<xs:attribute name="regex" type="xsl:avt" use="required"/>
<xs:attribute default="" name="flags" type="xsl:avt"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="apply-imports" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:with-param"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="apply-templates" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="xsl:sort"/>
<xs:element ref="xsl:with-param"/>
</xs:choice>
<xs:attribute default="child::node()" name="select" type="xsl:expression"/>
<xs:attribute name="mode" type="xsl:mode"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="attribute" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:avt" use="required"/>
<xs:attribute name="namespace" type="xsl:avt"/>
<xs:attribute name="select" type="xsl:expression"/>
<xs:attribute name="separator" type="xsl:avt"/>
<xs:attribute name="type" type="xsl:QName"/>
<xs:attribute name="validation" type="xsl:validation-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="attribute-set" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="xsl:attribute"/>
</xs:sequence>
<xs:attribute name="name" type="xsl:QName" use="required"/>
<xs:attribute default="" name="use-attribute-sets" type="xsl:QNames"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="call-template" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:with-param"/>
</xs:sequence>
<xs:attribute name="name" type="xsl:QName" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="character-map" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:output-character"/>
</xs:sequence>
<xs:attribute name="name" type="xsl:QName" use="required"/>
<xs:attribute default="" name="use-character-maps" type="xsl:QNames"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="choose" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="xsl:when"/>
<xs:element minOccurs="0" ref="xsl:otherwise"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="comment" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="select" type="xsl:expression"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="copy" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute default="yes" name="copy-namespaces" type="xsl:yes-or-no"/>
<xs:attribute default="yes" name="inherit-namespaces" type="xsl:yes-or-no"/>
<xs:attribute default="" name="use-attribute-sets" type="xsl:QNames"/>
<xs:attribute name="type" type="xsl:QName"/>
<xs:attribute name="validation" type="xsl:validation-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="copy-of" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:attribute name="select" type="xsl:expression" use="required"/>
<xs:attribute default="yes" name="copy-namespaces" type="xsl:yes-or-no"/>
<xs:attribute name="type" type="xsl:QName"/>
<xs:attribute name="validation" type="xsl:validation-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="document" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="type" type="xsl:QName"/>
<xs:attribute name="validation" type="xsl:validation-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="decimal-format" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:attribute name="name" type="xsl:QName"/>
<xs:attribute default="." name="decimal-separator" type="xsl:char"/>
<xs:attribute default="," name="grouping-separator" type="xsl:char"/>
<xs:attribute default="Infinity" name="infinity" type="xs:string"/>
<xs:attribute default="-" name="minus-sign" type="xsl:char"/>
<xs:attribute default="NaN" name="NaN" type="xs:string"/>
<xs:attribute default="%" name="percent" type="xsl:char"/>
<xs:attribute default="&#8240;" name="per-mille" type="xsl:char"/>
<xs:attribute default="0" name="zero-digit" type="xsl:char"/>
<xs:attribute default="#" name="digit" type="xsl:char"/>
<xs:attribute default=";" name="pattern-separator" type="xsl:char"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="element" substitutionGroup="xsl:instruction">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:avt" use="required"/>
<xs:attribute name="namespace" type="xsl:avt"/>
<xs:attribute default="yes" name="inherit-namespaces" type="xsl:yes-or-no"/>
<xs:attribute default="" name="use-attribute-sets" type="xsl:QNames"/>
<xs:attribute name="type" type="xsl:QName"/>
<xs:attribute name="validation" type="xsl:validation-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="fallback" substitutionGroup="xsl:instruction" type="xsl:sequence-constructor"/>
<xs:element name="for-each" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:sort"/>
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xsl:sequence-constructor-group"/>
</xs:sequence>
<xs:attribute name="select" type="xsl:expression" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="for-each-group" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:sort"/>
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xsl:sequence-constructor-group"/>
</xs:sequence>
<xs:attribute name="select" type="xsl:expression" use="required"/>
<xs:attribute name="group-by" type="xsl:expression"/>
<xs:attribute name="group-adjacent" type="xsl:expression"/>
<xs:attribute name="group-starting-with" type="xsl:pattern"/>
<xs:attribute name="group-ending-with" type="xsl:pattern"/>
<xs:attribute name="collation" type="xs:anyURI"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="function" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:param"/>
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xsl:sequence-constructor-group"/>
</xs:sequence>
<xs:attribute name="name" type="xsl:QName" use="required"/>
<xs:attribute default="yes" name="override" type="xsl:yes-or-no"/>
<xs:attribute default="item()*" name="as" type="xsl:sequence-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="if" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="test" type="xsl:expression" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="import">
<xs:complexType>
<xs:complexContent>
<xs:attribute name="href" type="xs:anyURI" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="import-schema" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" ref="xs:schema"/>
</xs:sequence>
<xs:attribute name="namespace" type="xs:anyURI"/>
<xs:attribute name="schema-location" type="xs:anyURI"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="include" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:attribute name="href" type="xs:anyURI" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="key" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:QName" use="required"/>
<xs:attribute name="match" type="xsl:pattern" use="required"/>
<xs:attribute name="use" type="xsl:expression"/>
<xs:attribute name="collation" type="xs:anyURI"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="matching-substring" type="xsl:sequence-constructor"/>
<xs:element name="message" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="select" type="xsl:expression"/>
<xs:attribute default="no" name="terminate" type="xsl:avt"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="namespace" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:avt" use="required"/>
<xs:attribute name="select" type="xsl:expression"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="namespace-alias" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:attribute name="stylesheet-prefix" type="xsl:prefix-or-default" use="required"/>
<xs:attribute name="result-prefix" type="xsl:prefix-or-default" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="next-match" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="xsl:with-param"/>
<xs:element ref="xsl:fallback"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="number" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:attribute name="value" type="xsl:expression"/>
<xs:attribute name="select" type="xsl:expression"/>
<xs:attribute default="single" name="level" type="xsl:level"/>
<xs:attribute name="count" type="xsl:pattern"/>
<xs:attribute name="from" type="xsl:pattern"/>
<xs:attribute default="1" name="format" type="xsl:avt"/>
<xs:attribute name="lang" type="xsl:avt"/>
<xs:attribute name="letter-value" type="xsl:avt"/>
<xs:attribute name="ordinal" type="xsl:avt"/>
<xs:attribute name="grouping-separator" type="xsl:avt"/>
<xs:attribute name="grouping-size" type="xsl:avt"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="otherwise" type="xsl:sequence-constructor"/>
<xs:element name="output" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:generic-element-type">
<xs:attribute name="name" type="xsl:QName"/>
<xs:attribute name="method" type="xsl:method"/>
<xs:attribute name="byte-order-mark" type="xsl:yes-or-no"/>
<xs:attribute name="cdata-section-elements" type="xsl:QNames"/>
<xs:attribute name="doctype-public" type="xs:string"/>
<xs:attribute name="doctype-system" type="xs:string"/>
<xs:attribute name="encoding" type="xs:string"/>
<xs:attribute name="escape-uri-attributes" type="xsl:yes-or-no"/>
<xs:attribute name="include-content-type" type="xsl:yes-or-no"/>
<xs:attribute name="indent" type="xsl:yes-or-no"/>
<xs:attribute name="media-type" type="xs:string"/>
<xs:attribute name="normalization-form" type="xs:NMTOKEN"/>
<xs:attribute name="omit-xml-declaration" type="xsl:yes-or-no"/>
<xs:attribute name="standalone" type="xsl:yes-or-no-or-omit"/>
<xs:attribute name="undeclare-prefixes" type="xsl:yes-or-no"/>
<xs:attribute name="use-character-maps" type="xsl:QNames"/>
<xs:attribute name="version" type="xs:NMTOKEN"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="output-character">
<xs:complexType>
<xs:complexContent>
<xs:attribute name="character" type="xsl:char" use="required"/>
<xs:attribute name="string" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="param">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:QName" use="required"/>
<xs:attribute name="select" type="xsl:expression"/>
<xs:attribute name="as" type="xsl:sequence-type"/>
<xs:attribute name="required" type="xsl:yes-or-no"/>
<xs:attribute name="tunnel" type="xsl:yes-or-no"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="perform-sort" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" ref="xsl:sort"/>
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xsl:sequence-constructor-group"/>
</xs:sequence>
<xs:attribute name="select" type="xsl:expression"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="preserve-space" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:attribute name="elements" type="xsl:nametests" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="processing-instruction" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:avt" use="required"/>
<xs:attribute name="select" type="xsl:expression"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="result-document" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="format" type="xsl:avt"/>
<xs:attribute name="href" type="xsl:avt"/>
<xs:attribute name="type" type="xsl:QName"/>
<xs:attribute name="validation" type="xsl:validation-type"/>
<xs:attribute name="method" type="xsl:avt"/>
<xs:attribute name="byte-order-mark" type="xsl:avt"/>
<xs:attribute name="cdata-section-elements" type="xsl:avt"/>
<xs:attribute name="doctype-public" type="xsl:avt"/>
<xs:attribute name="doctype-system" type="xsl:avt"/>
<xs:attribute name="encoding" type="xsl:avt"/>
<xs:attribute name="escape-uri-attributes" type="xsl:avt"/>
<xs:attribute name="include-content-type" type="xsl:avt"/>
<xs:attribute name="indent" type="xsl:avt"/>
<xs:attribute name="media-type" type="xsl:avt"/>
<xs:attribute name="normalization-form" type="xsl:avt"/>
<xs:attribute name="omit-xml-declaration" type="xsl:avt"/>
<xs:attribute name="standalone" type="xsl:avt"/>
<xs:attribute name="undeclare-prefixes" type="xsl:avt"/>
<xs:attribute name="use-character-maps" type="xsl:QNames"/>
<xs:attribute name="output-version" type="xsl:avt"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="sequence" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="xsl:fallback"/>
</xs:sequence>
<xs:attribute name="select" type="xsl:expression"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="sort">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="select" type="xsl:expression"/>
<xs:attribute name="lang" type="xsl:avt"/>
<xs:attribute default="text" name="data-type" type="xsl:avt"/>
<xs:attribute default="ascending" name="order" type="xsl:avt"/>
<xs:attribute name="case-order" type="xsl:avt"/>
<xs:attribute name="collation" type="xsl:avt"/>
<xs:attribute name="stable" type="xsl:yes-or-no"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="strip-space" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent>
<xs:attribute name="elements" type="xsl:nametests" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="stylesheet" substitutionGroup="xsl:transform"/>
<xs:element name="template" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:param"/>
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xsl:sequence-constructor-group"/>
</xs:sequence>
<xs:attribute name="match" type="xsl:pattern"/>
<xs:attribute name="priority" type="xs:decimal"/>
<xs:attribute name="mode" type="xsl:modes"/>
<xs:attribute name="name" type="xsl:QName"/>
<xs:attribute default="item()*" name="as" type="xsl:sequence-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="text-element-base-type">
<xs:simpleContent>
<xs:restriction base="xsl:versioned-element-type">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
<xs:element name="text" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xsl:text-element-base-type">
<xs:attribute default="no" name="disable-output-escaping" type="xsl:yes-or-no"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:complexType name="transform-element-base-type">
<xs:complexContent>
<xs:attribute name="version" type="xs:decimal" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="transform">
<xs:complexType>
<xs:complexContent>
<xs:extension base="xsl:transform-element-base-type">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="xsl:import"/>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="xsl:declaration"/>
<xs:element ref="xsl:variable"/>
<xs:element ref="xsl:param"/>
<xs:any namespace="##other" processContents="lax"/>
<!-- weaker than XSLT 1.0 -->
</xs:choice>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute default="strip" name="default-validation" type="xsl:validation-strip-or-preserve"/>
<xs:attribute default="unspecified" name="input-type-annotations" type="xsl:input-type-annotations-type"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="value-of" substitutionGroup="xsl:instruction">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="select" type="xsl:expression"/>
<xs:attribute name="separator" type="xsl:avt"/>
<xs:attribute default="no" name="disable-output-escaping" type="xsl:yes-or-no"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="variable">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:QName" use="required"/>
<xs:attribute name="select" type="xsl:expression" use="optional"/>
<xs:attribute name="as" type="xsl:sequence-type" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="when">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="test" type="xsl:expression" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="with-param">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:sequence-constructor">
<xs:attribute name="name" type="xsl:QName" use="required"/>
<xs:attribute name="select" type="xsl:expression"/>
<xs:attribute name="as" type="xsl:sequence-type"/>
<xs:attribute name="tunnel" type="xsl:yes-or-no"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
<xs:documentation>
PART C: definition of literal result elements

There are three ways to define the literal result elements
permissible in a stylesheet.

(a) do nothing. This allows any element to be used as a literal
result element, provided it is not in the XSLT namespace

(b) declare all permitted literal result elements as members
of the xsl:literal-result-element substitution group

(c) redefine the model group xsl:result-elements to accommodate
all permitted literal result elements.

Literal result elements are allowed to take certain attributes
in the XSLT namespace. These are defined in the attribute group
literal-result-element-attributes, which can be included in the
definition of any literal result element.
</xs:documentation>
</xs:annotation>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element abstract="true" name="literal-result-element" type="xs:anyType"/>
<xs:attributeGroup name="literal-result-element-attributes">
<xs:attribute form="qualified" name="default-collation" type="xsl:uri-list"/>
<xs:attribute form="qualified" name="extension-element-prefixes" type="xsl:prefixes"/>
<xs:attribute form="qualified" name="exclude-result-prefixes" type="xsl:prefixes"/>
<xs:attribute form="qualified" name="xpath-default-namespace" type="xs:anyURI"/>
<xs:attribute default="yes" form="qualified" name="inherit-namespaces" type="xsl:yes-or-no"/>
<xs:attribute default="" form="qualified" name="use-attribute-sets" type="xsl:QNames"/>
<xs:attribute form="qualified" name="use-when" type="xsl:expression"/>
<xs:attribute form="qualified" name="version" type="xs:decimal"/>
<xs:attribute form="qualified" name="type" type="xsl:QName"/>
<xs:attribute form="qualified" name="validation" type="xsl:validation-type"/>
</xs:attributeGroup>
<xs:group name="result-elements">
<xs:choice>
<xs:element ref="xsl:literal-result-element"/>
<xs:any namespace="##other" processContents="lax"/>
<xs:any namespace="##local" processContents="lax"/>
</xs:choice>
</xs:group>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
<xs:documentation>
PART D: definitions of simple types used in stylesheet attributes
</xs:documentation>
</xs:annotation>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:simpleType name="avt">
<xs:annotation>
<xs:documentation>
This type is used for all attributes that allow an attribute value template.
The general rules for the syntax of attribute value templates, and the specific
rules for each such attribute, are described in the XSLT 2.0 Recommendation.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="char">
<xs:annotation>
<xs:documentation>
A string containing exactly one character.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:length value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="expression">
<xs:annotation>
<xs:documentation>
An XPath 2.0 expression.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value=".+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="input-type-annotations-type">
<xs:annotation>
<xs:documentation>
Describes how type annotations in source documents are handled.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="preserve"/>
<xs:enumeration value="strip"/>
<xs:enumeration value="unspecified"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="level">
<xs:annotation>
<xs:documentation>
The level attribute of xsl:number:
one of single, multiple, or any.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NCName">
<xs:enumeration value="single"/>
<xs:enumeration value="multiple"/>
<xs:enumeration value="any"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="mode">
<xs:annotation>
<xs:documentation>
The mode attribute of xsl:apply-templates:
either a QName, or #current, or #default.
</xs:documentation>
</xs:annotation>
<xs:union memberTypes="xsl:QName">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#default"/>
<xs:enumeration value="#current"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="modes">
<xs:annotation>
<xs:documentation>
The mode attribute of xsl:template:
either a list, each member being either a QName or #default;
or the value #all
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:union memberTypes="xsl:QName">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#default"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#all"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="nametests">
<xs:annotation>
<xs:documentation>
A list of NameTests, as defined in the XPath 2.0 Recommendation.
Each NameTest is either a QName, or "*", or "prefix:*", or "*:localname"
</xs:documentation>
</xs:annotation>
<xs:list>
<xs:simpleType>
<xs:union memberTypes="xsl:QName">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="\i\c*:\*"/>
<xs:pattern value="\*:\i\c*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:simpleType name="prefixes">
<xs:list itemType="xs:NCName"/>
</xs:simpleType>
<xs:simpleType name="prefix-list-or-all">
<xs:union memberTypes="xsl:prefix-list">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#all"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="prefix-list">
<xs:list itemType="xsl:prefix-or-default"/>
</xs:simpleType>
<xs:simpleType name="method">
<xs:annotation>
<xs:documentation>
The method attribute of xsl:output:
Either one of the recognized names "xml", "xhtml", "html", "text",
or a QName that must include a prefix.
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:NCName">
<xs:enumeration value="xml"/>
<xs:enumeration value="xhtml"/>
<xs:enumeration value="html"/>
<xs:enumeration value="text"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xsl:QName">
<xs:pattern value="\c*:\c*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="pattern">
<xs:annotation>
<xs:documentation>
A match pattern as defined in the XSLT 2.0 Recommendation.
The syntax for patterns is a restricted form of the syntax for
XPath 2.0 expressions.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xsl:expression"/>
</xs:simpleType>
<xs:simpleType name="prefix-or-default">
<xs:annotation>
<xs:documentation>
Either a namespace prefix, or #default.
Used in the xsl:namespace-alias element.
</xs:documentation>
</xs:annotation>
<xs:union memberTypes="xs:NCName">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#default"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="QNames">
<xs:annotation>
<xs:documentation>
A list of QNames.
Used in the [xsl:]use-attribute-sets attribute of various elements,
and in the cdata-section-elements attribute of xsl:output
</xs:documentation>
</xs:annotation>
<xs:list itemType="xsl:QName"/>
</xs:simpleType>
<xs:simpleType name="QName">
<xs:annotation>
<xs:documentation>
A QName.
This schema does not use the built-in type xs:QName, but rather defines its own
QName type. Although xs:QName would define the correct validation on these attributes,
a schema processor would expand unprefixed QNames incorrectly when constructing the PSVI,
because (as defined in XML Schema errata) an unprefixed xs:QName is assumed to be in
the default namespace, which is not the correct assumption for XSLT.
The data type is defined as a restriction of the built-in type Name, restricted
so that it can only contain one colon which must not be the first or last character.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:Name">
<xs:pattern value="([^:]+:)?[^:]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sequence-type">
<xs:annotation>
<xs:documentation>
The description of a data type, conforming to the
SequenceType production defined in the XPath 2.0 Recommendation
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value=".+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="uri-list">
<xs:list itemType="xs:anyURI"/>
</xs:simpleType>
<xs:simpleType name="validation-strip-or-preserve">
<xs:annotation>
<xs:documentation>
Describes different ways of type-annotating an element or attribute.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xsl:validation-type">
<xs:enumeration value="preserve"/>
<xs:enumeration value="strip"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="validation-type">
<xs:annotation>
<xs:documentation>
Describes different ways of type-annotating an element or attribute.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="strict"/>
<xs:enumeration value="lax"/>
<xs:enumeration value="preserve"/>
<xs:enumeration value="strip"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="yes-or-no">
<xs:annotation>
<xs:documentation>
One of the values "yes" or "no".
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="yes"/>
<xs:enumeration value="no"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="yes-or-no-or-omit">
<xs:annotation>
<xs:documentation>
One of the values "yes" or "no" or "omit".
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="yes"/>
<xs:enumeration value="no"/>
<xs:enumeration value="omit"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

XML schema documentation generated with DocFlex/XML RE 1.8.7 using DocFlex/XML XSDDoc 2.7.0 template set. All content model diagrams generated by Altova XMLSpy via DocFlex/XML XMLSpy Integration.