home *** CD-ROM | disk | FTP | other *** search
/ MacFormat UK 160 - Disc 2 / MF_UK_160_2.iso / pc / DiscContent / Trials / oxygen / lib / oxygen.jar / builtin / XSL2.0Schema.xsd < prev   
Encoding:
Extensible Markup Language  |  2005-07-21  |  174.0 KB  |  2,515 lines

  1. <?xml version="1.0" ?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/XSL/Transform"
  3.     elementFormDefault="qualified" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  4.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  5.     <xs:annotation>
  6.         <xs:documentation>
  7.   
  8.     This is a schema for XSLT 2.0 stylesheets.
  9.     
  10.     It defines all the elements that appear in the XSLT namespace; it also
  11.     provides hooks that allow the inclusion of user-defined literal result elements,
  12.     extension instructions, and top-level data elements.
  13.     
  14.     The schema is derived (with kind permission) from a schema for XSLT 1.0 stylesheets
  15.     produced by Asir S Vedamuthu of WebMethods Inc.
  16.     
  17.     This schema is available for use under the conditions of the W3C Software License
  18.     published at http://www.w3.org/Consortium/Legal/copyright-software-19980720
  19.     
  20.     The schema is organized as follows:
  21.     
  22.     PART A: definitions of complex types and model groups used as the basis 
  23.             for element definitions
  24.     PART B: definitions of individual XSLT elements
  25.     PART C: definitions for literal result elements
  26.     PART D: definitions of simple types used in attribute definitions
  27.     
  28.     This schema does not attempt to define all the constraints that apply to a valid
  29.     XSLT 2.0 stylesheet module. It is the intention that all valid stylesheet modules 
  30.     should conform to this schema; however, the schema is non-normative and in the event 
  31.     of any conflict, the text of the Recommendation takes precedence.
  32.  
  33.     This schema does not implement the special rules that apply when a stylesheet
  34.     has sections that use forwards-compatible-mode. In this mode, setting version="3.0"
  35.     allows elements from the XSLT namespace to be used that are not defined in XSLT 2.0.
  36.  
  37.     Simplified stylesheets (those with a literal result element as the outermost element)
  38.     will validate against this schema only if validation starts in lax mode.
  39.     
  40.     This version is dated 2005-02-11
  41.     Authors: Michael H Kay, Saxonica Limited
  42.              Jeni Tennison, Jeni Tennison Consulting Ltd.
  43.     
  44.   </xs:documentation>
  45.         <xs:documentation> 2004-07-28, George Bina, SyncRO Soft Ltd. (oXygen XML Editor) added annotations for elements
  46.             and attributes. Copyright ¬© 2002-2004 SyncRO Soft Ltd. All rights reserved. </xs:documentation>
  47.     </xs:annotation>
  48.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  49.     <!--
  50. The declaration of xml:space and xml:lang may need to be commented out because
  51. of problems processing the schema using various tools
  52. -->
  53.     <xs:import namespace="http://www.w3.org/XML/1998/namespace" 
  54.   schemaLocation="xml.xsd"/>
  55.     <!-- 
  56.     An XSLT stylesheet may contain an in-line schema within an xsl:import-schema element,
  57.     so the Schema for schemas needs to be imported
  58. -->
  59.   
  60. <xs:import namespace="http://www.w3.org/2001/XMLSchema"
  61.                   schemaLocation="XMLSchema.xsd"/>
  62.  
  63. <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  64.     <xs:annotation>
  65.         <xs:documentation> PART A: definitions of complex types and model groups used as the basis for element
  66.             definitions </xs:documentation>
  67.     </xs:annotation>
  68.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  69.     <xs:complexType name="generic-element-type" mixed="true">
  70.         <xs:attribute name="default-collation" type="xsl:uri-list">
  71.             <xs:annotation>
  72.                 <xs:documentation> The default-collation attribute is a standard attribute that may
  73.                     appear on any element in the XSLT namespace, or (as xsl:default-collation) on a
  74.                     literal result element. The attribute is used to specify the default collation
  75.                     used by all XPath expressions appearing in the attributes of this element, or
  76.                     attributes of descendant elements, unless overridden by another
  77.                     default-collation attribute on an inner element. It also determines the
  78.                     collation used by certain XSLT constructs (such as xsl:key and
  79.                     xsl:for-each-group) within its scope. The value of the attribute is a
  80.                     whitespace-separated list of collation URIs. If the implementation recognizes
  81.                     one or more of these collation URIs, then it uses the first one that it
  82.                     recognizes as the default collation. <br/> See more info at
  83.                     http://www.w3.org/TR/xslt20/#default-collation-attribute </xs:documentation>
  84.             </xs:annotation>
  85.         </xs:attribute>
  86.         <xs:attribute name="exclude-result-prefixes" type="xsl:prefix-list-or-all">
  87.             <xs:annotation>
  88.                 <xs:documentation>The created element node will also have a copy of the namespace nodes that were
  89.                     present on the element node in the stylesheet tree with the exception of any namespace node whose
  90.                     string value is designated as an excluded namespace. A namespace URIs designated by using an
  91.                     [xsl:]exclude-result-prefixes attribute either on the literal result element itself or on an
  92.                     ancestor element are designated as excluded namespace. The attribute must be in the XSLT namespace
  93.                     only if its parent element is not in the XSLT namespace. The value of the attribute is either #all,
  94.                     or a whitespace-separated list of tokens, each of which is either a namespace prefix or #default.
  95.                     The namespace bound to each of the prefixes is designated as an excluded namespace. <br/> See more
  96.                     info at http://www.w3.org/TR/xslt20/#lre-namespaces</xs:documentation>
  97.             </xs:annotation>
  98.         </xs:attribute>
  99.         <xs:attribute name="extension-element-prefixes" type="xsl:prefix-list">
  100.             <xs:annotation>
  101.                 <xs:documentation> A namespace is designated as an extension namespace by using an
  102.                     [xsl:]extension-element-prefixes attribute on an element in the stylesheet. The attribute must be in
  103.                     the XSLT namespace only if its parent element is not in the XSLT namespace. The default namespace
  104.                     (as declared by xmlns) may be designated as an extension namespace by including #default in the list
  105.                     of namespace prefixes. The designation of a namespace as an extension namespace is effective for the
  106.                     element bearing the [xsl:]extension-element-prefixes attribute and for all descendants of that
  107.                     element within the same stylesheet module. <br/> See more info at http://www.w3.org/TR/xslt20/#extension-instruction</xs:documentation>
  108.             </xs:annotation>
  109.         </xs:attribute>
  110.         <xs:attribute name="use-when" type="xsl:expression">
  111.             <xs:annotation>
  112.                 <xs:documentation> Any element in the XSLT namespace may have a use-when attribute
  113.                     whose value is an XPath expression that can be evaluated statically. If the
  114.                     attribute is present and the effective boolean valueXP of the expression is
  115.                     false, then the element, together with all the nodes having that element as an
  116.                     ancestor, is effectively excluded from the stylesheet module. When a node is
  117.                     effectively excluded from a stylesheet module the stylesheet module has the same
  118.                     effect as if the node were not there. Among other things this means that no
  119.                     static or dynamic errors will be reported in respect of the element and its
  120.                     contents, other than errors in the use-when attribute itself.
  121.                 </xs:documentation>
  122.             </xs:annotation>
  123.         </xs:attribute>
  124.         <xs:attribute name="xpath-default-namespace" type="xs:anyURI">
  125.             <xs:annotation>
  126.                 <xs:documentation>The attribute [xsl:]xpath-default-namespace may be used on an element in the
  127.                     stylesheet to define the namespace that will be used for an unprefixed element name or type name.
  128.                     The attribute must be in the XSLT namespace only if its parent element is not in the XSLT namespace.
  129.                     If the effective value of the attribute is a zero-length string, which will be the case if it is
  130.                     explicitly set to a zero-length string or if it is not specified at all, then an unprefixed element
  131.                     name or type name refers to a name that is in no namespace. <br/> See more info at http://www.w3.org/TR/xslt20/#unprefixed-qnames</xs:documentation>
  132.             </xs:annotation>
  133.         </xs:attribute>
  134.         <xs:anyAttribute namespace="##other" processContents="lax"/>
  135.         </xs:complexType>
  136.     <xs:complexType name="versioned-element-type" mixed="true">
  137.         <xs:complexContent>
  138.             <xs:extension base="xsl:generic-element-type">
  139.                 <xs:attribute name="version" type="xs:decimal" use="optional">
  140.                     <xs:annotation>
  141.                         <xs:documentation> An element enables backwards-compatible behavior for itself, its attributes,
  142.                             its descendants and their attributes if it has an [xsl:]version attribute whose value is
  143.                             less than 2.0. An element enables forwards-compatible behavior for itself, its attributes,
  144.                             its descendants and their attributes if it has an [xsl:]version attribute whose value is
  145.                             greater than 2.0. The compatibility behavior established by an element overrides any
  146.                             compatibility behavior established by an ancestor element. The attribute must be in the XSLT
  147.                             namespace only if its parent element is not in the XSLT namespace. <br/> See more info at
  148.                             http://www.w3.org/TR/xslt20/#backwards and http://www.w3.org/TR/xslt20/#forwards </xs:documentation>
  149.                     </xs:annotation>
  150.                 </xs:attribute>
  151.             </xs:extension>
  152.         </xs:complexContent>
  153.     </xs:complexType>
  154.     <xs:complexType name="element-only-versioned-element-type" mixed="false">
  155.         <xs:complexContent>
  156.             <xs:restriction base="xsl:versioned-element-type">
  157.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  158.             </xs:restriction>
  159.         </xs:complexContent>
  160.     </xs:complexType>
  161.     <xs:complexType name="sequence-constructor">
  162.         <xs:complexContent mixed="true">
  163.             <xs:extension base="xsl:versioned-element-type">
  164.                 <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
  165.             </xs:extension>
  166.         </xs:complexContent>
  167.     </xs:complexType>
  168.     <xs:group name="sequence-constructor-group">
  169.         <xs:choice>
  170.             <xs:element ref="xsl:variable"/>
  171.             <xs:element ref="xsl:instruction"/>
  172.             <xs:group ref="xsl:result-elements"/>
  173.         </xs:choice>
  174.     </xs:group>
  175.     <xs:element name="declaration" type="xsl:generic-element-type" abstract="true"/>
  176.     <xs:element name="instruction" type="xsl:versioned-element-type" abstract="true"/>
  177.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  178.     <xs:annotation>
  179.         <xs:documentation> PART B: definitions of individual XSLT elements Elements are listed in alphabetical order. </xs:documentation>
  180.     </xs:annotation>
  181.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  182.     <xs:element name="analyze-string" substitutionGroup="xsl:instruction">
  183.         <xs:annotation>
  184.             <xs:documentation>This instruction is designed to process all the non-overlapping substrings of the input
  185.                 string that match the regular expression supplied. The input string is partitioned into a sequence of
  186.                 substrings, some of which match the regular expression, others which do not match it. Each substring
  187.                 will contain at least one character. This sequence of substrings is processed using the
  188.                 xsl:matching-substring and xsl:non-matching-substring child instructions. <br/> See more info at http://www.w3.org/TR/xslt20/#element-analyze-string</xs:documentation>
  189.         </xs:annotation>
  190.         <xs:complexType>
  191.             <xs:complexContent>
  192.                 <xs:extension base="xsl:element-only-versioned-element-type">
  193.                     <xs:sequence>
  194.                         <xs:element ref="xsl:matching-substring" minOccurs="0"/>
  195.                         <xs:element ref="xsl:non-matching-substring" minOccurs="0"/>
  196.                         <xs:element ref="xsl:fallback" minOccurs="0" maxOccurs="unbounded"/>
  197.                     </xs:sequence>
  198.                     <xs:attribute name="select" type="xsl:expression" use="required">
  199.                         <xs:annotation>
  200.                             <xs:documentation>Specifies the string input for the xsl:analyze-string instruction as the
  201.                                 result of evaluating the expression in this attribute.</xs:documentation>
  202.                         </xs:annotation>
  203.                     </xs:attribute>
  204.                     <xs:attribute name="regex" type="xsl:avt" use="required">
  205.                         <xs:annotation>
  206.                             <xs:documentation> Specifies the regular expression input for the xsl:analyze-string
  207.                                 instruction as the effective value of the this attribute. Because the regex attribute is
  208.                                 an attribute value template, curly brackets within the regular expression must be doubled.</xs:documentation>
  209.                         </xs:annotation>
  210.                     </xs:attribute>
  211.                     <xs:attribute name="flags" type="xsl:avt" default="">
  212.                         <xs:annotation>
  213.                             <xs:documentation> The flags attribute may be used to control the interpretation of the
  214.                                 regular expression. <br/> See more info at http://www.w3.org/TR/xpath-functions/#flags </xs:documentation>
  215.                         </xs:annotation>
  216.                     </xs:attribute>
  217.                 </xs:extension>
  218.             </xs:complexContent>
  219.         </xs:complexType>
  220.     </xs:element>
  221.     <xs:element name="apply-imports" substitutionGroup="xsl:instruction">
  222.         <xs:annotation>
  223.             <xs:documentation>A template rule that is being used to override another template rule can use the
  224.                 xsl:apply-imports instruction to invoke the overridden template rule. The xsl:apply-imports instruction
  225.                 only considers template rules in imported stylesheet modules. It will invoke the built-in template rule
  226.                 for the node if no other template rule is found. <br/> See more info at http://www.w3.org/TR/xslt20/#element-apply-imports</xs:documentation>
  227.         </xs:annotation>
  228.         <xs:complexType>
  229.             <xs:complexContent>
  230.                 <xs:extension base="xsl:element-only-versioned-element-type">
  231.                     <xs:sequence>
  232.                         <xs:element ref="xsl:with-param" minOccurs="0" maxOccurs="unbounded"/>
  233.                     </xs:sequence>
  234.                 </xs:extension>
  235.             </xs:complexContent>
  236.         </xs:complexType>
  237.     </xs:element>
  238.     <xs:element name="apply-templates" substitutionGroup="xsl:instruction">
  239.         <xs:annotation>
  240.             <xs:documentation> The xsl:apply-templates instruction takes as input a sequence of nodes in the source
  241.                 tree, and produces as output a sequence of items; these will often be nodes to be added to the result
  242.                 tree. If the instruction has one or more xsl:sort children, then the input sequence is sorted. Each node
  243.                 in the input sequence is processed by finding a template rule whose pattern matches that node.<br/> See
  244.                 more info at http://www.w3.org/TR/xslt20/#element-apply-templates</xs:documentation>
  245.         </xs:annotation>
  246.         <xs:complexType>
  247.             <xs:complexContent>
  248.                 <xs:extension base="xsl:element-only-versioned-element-type">
  249.                     <xs:choice minOccurs="0" maxOccurs="unbounded">
  250.                         <xs:element ref="xsl:sort"/>
  251.                         <xs:element ref="xsl:with-param"/>
  252.                     </xs:choice>
  253.                     <xs:attribute name="select" type="xsl:expression" default="child::node()">
  254.                         <xs:annotation>
  255.                             <xs:documentation>A select attribute can be used to process nodes selected by an expression
  256.                                 instead of processing all children. The value of the select attribute is an expression.
  257.                                 The expression must evaluate to a sequence of nodes (it can contain zero, one, or more nodes).</xs:documentation>
  258.                         </xs:annotation>
  259.                     </xs:attribute>
  260.                     <xs:attribute name="mode" type="xsl:mode">
  261.                         <xs:annotation>
  262.                             <xs:documentation>The xsl:apply-templates element has an optional mode attribute that
  263.                                 identifies the processing mode. The value of this attribute must either be a QName to
  264.                                 define the name of a mode, or the token #default, to indicate that the default mode is
  265.                                 to be used, or the token #current, to indicate that the current mode is to be used. If
  266.                                 the attribute is omitted, the default mode is used. When searching for a template rule
  267.                                 to process each node selected by the xsl:apply-templates instruction, only those
  268.                                 template rules that are applicable to the selected mode are considered. <br/> See more
  269.                                 info at http://www.w3.org/TR/xslt20/#modes</xs:documentation>
  270.                         </xs:annotation>
  271.                     </xs:attribute>
  272.                 </xs:extension>
  273.             </xs:complexContent>
  274.         </xs:complexType>
  275.     </xs:element>
  276.     <xs:element name="attribute" substitutionGroup="xsl:instruction">
  277.         <xs:annotation>
  278.             <xs:documentation>The xsl:attribute element can be used to add attributes to result elements whether created
  279.                 by literal result elements in the stylesheet or by instructions such as xsl:element or xsl:copy. The
  280.                 expanded-QName of the attribute to be created is specified by a required name attribute and an optional
  281.                 namespace attribute. Except in error cases, the result of evaluating an xsl:attribute instruction is the
  282.                 newly constructed attribute node. <br/> See more info at http://www.w3.org/TR/xslt20/#element-attribute</xs:documentation>
  283.         </xs:annotation>
  284.         <xs:complexType>
  285.             <xs:complexContent mixed="true">
  286.                 <xs:extension base="xsl:sequence-constructor">
  287.                     <xs:attribute name="name" type="xsl:avt" use="required">
  288.                         <xs:annotation>
  289.                             <xs:documentation>The name attribute, together with the optional namespace attribute,
  290.                                 specifies the expanded-QName of the attribute to be created. The name attribute is
  291.                                 interpreted as an attribute value template, whose effective value must be a lexical QName.</xs:documentation>
  292.                         </xs:annotation>
  293.                     </xs:attribute>
  294.                     <xs:attribute name="namespace" type="xsl:avt">
  295.                         <xs:annotation>
  296.                             <xs:documentation> The namespace attribute, together with the required name attribute,
  297.                                 specifies the expanded-QName of the attribute to be created. If the namespace attribute
  298.                                 is not present, then the lexical QName is expanded into an expanded-QName using the
  299.                                 namespace declarations in effect for the xsl:attribute element, not including any
  300.                                 default namespace declaration. If the namespace attribute is present, then it is
  301.                                 interpreted as an attribute value template. The effective value should be a URI reference.</xs:documentation>
  302.                         </xs:annotation>
  303.                     </xs:attribute>
  304.                     <xs:attribute name="select" type="xsl:expression">
  305.                         <xs:annotation>
  306.                             <xs:documentation>The string value of the new attribute node may be defined by using the 
  307.                                 select attribute.</xs:documentation>
  308.                         </xs:annotation>
  309.                     </xs:attribute>
  310.                     <xs:attribute name="separator" type="xsl:avt">
  311.                         <xs:annotation>
  312.                             <xs:documentation>If the separator attribute is present, then the effective value of this attribute 
  313.                                 is used to separate adjacent items in the result sequence. In the absence of this attribute, the 
  314.                                 default separator is a single space (#x20) when the content is specified using the select 
  315.                                 attribute, or a zero-length string when the content is specified using a sequence constructor.</xs:documentation>
  316.                         </xs:annotation>
  317.                     </xs:attribute>
  318.                     <xs:attribute name="type" type="xsl:QName">
  319.                         <xs:annotation>
  320.                             <xs:documentation> The optional type attribute may be used on the xsl:attribute instruction
  321.                                 to invoke validation of the contents of the attribute against a type definition in a
  322.                                 schema, and to determine the type annotation that the new attribute node will carry. If
  323.                                 the type attribute is present, then the newly constructed attribute is validated against
  324.                                 the type definition identified by this attribute. The type and validation attributes are
  325.                                 mutually exclusive.<br/> See more info at http://www.w3.org/TR/xslt20/#validation </xs:documentation>
  326.                         </xs:annotation>
  327.                     </xs:attribute>
  328.                     <xs:attribute name="validation" type="xsl:validation-type">
  329.                         <xs:annotation>
  330.                             <xs:documentation> The optional validation attribute may be used on the xsl:attribute
  331.                                 instruction to invoke validation of the contents of the attribute against attribute
  332.                                 declaration in a schema, and to determine the type annotation that the new attribute
  333.                                 node will carry. Possible values are strip, preserve, strict and lax. The type and
  334.                                 validation attributes are mutually exclusive.<br/> See more info at
  335.                                 http://www.w3.org/TR/xslt20/#validation </xs:documentation>
  336.                         </xs:annotation>
  337.                     </xs:attribute>
  338.                 </xs:extension>
  339.             </xs:complexContent>
  340.         </xs:complexType>
  341.     </xs:element>
  342.     <xs:element name="attribute-set" substitutionGroup="xsl:declaration">
  343.         <xs:annotation>
  344.             <xs:documentation>The xsl:attribute-set element defines a named attribute set: that is, a collection of
  345.                 attribute definitions that can be used repeatedly on different elements in the result tree. <br/> See
  346.                 more info at http://www.w3.org/TR/xslt20/#element-attribute-set</xs:documentation>
  347.         </xs:annotation>
  348.         <xs:complexType>
  349.             <xs:complexContent>
  350.                 <xs:extension base="xsl:element-only-versioned-element-type">
  351.                     <xs:sequence minOccurs="0" maxOccurs="unbounded">
  352.                         <xs:element ref="xsl:attribute"/>
  353.                     </xs:sequence>
  354.                     <xs:attribute name="name" type="xsl:QName" use="required">
  355.                         <xs:annotation>
  356.                             <xs:documentation>The required name attribute specifies the name of the attribute set. The
  357.                                 value of the name attribute is a QName. </xs:documentation>
  358.                         </xs:annotation>
  359.                     </xs:attribute>
  360.                     <xs:attribute name="use-attribute-sets" type="xsl:QNames" default="">
  361.                         <xs:annotation>
  362.                             <xs:documentation>Specifying a use-attribute-sets attribute is broadly equivalent to adding
  363.                                 xsl:attribute instructions for each of the attributes in each of the named attribute
  364.                                 sets to the beginning of the content of the instruction with the use-attribute-sets
  365.                                 attribute, in the same order in which the names of the attribute sets are specified in
  366.                                 the use-attribute-sets attribute.</xs:documentation>
  367.                         </xs:annotation>
  368.                     </xs:attribute>
  369.                 </xs:extension>
  370.             </xs:complexContent>
  371.         </xs:complexType>
  372.     </xs:element>
  373.     <xs:element name="call-template" substitutionGroup="xsl:instruction">
  374.         <xs:annotation>
  375.             <xs:documentation>This instruction is used to invoke a template by name. An xsl:template element with a name
  376.                 attribute defines a named template. Unlike xsl:apply-templates, the xsl:call-template instruction does
  377.                 not change the focus.<br/> See more info at http://www.w3.org/TR/xslt20/#element-call-template </xs:documentation>
  378.         </xs:annotation>
  379.         <xs:complexType>
  380.             <xs:complexContent>
  381.                 <xs:extension base="xsl:element-only-versioned-element-type">
  382.                     <xs:sequence>
  383.                         <xs:element ref="xsl:with-param" minOccurs="0" maxOccurs="unbounded"/>
  384.                     </xs:sequence>
  385.                     <xs:attribute name="name" type="xsl:QName" use="required">
  386.                         <xs:annotation>
  387.                             <xs:documentation>The name attribute identifies the template to be invoked.</xs:documentation>
  388.                         </xs:annotation>
  389.                     </xs:attribute>
  390.                 </xs:extension>
  391.             </xs:complexContent>
  392.         </xs:complexType>
  393.     </xs:element>
  394.     <xs:element name="character-map" substitutionGroup="xsl:declaration">
  395.         <xs:annotation>
  396.             <xs:documentation> The xsl:character-map declaration declares a character map with a name and a set of
  397.                 character mappings. The character mappings are specified by means of xsl:output-character elements
  398.                 contained either directly within the xsl:character-map element, or in further character maps referenced
  399.                 in the use-character-maps attribute. <br/> See more info at http://www.w3.org/TR/xslt20/#element-character-map</xs:documentation>
  400.         </xs:annotation>
  401.         <xs:complexType>
  402.             <xs:complexContent>
  403.                 <xs:extension base="xsl:element-only-versioned-element-type">
  404.                     <xs:sequence>
  405.                         <xs:element ref="xsl:output-character" minOccurs="0" maxOccurs="unbounded"/>
  406.                     </xs:sequence>
  407.                     <xs:attribute name="name" type="xsl:QName" use="required">
  408.                         <xs:annotation>
  409.                             <xs:documentation>The required name attribute provides a name for the character map. </xs:documentation>
  410.                         </xs:annotation>
  411.                     </xs:attribute>
  412.                     <xs:attribute name="use-character-maps" type="xsl:QNames" default="">
  413.                         <xs:annotation>
  414.                             <xs:documentation>Specifies further character maps references. The character maps referenced
  415.                                 in a single use-character-maps attribute are considered in the order in which they are
  416.                                 listed. The expansion is depth-first: each referenced character map is fully expanded
  417.                                 before the next one is considered. </xs:documentation>
  418.                         </xs:annotation>
  419.                     </xs:attribute>
  420.                 </xs:extension>
  421.             </xs:complexContent>
  422.         </xs:complexType>
  423.     </xs:element>
  424.     <xs:element name="choose" substitutionGroup="xsl:instruction">
  425.         <xs:annotation>
  426.             <xs:documentation>The xsl:choose element selects one among a number of possible alternatives. It consists of
  427.                 a sequence of xsl:when elements followed by an optional xsl:otherwise element. When an xsl:choose
  428.                 element is processed, each of the xsl:when elements is tested in turn (that is, in the order that the
  429.                 elements appear in the stylesheet), until one of the xsl:when elements is satisfied. If none of the
  430.                 xsl:when elements is satisfied, then the xsl:otherwise element is considered. <br/> See more info at
  431.                 http://www.w3.org/TR/xslt20/#element-choose </xs:documentation>
  432.         </xs:annotation>
  433.         <xs:complexType>
  434.             <xs:complexContent>
  435.                 <xs:extension base="xsl:element-only-versioned-element-type">
  436.                     <xs:sequence>
  437.                         <xs:element ref="xsl:when" maxOccurs="unbounded"/>
  438.                         <xs:element ref="xsl:otherwise" minOccurs="0"/>
  439.                     </xs:sequence>
  440.                 </xs:extension>
  441.             </xs:complexContent>
  442.         </xs:complexType>
  443.     </xs:element>
  444.     <xs:element name="comment" substitutionGroup="xsl:instruction">
  445.         <xs:annotation>
  446.             <xs:documentation> The xsl:comment element is evaluated to contruct a new comment node. Except in error
  447.                 cases, the result of evaluating the xsl:comment instruction is a single node, the newly constructed
  448.                 comment node. <br/> See more info at http://www.w3.org/TR/xslt20/#element-comment </xs:documentation>
  449.         </xs:annotation>
  450.         <xs:complexType>
  451.             <xs:complexContent mixed="true">
  452.                 <xs:extension base="xsl:sequence-constructor">
  453.                     <xs:attribute name="select" type="xsl:expression">
  454.                         <xs:annotation>
  455.                             <xs:documentation>Specifies the string value of the new comment node.</xs:documentation>
  456.                         </xs:annotation>
  457.                     </xs:attribute>
  458.                 </xs:extension>
  459.             </xs:complexContent>
  460.         </xs:complexType>
  461.     </xs:element>
  462.     <xs:element name="copy" substitutionGroup="xsl:instruction">
  463.         <xs:annotation>
  464.             <xs:documentation>The xsl:copy instruction provides a way of copying the context item. If the context item
  465.                 is a node, evaluating the xsl:copy instruction constructs a copy of the context node, and the result of
  466.                 the xsl:copy instruction is this newly constructed node. By default, the namespace nodes of the context
  467.                 node are automatically copied as well, but the attributes and children of the node are not automatically
  468.                 copied. <br/> See more info at http://www.w3.org/TR/xslt20/#element-copy </xs:documentation>
  469.         </xs:annotation>
  470.         <xs:complexType>
  471.             <xs:complexContent mixed="true">
  472.                 <xs:extension base="xsl:sequence-constructor">
  473.                     <xs:attribute name="copy-namespaces" type="xsl:yes-or-no" default="yes">
  474.                         <xs:annotation>
  475.                             <xs:documentation>The xsl:copy instruction has an optional copy-namespaces attribute, with
  476.                                 the value yes or no. The default value is yes. The attribute is used only when copying
  477.                                 element nodes. If the value is set to yes, or is omitted, then all the namespace nodes
  478.                                 of the source element are copied as namespace nodes for the result element. If the value
  479.                                 is set to no, then the namespace nodes are not copied. However, namespace nodes will
  480.                                 still be added to the result element as required by the namespace fixup process.</xs:documentation>
  481.                         </xs:annotation>
  482.                     </xs:attribute>
  483.                     <xs:attribute name="inherit-namespaces" type="xsl:yes-or-no" default="yes">
  484.                         <xs:annotation>
  485.                             <xs:documentation>The default value is yes. The attribute is used only
  486.                                 when copying element nodes. If the value is set to yes, or is
  487.                                 omitted, then the namespace nodes created for the newly constructed
  488.                                 element (whether these were copied from those of the source node, or
  489.                                 generated as a result of namespace fixup) are copied to the children
  490.                                 and descendants of the newly constructed element. If the value is
  491.                                 set to no, then these namespace nodes are not automatically copied
  492.                                 to the children. This may result in namespace undeclarations (such
  493.                                 as xmlns="" or, in the case of XML Namespaces 1.1, xmlns:p="")
  494.                                 appearing on the child elements when a final result tree is
  495.                                 serialized. </xs:documentation>
  496.                         </xs:annotation>
  497.                     </xs:attribute>                    
  498.                     <xs:attribute name="use-attribute-sets" type="xsl:QNames" default="">
  499.                         <xs:annotation>
  500.                             <xs:documentation> The xsl:copy instruction has an optional use-attribute-sets attribute,
  501.                                 whose value is a space-separated list of QNames that identify xsl:attribute-set
  502.                                 declarations. This attribute is used only when copying element nodes. This list is
  503.                                 expanded to produce a sequence of attribute nodes. </xs:documentation>
  504.                         </xs:annotation>
  505.                     </xs:attribute>
  506.                     <xs:attribute name="type" type="xsl:QName">
  507.                         <xs:annotation>
  508.                             <xs:documentation> The optional attributes type and validation may be used on the xsl:copy
  509.                                 instruction to validate the contents of an element, attribute or document node against a
  510.                                 type definition, element declaration, or attribute declaration in a schema, and thus to
  511.                                 determine the type annotation that the new copy of an element or attribute node will
  512.                                 carry. These attributes are ignored when copying an item that is not an element,
  513.                                 attribute or document node. When the node being copied is an element or document node,
  514.                                 these attributes also affect the type annotation carried by any elements and attributes
  515.                                 that have the copied element or document node as an ancestor. These two attributes are
  516.                                 both optional, and if one is specified then the other must be omitted. <br/> See more
  517.                                 info at http://www.w3.org/TR/xslt20/#validation </xs:documentation>
  518.                         </xs:annotation>
  519.                     </xs:attribute>
  520.                     <xs:attribute name="validation" type="xsl:validation-type">
  521.                         <xs:annotation>
  522.                             <xs:documentation> The optional attributes type and validation may be used on the xsl:copy
  523.                                 instruction to validate the contents of an element, attribute or document node against a
  524.                                 type definition, element declaration, or attribute declaration in a schema, and thus to
  525.                                 determine the type annotation that the new copy of an element or attribute node will
  526.                                 carry. These attributes are ignored when copying an item that is not an element,
  527.                                 attribute or document node. When the node being copied is an element or document node,
  528.                                 these attributes also affect the type annotation carried by any elements and attributes
  529.                                 that have the copied element or document node as an ancestor. These two attributes are
  530.                                 both optional, and if one is specified then the other must be omitted. <br/> See more
  531.                                 info at http://www.w3.org/TR/xslt20/#validation</xs:documentation>
  532.                         </xs:annotation>
  533.                     </xs:attribute>
  534.                 </xs:extension>
  535.             </xs:complexContent>
  536.         </xs:complexType>
  537.     </xs:element>
  538.     <xs:element name="copy-of" substitutionGroup="xsl:instruction">
  539.         <xs:annotation>
  540.             <xs:documentation> The xsl:copy-of instruction can be used to construct a copy of a sequence of nodes and/or
  541.                 atomic values, with each new node containing copies of all the children, attributes, and (by default)
  542.                 namespaces of the original node, recursively. The result of evaluating the instruction is a sequence of
  543.                 items corresponding one-to-one with the supplied sequence, and retaining its order. <br/>See more info
  544.                 at http://www.w3.org/TR/xslt20/#element-copy-of </xs:documentation>
  545.         </xs:annotation>
  546.         <xs:complexType>
  547.             <xs:complexContent mixed="true">
  548.                 <xs:extension base="xsl:versioned-element-type">
  549.                     <xs:attribute name="select" type="xsl:expression" use="required">
  550.                         <xs:annotation>
  551.                             <xs:documentation>The required select attribute contains an expression, whose value may be
  552.                                 any sequence of nodes and atomic values.</xs:documentation>
  553.                         </xs:annotation>
  554.                     </xs:attribute>
  555.                     <xs:attribute name="copy-namespaces" type="xsl:yes-or-no" default="yes">
  556.                         <xs:annotation>
  557.                             <xs:documentation> When using xsl:copy-of the new elements will also have namespace nodes
  558.                                 copied from the original element node, unless they are excluded by specifying
  559.                                 copy-namespaces="no". If this attribute is omitted, or takes the value yes, then all the
  560.                                 namespace nodes of the original element are copied to the new element. If it takes the
  561.                                 value no, then none of the namespace nodes are copied: however, namespace nodes will
  562.                                 still be created in the result tree as required by the namespace fixup process. </xs:documentation>
  563.                         </xs:annotation>
  564.                     </xs:attribute>
  565.                     <xs:attribute name="type" type="xsl:QName">
  566.                         <xs:annotation>
  567.                             <xs:documentation> The optional attributes type and validation may be used on the
  568.                                 xsl:copy-of instruction to validate the contents of an element, attribute or document
  569.                                 node against a type definition, element declaration, or attribute declaration in a
  570.                                 schema and thus to determine the type annotation that the new copy of an element or
  571.                                 attribute node will carry. These attributes are applied individually to each element,
  572.                                 attribute, and document node that is selected by the expression in the select attribute.
  573.                                 These attributes are ignored when copying an item that is not an element, attribute or
  574.                                 document node. The specified type and validation apply directly only to elements,
  575.                                 attributes and document nodes created as copies of nodes actually selected by the select
  576.                                 expression, they do not apply to nodes that are implicitly copied because they have
  577.                                 selected nodes as an ancestor. However, these attributes do indirectly affect the type
  578.                                 annotation carried by such implicitly copied nodes, as a consequence of the validation
  579.                                 process. These two attributes are both optional, and if one is specified then the other
  580.                                 must be omitted. <br/> See more info at http://www.w3.org/TR/xslt20/#validation </xs:documentation>
  581.                         </xs:annotation>
  582.                     </xs:attribute>
  583.                     <xs:attribute name="validation" type="xsl:validation-type">
  584.                         <xs:annotation>
  585.                             <xs:documentation> The optional attributes type and validation may be used on the
  586.                                 xsl:copy-of instruction to validate the contents of an element, attribute or document
  587.                                 node against a type definition, element declaration, or attribute declaration in a
  588.                                 schema and thus to determine the type annotation that the new copy of an element or
  589.                                 attribute node will carry. These attributes are applied individually to each element,
  590.                                 attribute, and document node that is selected by the expression in the select attribute.
  591.                                 These attributes are ignored when copying an item that is not an element, attribute or
  592.                                 document node. The specified type and validation apply directly only to elements,
  593.                                 attributes and document nodes created as copies of nodes actually selected by the select
  594.                                 expression, they do not apply to nodes that are implicitly copied because they have
  595.                                 selected nodes as an ancestor. However, these attributes do indirectly affect the type
  596.                                 annotation carried by such implicitly copied nodes, as a consequence of the validation
  597.                                 process. These two attributes are both optional, and if one is specified then the other
  598.                                 must be omitted. <br/> See more info at http://www.w3.org/TR/xslt20/#validation </xs:documentation>
  599.                         </xs:annotation>
  600.                     </xs:attribute>
  601.                 </xs:extension>
  602.             </xs:complexContent>
  603.         </xs:complexType>
  604.     </xs:element>
  605.     <xs:element name="decimal-format" substitutionGroup="xsl:declaration">
  606.         <xs:annotation>
  607.             <xs:documentation> The xsl:decimal-format element declares a decimal-format, which controls the
  608.                 interpretation of a picture string used by the format-number function. <br/> See more info at
  609.                 http://www.w3.org/TR/xslt20/#element-decimal-format </xs:documentation>
  610.         </xs:annotation>
  611.         <xs:complexType>
  612.             <xs:complexContent>
  613.                 <xs:extension base="xsl:element-only-versioned-element-type">
  614.                     <xs:attribute name="name" type="xsl:QName">
  615.                         <xs:annotation>
  616.                             <xs:documentation> If there is a name attribute, then the element declares a named
  617.                                 decimal-format; otherwise, it declares the default decimal-format. The value of the name
  618.                                 attribute is a QName. </xs:documentation>
  619.                         </xs:annotation>
  620.                     </xs:attribute>
  621.                     <xs:attribute name="decimal-separator" type="xsl:char" default=".">
  622.                         <xs:annotation>
  623.                             <xs:documentation> The decimal-separator attribute specifies the character used for the
  624.                                 decimal-separator-sign; the default value is the period character (.). </xs:documentation>
  625.                         </xs:annotation>
  626.                     </xs:attribute>
  627.                     <xs:attribute name="grouping-separator" type="xsl:char" default=",">
  628.                         <xs:annotation>
  629.                             <xs:documentation> The grouping-separator attribute specifies the character used for the
  630.                                 grouping-sign, which is typically used as a thousands separator; the default value is
  631.                                 the comma character (,). </xs:documentation>
  632.                         </xs:annotation>
  633.                     </xs:attribute>
  634.                     <xs:attribute name="infinity" type="xs:string" default="Infinity">
  635.                         <xs:annotation>
  636.                             <xs:documentation> The infinity attribute specifies the string used for the infinity-symbol;
  637.                                 the default value is the string Infinity. </xs:documentation>
  638.                         </xs:annotation>
  639.                     </xs:attribute>
  640.                     <xs:attribute name="minus-sign" type="xsl:char" default="-">
  641.                         <xs:annotation>
  642.                             <xs:documentation> The minus-sign attribute specifies the character used for the
  643.                                 minus-symbol; the default value is the hyphen-minus character (-, #x2D). The value must
  644.                                 be a single character. </xs:documentation>
  645.                         </xs:annotation>
  646.                     </xs:attribute>
  647.                     <xs:attribute name="NaN" type="xs:string" default="NaN">
  648.                         <xs:annotation>
  649.                             <xs:documentation> The NaN attribute specifies the string used for the NaN-symbol, which is
  650.                                 used to represent the value NaN (not-a-number); the default value is the string NaN. </xs:documentation>
  651.                         </xs:annotation>
  652.                     </xs:attribute>
  653.                     <xs:attribute name="percent" type="xsl:char" default="%">
  654.                         <xs:annotation>
  655.                             <xs:documentation> The percent attribyte specifies the character used for the percent-sign;
  656.                                 the default value is the percent character (%). </xs:documentation>
  657.                         </xs:annotation>
  658.                     </xs:attribute>
  659.                     <xs:attribute name="per-mille" type="xsl:char" default="‰">
  660.                         <xs:annotation>
  661.                             <xs:documentation>The per-mille attribute specifies the character used for the
  662.                                 per-mille-sign; the default value is the Unicode per-mille character (#x2030).</xs:documentation>
  663.                         </xs:annotation>
  664.                     </xs:attribute>
  665.                     <xs:attribute name="zero-digit" type="xsl:char" default="0">
  666.                         <xs:annotation>
  667.                             <xs:documentation>The zero-digit attribute specifies the character used for the
  668.                                 digit-zero-sign; the default value is the digit zero (0). This character must be a digit
  669.                                 (category Nd in the Unicode property database), and it must have the numeric value zero.
  670.                                 This attribute implicitly defines the Unicode character that is used to represent each
  671.                                 of the values 0 to 9 in the final result string: Unicode is organized so that each set
  672.                                 of decimal digits forms a contiguous block of characters in numerical sequence.</xs:documentation>
  673.                         </xs:annotation>
  674.                     </xs:attribute>
  675.                     <xs:attribute name="digit" type="xsl:char" default="#">
  676.                         <xs:annotation>
  677.                             <xs:documentation> The digit attribute specifies the character used for the digit-sign in
  678.                                 the picture string; the default value is the number sign character (#). </xs:documentation>
  679.                         </xs:annotation>
  680.                     </xs:attribute>
  681.                     <xs:attribute name="pattern-separator" type="xsl:char" default=";">
  682.                         <xs:annotation>
  683.                             <xs:documentation> The pattern-separator attribute specifies the character used for the
  684.                                 pattern-separator-sign, which separates positive and negative sub-pictures in a picture
  685.                                 string; the default value is the semi-colon character (;). </xs:documentation>
  686.                         </xs:annotation>
  687.                     </xs:attribute>
  688.                 </xs:extension>
  689.             </xs:complexContent>
  690.         </xs:complexType>
  691.     </xs:element>
  692.     <xs:element name="element" substitutionGroup="xsl:instruction">
  693.         <xs:annotation>
  694.             <xs:documentation> The xsl:element instruction allows an element to be created with a computed name. The
  695.                 expanded-QName of the element to be created is specified by a required name attribute and an optional
  696.                 namespace attribute. The result of evaluating the xsl:element instruction, except in error cases, is the
  697.                 newly constructed element node. <br/> See more info at http://www.w3.org/TR/xslt20/#element-element </xs:documentation>
  698.         </xs:annotation>
  699.         <xs:complexType mixed="true">
  700.             <xs:complexContent>
  701.                 <xs:extension base="xsl:sequence-constructor">
  702.                     <xs:attribute name="name" type="xsl:avt" use="required">
  703.                         <xs:annotation>
  704.                             <xs:documentation>The name attribute, together with the optional namespace attribute,
  705.                                 specifies the expanded-QName of the element to be created. The name attribute is
  706.                                 interpreted as an attribute value template, whose effective value must be a lexical QName.</xs:documentation>
  707.                         </xs:annotation>
  708.                     </xs:attribute>
  709.                     <xs:attribute name="namespace" type="xsl:avt">
  710.                         <xs:annotation>
  711.                             <xs:documentation> The namespace attribute, together with the required name attribute,
  712.                                 specifies the expanded-QName of the element to be created. If the namespace attribute is
  713.                                 not present then the QName is expanded into an expanded-QName using the namespace
  714.                                 declarations in effect for the xsl:element element, including any default namespace
  715.                                 declaration. If the namespace attribute is present, then it is interpreted as an
  716.                                 attribute value template. The effective value should be a URI reference.</xs:documentation>
  717.                         </xs:annotation>
  718.                     </xs:attribute>
  719.                     <xs:attribute name="inherit-namespaces" type="xsl:yes-or-no" default="yes">
  720.                         <xs:annotation>
  721.                             <xs:documentation> The xsl:element instruction has an optional
  722.                                 inherit-namespaces attribute, with the value yes or no. The default
  723.                                 value is yes. If the value is set to yes, or is omitted, then the
  724.                                 namespace nodes created for the newly constructed element (whether
  725.                                 these were copied from those of the source node, or generated as a
  726.                                 result of namespace fixup) are copied to the children and
  727.                                 descendants of the newly constructed element. If the value is set to
  728.                                 no, then these namespace nodes are not automatically copied to the
  729.                                 children. This may result in namespace undeclarations (such as
  730.                                 xmlns="" or, in the case of XML Namespaces 1.1, xmlns:p="")
  731.                                 appearing on the child elements when a final result tree is
  732.                                 serialized. </xs:documentation>
  733.                         </xs:annotation>
  734.                     </xs:attribute>
  735.                     <xs:attribute name="use-attribute-sets" type="xsl:QNames" default="">
  736.                         <xs:annotation>
  737.                             <xs:documentation> The xsl:element element may have a use-attribute-sets attribute, whose
  738.                                 value is a space-separated list of QNames that identify xsl:attribute-set declarations.
  739.                                 If this attribute is present, it is expanded to produce a sequence of attribute nodes. </xs:documentation>
  740.                         </xs:annotation>
  741.                     </xs:attribute>
  742.                     <xs:attribute name="type" type="xsl:QName">
  743.                         <xs:annotation>
  744.                             <xs:documentation> The optional attributes type and validation may be used on the
  745.                                 xsl:element instruction to invoke validation of the contents of the element against a
  746.                                 type definition or element declaration in a schema, and to determine the type annotation
  747.                                 that the new element node will carry. These attributes also affect the type annotation
  748.                                 carried by any elements and attributes that have the new element node as an ancestor.
  749.                                 These two attributes are both optional, and if one is specified then the other must be
  750.                                 omitted. <br/> See more info at http://www.w3.org/TR/xslt20/#validation </xs:documentation>
  751.                         </xs:annotation>
  752.                     </xs:attribute>
  753.                     <xs:attribute name="validation" type="xsl:validation-type">
  754.                         <xs:annotation>
  755.                             <xs:documentation> The optional attributes type and validation may be used on the
  756.                                 xsl:element instruction to invoke validation of the contents of the element against a
  757.                                 type definition or element declaration in a schema, and to determine the type annotation
  758.                                 that the new element node will carry. These attributes also affect the type annotation
  759.                                 carried by any elements and attributes that have the new element node as an ancestor.
  760.                                 These two attributes are both optional, and if one is specified then the other must be
  761.                                 omitted. <br/> See more info at http://www.w3.org/TR/xslt20/#validation </xs:documentation>
  762.                         </xs:annotation>
  763.                     </xs:attribute>
  764.                 </xs:extension>
  765.             </xs:complexContent>
  766.         </xs:complexType>
  767.     </xs:element>
  768.     <xs:element name="fallback" substitutionGroup="xsl:instruction" type="xsl:sequence-constructor">
  769.         <xs:annotation>
  770.             <xs:documentation> There are two situations where a processor performs fallback: when an extension
  771.                 instruction that is not available is evaluated, and when an instruction in the XSLT namespace, that is
  772.                 not defined in XSLT 2.0, is evaluated within a region of the stylesheet for which forwards compatible
  773.                 behavior is enabled. <br/> See more info at http://www.w3.org/TR/xslt20/#element-fallback</xs:documentation>
  774.         </xs:annotation>
  775.     </xs:element>
  776.     <xs:element name="for-each" substitutionGroup="xsl:instruction">
  777.         <xs:annotation>
  778.             <xs:documentation> The xsl:for-each instruction processes each item in a sequence of items. <br/> See more
  779.                 info at http://www.w3.org/TR/xslt20/#element-for-each </xs:documentation>
  780.         </xs:annotation>
  781.         <xs:complexType>
  782.             <xs:complexContent mixed="true">
  783.                 <xs:extension base="xsl:versioned-element-type">
  784.                     <xs:sequence>
  785.                         <xs:element ref="xsl:sort" minOccurs="0" maxOccurs="unbounded"/>
  786.                         <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
  787.                     </xs:sequence>
  788.                     <xs:attribute name="select" type="xsl:expression" use="required">
  789.                         <xs:annotation>
  790.                             <xs:documentation>The select attribute is required, and the expression must evaluate to a
  791.                                 sequence, called the input sequence. If there is an xsl:sort element present the input
  792.                                 sequence is sorted to produce a sorted sequence.</xs:documentation>
  793.                         </xs:annotation>
  794.                     </xs:attribute>
  795.                 </xs:extension>
  796.             </xs:complexContent>
  797.         </xs:complexType>
  798.     </xs:element>
  799.     <xs:element name="for-each-group" substitutionGroup="xsl:instruction">
  800.         <xs:annotation>
  801.             <xs:documentation> The xsl:for-each-group instruction allocates the items in an input sequence into groups
  802.                 of items (that is, it establishes a collection of sequences) based either on common values of a grouping
  803.                 key, or on a pattern that the initial or final node in a group must match. <br/> See more info at
  804.                 http://www.w3.org/TR/xslt20/#element-for-each-group </xs:documentation>
  805.         </xs:annotation>
  806.         <xs:complexType>
  807.             <xs:complexContent mixed="true">
  808.                 <xs:extension base="xsl:versioned-element-type">
  809.                     <xs:sequence>
  810.                         <xs:element ref="xsl:sort" minOccurs="0" maxOccurs="unbounded"/>
  811.                         <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
  812.                     </xs:sequence>
  813.                     <xs:attribute name="select" type="xsl:expression" use="required">
  814.                         <xs:annotation>
  815.                             <xs:documentation> The sequence of items to be grouped, which is referred to as the
  816.                                 population, is determined by evaluating the XPath expression contained in the select
  817.                                 attribute. </xs:documentation>
  818.                         </xs:annotation>
  819.                     </xs:attribute>
  820.                     <xs:attribute name="group-by" type="xsl:expression">
  821.                         <xs:annotation>
  822.                             <xs:documentation> Specifies the assignment of items to groups. If the group-by attribute is
  823.                                 present, the items in the population are examined, in population order. For each item J,
  824.                                 the expression in the group-by attribute is evaluated to produce a sequence of zero or
  825.                                 more grouping key values. For each one of these grouping keys, if there is already a
  826.                                 group created to hold items having that grouping key value, J is added to that group;
  827.                                 otherwise a new group is created for items with that grouping key value, and J becomes
  828.                                 its first member. An item in the population may thus be assigned to zero, one, or many
  829.                                 groups. An item will never be assigned more than once to the same group; if two or more
  830.                                 grouping keys for the same item are equal, then the duplicates are ignored. An item here
  831.                                 means the item at a particular position within the population - if the population
  832.                                 contains the same node at several different positions in the sequence then a group may
  833.                                 indeed contain duplicate nodes. The number of groups will be the same as the number of
  834.                                 distinct grouping key values present in the population. </xs:documentation>
  835.                         </xs:annotation>
  836.                     </xs:attribute>
  837.                     <xs:attribute name="group-adjacent" type="xsl:expression">
  838.                         <xs:annotation>
  839.                             <xs:documentation> Specifies the assignment of items to groups. If the group-adjacent
  840.                                 attribute is present, the items in the population are examined, in population order. If
  841.                                 an item has the same value for the grouping key as its preceding item within the
  842.                                 population (in population order), then it is assigned to the same group as its preceding
  843.                                 item; otherwise a new group is created and the item becomes its first member. </xs:documentation>
  844.                         </xs:annotation>
  845.                     </xs:attribute>
  846.                     <xs:attribute name="group-starting-with" type="xsl:pattern">
  847.                         <xs:annotation>
  848.                             <xs:documentation> Specifies the assignment of items to groups. If the group-starting-with
  849.                                 attribute is present, then its value must be a pattern. In this case, the items in the
  850.                                 population must all be nodes. The nodes in the population are examined in population
  851.                                 order. If a node matches the pattern, or is the first node in the population, then a new
  852.                                 group is created and the node becomes its first member. Otherwise, the node is assigned
  853.                                 to the same group as its preceding node within the population. </xs:documentation>
  854.                         </xs:annotation>
  855.                     </xs:attribute>
  856.                     <xs:attribute name="group-ending-with" type="xsl:pattern">
  857.                         <xs:annotation>
  858.                             <xs:documentation> Specifies the assignment of items to groups. If the group-ending-with
  859.                                 attribute is present, then its value must be a pattern. In this case, the items in the
  860.                                 population must all be nodes. The nodes in the population are examined in population
  861.                                 order. If a node is the first node in the population, or if the previous node in the
  862.                                 population matches the pattern, then a new group is created and the node becomes its
  863.                                 first member. Otherwise, the node is assigned to the same group as its preceding node
  864.                                 within the population. </xs:documentation>
  865.                         </xs:annotation>
  866.                     </xs:attribute>
  867.                     <xs:attribute name="collation" type="xs:anyURI">
  868.                         <xs:annotation>
  869.                             <xs:documentation> If the grouping keys values are strings, or untyped atomic values, they
  870.                                 are compared using the collation specified in the collation attribute if present, or the
  871.                                 default collation otherwise. </xs:documentation>
  872.                         </xs:annotation>
  873.                     </xs:attribute>
  874.                 </xs:extension>
  875.             </xs:complexContent>
  876.         </xs:complexType>
  877.     </xs:element>
  878.     <xs:element name="function" substitutionGroup="xsl:declaration">
  879.         <xs:annotation>
  880.             <xs:documentation> The xsl:function declaration defines a stylesheet function that can be called from any
  881.                 XPath expression used in the stylesheet (including an XPath expression used within a predicate in a
  882.                 pattern). The arity of a stylesheet function is the number of xsl:param elements in the function
  883.                 definition. Optional arguments are not allowed.<br/> See more info at
  884.                 http://www.w3.org/TR/xslt20/#element-function </xs:documentation>
  885.         </xs:annotation>
  886.         <xs:complexType>
  887.             <xs:complexContent mixed="true">
  888.                 <xs:extension base="xsl:versioned-element-type">
  889.                     <xs:sequence>
  890.                         <xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/>
  891.                         <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
  892.                     </xs:sequence>
  893.                     <xs:attribute name="name" type="xsl:QName" use="required">
  894.                         <xs:annotation>
  895.                             <xs:documentation> The name attribute specifies the name of the function. The value of the
  896.                                 name attribute is a QName. </xs:documentation>
  897.                         </xs:annotation>
  898.                     </xs:attribute>
  899.                     <xs:attribute name="override" type="xsl:yes-or-no" default="yes">
  900.                         <xs:annotation>
  901.                             <xs:documentation> The optional override attribute defines what happens if this function has
  902.                                 the same name and arity as a function provided by the implementer or made available in
  903.                                 the static context using an implementation-defined mechanism. If the override attribute
  904.                                 has the value yes, then this function is used in preference; if it has the value no,
  905.                                 then the other function is used in preference. The default value is yes. Specifying
  906.                                 override="yes" ensures interoperable behavior: the same code will execute with all
  907.                                 processors. Specifying override="no" is useful when writing a fallback implementation of
  908.                                 a function that is available with some processors but not others: it allows the vendor's
  909.                                 implementation of the function to be used in preference to the stylesheet
  910.                                 implementation, which is useful when the vendor's implementation is more efficient. </xs:documentation>
  911.                         </xs:annotation>
  912.                     </xs:attribute>
  913.                     <xs:attribute name="as" type="xsl:sequence-type" default="item()*">
  914.                         <xs:annotation>
  915.                             <xs:documentation> The optional as attribute indicates the required type of the result of
  916.                                 the function. If the as attribute is specified, then the result is converted to the
  917.                                 required type, using the function conversion rules. It is a type error if this
  918.                                 conversion fails. If the as attribute is omitted, the calculated result is used as
  919.                                 supplied, and no conversion takes place. </xs:documentation>
  920.                         </xs:annotation>
  921.                     </xs:attribute>
  922.                 </xs:extension>
  923.             </xs:complexContent>
  924.         </xs:complexType>
  925.     </xs:element>
  926.     <xs:element name="if" substitutionGroup="xsl:instruction">
  927.         <xs:annotation>
  928.             <xs:documentation> The xsl:if instruction is used for conditional processing. If the effective boolean value
  929.                 of the test expression is true, then the sequence constructor is evaluated, and the resulting node
  930.                 sequence is returned as the result of the xsl:if instruction; otherwise, the sequence constructor is not
  931.                 evaluated, and the empty sequence is returned. <br/> See more info at
  932.                 http://www.w3.org/TR/xslt20/#element-if </xs:documentation>
  933.         </xs:annotation>
  934.         <xs:complexType>
  935.             <xs:complexContent mixed="true">
  936.                 <xs:extension base="xsl:sequence-constructor">
  937.                     <xs:attribute name="test" type="xsl:expression" use="required">
  938.                         <xs:annotation>
  939.                             <xs:documentation> The test attribute specifies the test expression. </xs:documentation>
  940.                         </xs:annotation>
  941.                     </xs:attribute>
  942.                 </xs:extension>
  943.             </xs:complexContent>
  944.         </xs:complexType>
  945.     </xs:element>
  946.     <xs:element name="import">
  947.         <xs:annotation>
  948.             <xs:documentation> A stylesheet module may import another stylesheet module using an xsl:import declaration.
  949.                 Importing a stylesheet module is the same as including it except that template rules and other
  950.                 declarations in the importing module take precedence over template rules and declarations in the
  951.                 imported module. <br/> See more info at http://www.w3.org/TR/xslt20/#element-import </xs:documentation>
  952.         </xs:annotation>
  953.         <xs:complexType>
  954.             <xs:complexContent>
  955.                 <xs:extension base="xsl:element-only-versioned-element-type">
  956.                     <xs:attribute name="href" type="xs:anyURI" use="required">
  957.                         <xs:annotation>
  958.                             <xs:documentation> The xsl:import declaration has a required href attribute whose value is a
  959.                                 URI reference identifying the stylesheet module to be included. </xs:documentation>
  960.                         </xs:annotation>
  961.                     </xs:attribute>
  962.                 </xs:extension>
  963.             </xs:complexContent>
  964.         </xs:complexType>
  965.     </xs:element>
  966.     <xs:element name="import-schema" substitutionGroup="xsl:declaration">
  967.         <xs:annotation>
  968.             <xs:documentation> The xsl:import-schema declaration is used to identify schema components (that is,
  969.                 top-level type definitions and top-level element and attribute declarations) that need to be available
  970.                 statically, that is, before any source document is available. <br/> See more info at
  971.                 http://www.w3.org/TR/xslt20/#element-import-schema </xs:documentation>
  972.         </xs:annotation>
  973.         <xs:complexType>
  974.             <xs:complexContent>
  975.                 <xs:extension base="xsl:element-only-versioned-element-type">
  976.                     <xs:sequence>
  977.                         <xs:element ref="xs:schema" minOccurs="0" maxOccurs="1"/>
  978.                     </xs:sequence>
  979.                     <xs:attribute name="namespace" type="xs:anyURI">
  980.                         <xs:annotation>
  981.                             <xs:documentation> The namespace attribute indicates that a schema for the given namespace
  982.                                 is required by the stylesheet. This information may be enough on its own to enable an
  983.                                 implementation to locate the required schema components. The namespace attribute may be
  984.                                 omitted to indicate that a schema for names in no namespace is being imported. The
  985.                                 zero-length string is not a valid namespace URI, and is therefore not a valid value for
  986.                                 the namespace attribute. </xs:documentation>
  987.                         </xs:annotation>
  988.                     </xs:attribute>
  989.                     <xs:attribute name="schema-location" type="xs:anyURI">
  990.                         <xs:annotation>
  991.                             <xs:documentation> The schema-location attribute gives a hint indicating where a schema
  992.                                 document or other resource containing the required definitions may be found. It is
  993.                                 likely that a schema-aware XSLT processor will be able to process a schema document
  994.                                 found at this location. </xs:documentation>
  995.                         </xs:annotation>
  996.                     </xs:attribute>
  997.                 </xs:extension>
  998.             </xs:complexContent>
  999.         </xs:complexType>
  1000.     </xs:element>
  1001.     <xs:element name="include" substitutionGroup="xsl:declaration">
  1002.         <xs:annotation>
  1003.             <xs:documentation> A stylesheet module may include another stylesheet module using an xsl:include
  1004.                 declaration. <br/> See more info at http://www.w3.org/TR/xslt20/#element-include </xs:documentation>
  1005.         </xs:annotation>
  1006.         <xs:complexType>
  1007.             <xs:complexContent>
  1008.                 <xs:extension base="xsl:element-only-versioned-element-type">
  1009.                     <xs:attribute name="href" type="xs:anyURI" use="required">
  1010.                         <xs:annotation>
  1011.                             <xs:documentation> The xsl:include declaration has a required href attribute whose value is
  1012.                                 a URI reference identifying the stylesheet module to be included. </xs:documentation>
  1013.                         </xs:annotation>
  1014.                     </xs:attribute>
  1015.                 </xs:extension>
  1016.             </xs:complexContent>
  1017.         </xs:complexType>
  1018.     </xs:element>
  1019.     <xs:element name="key" substitutionGroup="xsl:declaration">
  1020.         <xs:annotation>
  1021.             <xs:documentation> The xsl:key declaration is used to declare keys. The presence of an xsl:key declaration
  1022.                 makes it easy to find a node that matches the match pattern if any of the values of the key specifier
  1023.                 (when applied to that node) are known. It also provides a hint to the implementation that access to the
  1024.                 nodes by means of these values needs to be efficient (many implementations are likely to construct an
  1025.                 index or hash table to achieve this). Note that the key specifier in general returns a sequence of
  1026.                 values, and any one of these may be used to locate the node. <br/> See more info at
  1027.                 http://www.w3.org/TR/xslt20/#element-key </xs:documentation>
  1028.         </xs:annotation>
  1029.         <xs:complexType>
  1030.             <xs:complexContent mixed="true">
  1031.                 <xs:extension base="xsl:sequence-constructor">
  1032.                     <xs:attribute name="name" type="xsl:QName" use="required">
  1033.                         <xs:annotation>
  1034.                             <xs:documentation> The name attribute specifies the name of the key. The value of the name
  1035.                                 attribute is a QName. </xs:documentation>
  1036.                         </xs:annotation>
  1037.                     </xs:attribute>
  1038.                     <xs:attribute name="match" type="xsl:pattern" use="required">
  1039.                         <xs:annotation>
  1040.                             <xs:documentation> The match attribute is a Pattern; an xsl:key element applies to all nodes
  1041.                                 that match the pattern specified in the match attribute. </xs:documentation>
  1042.                         </xs:annotation>
  1043.                     </xs:attribute>
  1044.                     <xs:attribute name="use" type="xsl:expression">
  1045.                         <xs:annotation>
  1046.                             <xs:documentation> The value of the key may be specified either using the use attribute or
  1047.                                 by means of the contained sequence constructor. </xs:documentation>
  1048.                         </xs:annotation>
  1049.                     </xs:attribute>
  1050.                     <xs:attribute name="collation" type="xs:anyURI">
  1051.                         <xs:annotation>
  1052.                             <xs:documentation> The optional collation attribute is used only when deciding whether two
  1053.                                 strings are equal for the purposes of key matching. If an xsl:key declaration specifies
  1054.                                 a collation attribute, then every other xsl:key declaration with the same value for its
  1055.                                 name attribute must either specify the same collation, or specify no collation; this
  1056.                                 collation is used for all xsl:key declarations with the given name. In the absence of a
  1057.                                 collation attribute, the default collation is used. </xs:documentation>
  1058.                         </xs:annotation>
  1059.                     </xs:attribute>
  1060.                 </xs:extension>
  1061.             </xs:complexContent>
  1062.         </xs:complexType>
  1063.     </xs:element>
  1064.     <xs:element name="matching-substring" type="xsl:sequence-constructor">
  1065.         <xs:annotation>
  1066.             <xs:documentation> A matching substring inside an xsl:analyze-string element is processed using the
  1067.                 xsl:matching-substring element. If the element is absent, the effect is the same as if it were present
  1068.                 with empty content. <br/> See more info at http://www.w3.org/TR/xslt20/#element-matching-substring </xs:documentation>
  1069.         </xs:annotation>
  1070.     </xs:element>
  1071.     <xs:element name="message" substitutionGroup="xsl:instruction">
  1072.         <xs:annotation>
  1073.             <xs:documentation> The xsl:message instruction sends a message in an implementation-defined way. The
  1074.                 xsl:message instruction causes the creation of a new document, which is typically serialized and output
  1075.                 to an implementation-defined destination. The result of the xsl:message instruction is an empty
  1076.                 sequence. <br/> See more info at http://www.w3.org/TR/xslt20/#element-message </xs:documentation>
  1077.         </xs:annotation>
  1078.         <xs:complexType>
  1079.             <xs:complexContent mixed="true">
  1080.                 <xs:extension base="xsl:sequence-constructor">
  1081.                     <xs:attribute name="select" type="xsl:expression">
  1082.                         <xs:annotation>
  1083.                             <xs:documentation> If the xsl:message instruction has a select attribute, then the value of
  1084.                                 the attribute must be an XPath expression. The content of the message may be specified
  1085.                                 by using either or both of the optional select attribute and the sequence constructor
  1086.                                 that forms the content of the xsl:message instruction. </xs:documentation>
  1087.                         </xs:annotation>
  1088.                     </xs:attribute>
  1089.                     <xs:attribute name="terminate" type="xsl:avt" default="no">
  1090.                         <xs:annotation>
  1091.                             <xs:documentation> The terminate attribute is interpreted as an attribute value template. If
  1092.                                 the effective value of the terminate attribute is yes, then the processor must terminate
  1093.                                 processing after sending the message. The default value is no. Note that because the
  1094.                                 order of evaluation of instructions is implementation-dependent, this gives no guarantee
  1095.                                 that any particular instruction will or will not be evaluated before processing
  1096.                                 terminates. </xs:documentation>
  1097.                         </xs:annotation>
  1098.                     </xs:attribute>
  1099.                 </xs:extension>
  1100.             </xs:complexContent>
  1101.         </xs:complexType>
  1102.     </xs:element>
  1103.     <xs:element name="namespace" substitutionGroup="xsl:instruction">
  1104.         <xs:annotation>
  1105.             <xs:documentation> The xsl:namespace element is evaluated to create a namespace node. Except in error
  1106.                 situations, the result of evaluating the xsl:namespace instruction is a single node, the newly
  1107.                 constructed namespace node. <br/> See more info at http://www.w3.org/TR/xslt20/#element-namespace </xs:documentation>
  1108.         </xs:annotation>
  1109.         <xs:complexType>
  1110.             <xs:complexContent mixed="true">
  1111.                 <xs:extension base="xsl:sequence-constructor">
  1112.                     <xs:attribute name="name" type="xsl:avt" use="required">
  1113.                         <xs:annotation>
  1114.                             <xs:documentation> The xsl:namespace element has a required name attribute that specifies
  1115.                                 the name of the namespace node (that is, the namespace prefix). The value of the name
  1116.                                 attribute is interpreted as an attribute value template. If the effective value of the
  1117.                                 name attribute is a zero-length string, a namespace node is added for the default
  1118.                                 namespace. </xs:documentation>
  1119.                         </xs:annotation>
  1120.                     </xs:attribute>
  1121.                     <xs:attribute name="select" type="xsl:expression">
  1122.                         <xs:annotation>
  1123.                             <xs:documentation>The string value of the new namespace node (that is, the namespace URI)
  1124.                                 may be defined either by using the select attribute, or by the sequence constructor that
  1125.                                 forms the content of the xsl:namespace element. These are mutually exclusive. </xs:documentation>
  1126.                         </xs:annotation>
  1127.                     </xs:attribute>
  1128.                 </xs:extension>
  1129.             </xs:complexContent>
  1130.         </xs:complexType>
  1131.     </xs:element>
  1132.     <xs:element name="namespace-alias" substitutionGroup="xsl:declaration">
  1133.         <xs:annotation>
  1134.             <xs:documentation> A stylesheet can use the xsl:namespace-alias element to declare that a literal namespace
  1135.                 URI is being used as an alias for a target namespace URI The effect is that when names in the namespace
  1136.                 identified by the literal namespace URI are copied to the result tree, the namespace URI in the result
  1137.                 tree will be the target namespace URI, instead of the literal namespace URI. The default namespace (as
  1138.                 declared by xmlns) may be specified by using #default instead of a prefix. <br/> See more info at
  1139.                 http://www.w3.org/TR/xslt20/#element-namespace-alias </xs:documentation>
  1140.         </xs:annotation>
  1141.         <xs:complexType>
  1142.             <xs:complexContent>
  1143.                 <xs:extension base="xsl:element-only-versioned-element-type">
  1144.                     <xs:attribute name="stylesheet-prefix" type="xsl:prefix-or-default" use="required">
  1145.                         <xs:annotation>
  1146.                             <xs:documentation> The stylesheet-prefix attribute specifies the namespace URI that will
  1147.                                 appear in the stylesheet. </xs:documentation>
  1148.                         </xs:annotation>
  1149.                     </xs:attribute>
  1150.                     <xs:attribute name="result-prefix" type="xsl:prefix-or-default" use="required">
  1151.                         <xs:annotation>
  1152.                             <xs:documentation> The result-prefix attribute specifies the corresponding namespace URI
  1153.                                 that will appear in the result tree. </xs:documentation>
  1154.                         </xs:annotation>
  1155.                     </xs:attribute>
  1156.                 </xs:extension>
  1157.             </xs:complexContent>
  1158.         </xs:complexType>
  1159.     </xs:element>
  1160.     <xs:element name="next-match" substitutionGroup="xsl:instruction">
  1161.         <xs:annotation>
  1162.             <xs:documentation> A template rule that is being used to override another template rule can use the
  1163.                 xsl:next-match instruction to invoke the overridden template rule. The xsl:next-match instruction
  1164.                 considers all other template rules of lower import precedence and/or priority. It will invoke the
  1165.                 built-in template rule for the node if no other template rule is found. <br/> See more info at
  1166.                 http://www.w3.org/TR/xslt20/#element-next-match </xs:documentation>
  1167.         </xs:annotation>
  1168.         <xs:complexType>
  1169.             <xs:complexContent>
  1170.                 <xs:extension base="xsl:element-only-versioned-element-type">
  1171.                     <xs:choice minOccurs="0" maxOccurs="unbounded">
  1172.                         <xs:element ref="xsl:with-param"/>
  1173.                         <xs:element ref="xsl:fallback"/>
  1174.                     </xs:choice>
  1175.                 </xs:extension>
  1176.             </xs:complexContent>
  1177.         </xs:complexType>
  1178.     </xs:element>
  1179.     <xs:element name="non-matching-substring" type="xsl:sequence-constructor">
  1180.         <xs:annotation>
  1181.             <xs:documentation> A non matching substring inside an xsl:analyze-string element is processed using the
  1182.                 xsl:non-matching-substring element. If the element is absent, the effect is the same as if it were
  1183.                 present with empty content. <br/> See more info at
  1184.                 http://www.w3.org/TR/xslt20/#element-non-matching-substring </xs:documentation>
  1185.         </xs:annotation>
  1186.     </xs:element>
  1187.     <xs:element name="number" substitutionGroup="xsl:instruction">
  1188.         <xs:annotation>
  1189.             <xs:documentation> The xsl:number instruction is used to create a formatted number. The result of the
  1190.                 instruction is a newly constructed text node containing the formatted number as its string value. But if
  1191.                 the formatted number is a zero-length string, the result of the instruction is an empty sequence. The
  1192.                 xsl:number instruction performs two tasks: firstly, determining a place marker (this is a sequence of
  1193.                 integers, to allow for hierarchic numbering schemes such as 1.12.2 or 3(c)ii), and secondly, formatting
  1194.                 the place marker for output as a text node in the result sequence. The place marker to be formatted can
  1195.                 either be supplied directly, in the value attribute, or it can be computed based on the position of a
  1196.                 selected node within the tree that contains it.<br/> See more info at
  1197.                 http://www.w3.org/TR/xslt20/#element-number </xs:documentation>
  1198.         </xs:annotation>
  1199.         <xs:complexType>
  1200.             <xs:complexContent mixed="true">
  1201.                 <xs:extension base="xsl:versioned-element-type">
  1202.                     <xs:attribute name="value" type="xsl:expression">
  1203.                         <xs:annotation>
  1204.                             <xs:documentation> The place marker to be formatted may be specified by an expression
  1205.                                 contained in the value attribute. If no value attribute is specified, then the
  1206.                                 xsl:number instruction returns a new text node containing a formatted place marker that
  1207.                                 is based on the position of a selected node within its containing document. </xs:documentation>
  1208.                         </xs:annotation>
  1209.                     </xs:attribute>
  1210.                     <xs:attribute name="select" type="xsl:expression">
  1211.                         <xs:annotation>
  1212.                             <xs:documentation> If the select attribute is present, then the expression contained in the
  1213.                                 select attribute is evaluated to determine the selected node. If the select attribute is
  1214.                                 omitted, then the selected node is the context node. </xs:documentation>
  1215.                         </xs:annotation>
  1216.                     </xs:attribute>
  1217.                     <xs:attribute name="level" type="xsl:level" default="single">
  1218.                         <xs:annotation>
  1219.                             <xs:documentation> The level attribute specifies rules for selecting the nodes that are
  1220.                                 taken into account in allocating a number; it has the values single, multiple or any.
  1221.                                 The default is single. </xs:documentation>
  1222.                         </xs:annotation>
  1223.                     </xs:attribute>
  1224.                     <xs:attribute name="count" type="xsl:pattern">
  1225.                         <xs:annotation>
  1226.                             <xs:documentation> The count attribute is a pattern that specifies which nodes are to be
  1227.                                 counted at those levels. If count attribute is not specified, then it defaults to the
  1228.                                 pattern that matches any node with the same node kind as the selected node and, if the
  1229.                                 selected node has an expanded-QName, with the same expanded-QName as the selected node. </xs:documentation>
  1230.                         </xs:annotation>
  1231.                     </xs:attribute>
  1232.                     <xs:attribute name="from" type="xsl:pattern">
  1233.                         <xs:annotation>
  1234.                             <xs:documentation> The from attribute is a pattern that specifies where counting starts. </xs:documentation>
  1235.                         </xs:annotation>
  1236.                     </xs:attribute>
  1237.                     <xs:attribute name="format" type="xsl:avt" default="1">
  1238.                         <xs:annotation>
  1239.                             <xs:documentation> The format attribute controls conversion of a sequence of numbers into a
  1240.                                 string. The numbers are integers greater than 0. The default value for the format
  1241.                                 attribute is 1. The format attribute is split into a sequence of tokens where each token
  1242.                                 is a maximal sequence of alphanumeric characters or a maximal sequence of
  1243.                                 non-alphanumeric characters. The alphanumeric tokens (format tokens) indicate the format
  1244.                                 to be used for each number in the sequence; in most cases the format token is the same
  1245.                                 as the required representation of the number 1 (one). If the first token is a
  1246.                                 non-alphanumeric token, then the constructed string will start with that token; if the
  1247.                                 last token is non-alphanumeric token, then the constructed string will end with that
  1248.                                 token. Non-alphanumeric tokens that occur between two format tokens are separator tokens
  1249.                                 that are used to join numbers in the sequence. <br/> See more info at
  1250.                                 http://www.w3.org/TR/xslt20/#convert </xs:documentation>
  1251.                         </xs:annotation>
  1252.                     </xs:attribute>
  1253.                     <xs:attribute name="lang" type="xsl:avt">
  1254.                         <xs:annotation>
  1255.                             <xs:documentation> Many numbering sequences are language-sensitive. In such cases, the lang
  1256.                                 attribute specifies which language's conventions are to be used; it has the same range
  1257.                                 of values as xml:lang. If no lang value is specified, the language that is used is
  1258.                                 implementation-defined. The set of languages for which numbering is supported is
  1259.                                 implementation-defined. If a language is requested that is not supported, the processor
  1260.                                 uses the language that it would use if the lang attribute were omitted. </xs:documentation>
  1261.                         </xs:annotation>
  1262.                     </xs:attribute>
  1263.                     <xs:attribute name="letter-value" type="xsl:avt">
  1264.                         <xs:annotation>
  1265.                             <xs:documentation> The letter-value attribute disambiguates between numbering sequences that
  1266.                                 use letters. In many languages there are two commonly used numbering sequences that use
  1267.                                 letters. One numbering sequence assigns numeric values to letters in alphabetic
  1268.                                 sequence, and the other assigns numeric values to each letter in some other manner
  1269.                                 traditional in that language. In English, these would correspond to the numbering
  1270.                                 sequences specified by the format tokens a and i. In some languages, the first member of
  1271.                                 each sequence is the same, and so the format token alone would be ambiguous. A value of
  1272.                                 alphabetic specifies the alphabetic sequence; a value of traditional specifies the other
  1273.                                 sequence. If the letter-value attribute is not specified, then it is
  1274.                                 implementation-dependent how any ambiguity is resolved. </xs:documentation>
  1275.                         </xs:annotation>
  1276.                     </xs:attribute>
  1277.                     <xs:attribute name="ordinal" type="xsl:avt">
  1278.                         <xs:annotation>
  1279.                             <xs:documentation> If the optional ordinal attribute is present, and if its value is not a
  1280.                                 zero-length string, this indicates a request to output ordinal numbers rather than
  1281.                                 cardinal numbers. </xs:documentation>
  1282.                         </xs:annotation>
  1283.                     </xs:attribute>
  1284.                     <xs:attribute name="grouping-separator" type="xsl:avt">
  1285.                         <xs:annotation>
  1286.                             <xs:documentation>The grouping-separator attribute gives the separator used as a grouping
  1287.                                 (for example, thousands) separator in decimal numbering sequence. </xs:documentation>
  1288.                         </xs:annotation>
  1289.                     </xs:attribute>
  1290.                     <xs:attribute name="grouping-size" type="xsl:avt">
  1291.                         <xs:annotation>
  1292.                             <xs:documentation>The optional grouping-size specifies the size (normally 3) of the
  1293.                                 grouping. </xs:documentation>
  1294.                         </xs:annotation>
  1295.                     </xs:attribute>
  1296.                 </xs:extension>
  1297.             </xs:complexContent>
  1298.         </xs:complexType>
  1299.     </xs:element>
  1300.     <xs:element name="otherwise" type="xsl:sequence-constructor">
  1301.         <xs:annotation>
  1302.             <xs:documentation> If no xsl:when element inside an xsl:choose is satisfied, the content of the
  1303.                 xsl:otherwise element is evaluated.<br/> See more info at http://www.w3.org/TR/xslt20/#element-otherwise </xs:documentation>
  1304.         </xs:annotation>
  1305.     </xs:element>
  1306.     <xs:element name="output" substitutionGroup="xsl:declaration">
  1307.         <xs:annotation>
  1308.             <xs:documentation> Stylesheet authors can use the xsl:output declaration to specify how they wish result
  1309.                 trees to be serialized. If a processor serializes the result tree, it should do so as specified by these
  1310.                 elements; however, it is not required to do so. A stylesheet may contain multiple xsl:output
  1311.                 declarations and may include or import stylesheet modules that also contain xsl:output declarations. The
  1312.                 name of an xsl:output declaration is the value of its name attribute, if any. All the xsl:output
  1313.                 declarations in a stylesheet that share the same name are grouped into a named output definition; those
  1314.                 that have no name are grouped into a single unnamed output definition. All the xsl:output elements
  1315.                 making up an output definition are effectively merged. <br/> See more info at
  1316.                 http://www.w3.org/TR/xslt20/#element-output </xs:documentation>
  1317.         </xs:annotation>
  1318.         <xs:complexType>
  1319.             <xs:complexContent mixed="true">
  1320.                 <xs:extension base="xsl:generic-element-type">
  1321.                     <xs:attribute name="name" type="xsl:QName">
  1322.                         <xs:annotation>
  1323.                             <xs:documentation> The name of an xsl:output declaration is the value of its name attribute,
  1324.                                 if any. </xs:documentation>
  1325.                         </xs:annotation>
  1326.                     </xs:attribute>
  1327.                     <xs:attribute name="method" type="xsl:method">
  1328.                         <xs:annotation>
  1329.                             <xs:documentation>The method attribute on the xsl:output element identifies the overall
  1330.                                 method that is to be used for outputting the result tree. The value must be a valid
  1331.                                 QName. If the QName does not have a prefix, then it identifies a method specified in
  1332.                                 XSLT and XQuery Serialization and must be one of xml, html, xhtml, or text. The default
  1333.                                 value is in general xml but depending on the first element in the result tree it can be
  1334.                                 also html or xhtml.</xs:documentation>
  1335.                         </xs:annotation>
  1336.                     </xs:attribute>
  1337.                     <xs:attribute name="byte-order-mark" type="xsl:yes-or-no">
  1338.                         <xs:annotation>
  1339.                             <xs:documentation> The byte-order-mark attribute defines whether a byte
  1340.                                 order mark is written at the start of the file. If the value yes is
  1341.                                 specified, a byte order mark is written; if no is specified, no byte
  1342.                                 order mark is written. The default value depends on the encoding
  1343.                                 used. If the encoding is UTF-16, the default is yes; for UTF-8 it is
  1344.                                 implementation-defined, and for all other encodings it is no. The
  1345.                                 value of the byte order mark indicates whether high order bytes are
  1346.                                 written before or after low order bytes; the actual byte order used
  1347.                                 is implementation-dependent, unless it is defined by the selected
  1348.                                 encoding. </xs:documentation>
  1349.                         </xs:annotation>
  1350.                     </xs:attribute>
  1351.                     <xs:attribute name="cdata-section-elements" type="xsl:QNames">
  1352.                         <xs:annotation>
  1353.                             <xs:documentation>The cdata-section-elements attribute is a space-separated list of QNames.
  1354.                                 After expansion of these names using the in-scope namespace declarations for the
  1355.                                 xsl:output declaration in which they appear, this list of names provides the value of
  1356.                                 the cdata-section-elements parameter to the serialization method. The default value is
  1357.                                 an empty list.</xs:documentation>
  1358.                         </xs:annotation>
  1359.                     </xs:attribute>
  1360.                     <xs:attribute name="doctype-public" type="xs:string">
  1361.                         <xs:annotation>
  1362.                             <xs:documentation>The value of the doctype-public attribute provides the value of the
  1363.                                 doctype-public parameter to the serialization method. By default, the parameter is not supplied.</xs:documentation>
  1364.                         </xs:annotation>
  1365.                     </xs:attribute>
  1366.                     <xs:attribute name="doctype-system" type="xs:string">
  1367.                         <xs:annotation>
  1368.                             <xs:documentation>The value of the doctype-system attribute provides the value of the
  1369.                                 doctype-system parameter to the serialization method. By default, the parameter is not supplied.</xs:documentation>
  1370.                         </xs:annotation>
  1371.                     </xs:attribute>
  1372.                     <xs:attribute name="encoding" type="xs:string">
  1373.                         <xs:annotation>
  1374.                             <xs:documentation>The value of the encoding attribute provides the value of the encoding
  1375.                                 parameter to the serialization method. The default value is implementation-defined, but
  1376.                                 in the case of the xml and xhtml methods it must be either UTF-8 or UTF-16.</xs:documentation>
  1377.                         </xs:annotation>
  1378.                     </xs:attribute>
  1379.                     <xs:attribute name="escape-uri-attributes" type="xsl:yes-or-no">
  1380.                         <xs:annotation>
  1381.                             <xs:documentation>The value of the escape-uri-attributes attribute provides the value of the
  1382.                                 escape-uri-attributes parameter to the serialization method. The default value is yes.</xs:documentation>
  1383.                         </xs:annotation>
  1384.                     </xs:attribute>
  1385.                     <xs:attribute name="include-content-type" type="xsl:yes-or-no">
  1386.                         <xs:annotation>
  1387.                             <xs:documentation>The value of the include-content-type attribute provides the value of the
  1388.                                 include-content-type parameter to the serialization method. The default value is yes.</xs:documentation>
  1389.                         </xs:annotation>
  1390.                     </xs:attribute>
  1391.                     <xs:attribute name="indent" type="xsl:yes-or-no">
  1392.                         <xs:annotation>
  1393.                             <xs:documentation>The value of the indent attribute provides the value of the indent
  1394.                                 parameter to the serialization method. The default value is yes in the case of the html
  1395.                                 and xhtml output methods, no in the case of the xml output method.</xs:documentation>
  1396.                         </xs:annotation>
  1397.                     </xs:attribute>
  1398.                     <xs:attribute name="media-type" type="xs:string">
  1399.                         <xs:annotation>
  1400.                             <xs:documentation>The value of the media-type attribute provides the value of the media-type
  1401.                                 parameter to the serialization method. The default value is text/xml in the case of the
  1402.                                 xml output method, text/html in the case of the html and xhtml output methods, and
  1403.                                 text/plain in the case of the text output method.</xs:documentation>
  1404.                         </xs:annotation>
  1405.                     </xs:attribute>
  1406.                     <xs:attribute name="normalization-form" type="xs:NMTOKEN">
  1407.                         <xs:annotation>
  1408.                             <xs:documentation> The value of the normalization-form attribute
  1409.                                 provides the value of the normalization-form parameter to the
  1410.                                 serialization method. A value that is an NMTOKEN other than one of
  1411.                                 those enumerated for the normalization-form attribute specifes an
  1412.                                 implementation-defined normalization form; the behavior in this case
  1413.                                 is not specified by this document. The default value is none.
  1414.                             </xs:documentation>
  1415.                         </xs:annotation>
  1416.                     </xs:attribute>
  1417.                     <xs:attribute name="omit-xml-declaration" type="xsl:yes-or-no">
  1418.                         <xs:annotation>
  1419.                             <xs:documentation>The value of the omit-xml-declaration attribute provides the value of the
  1420.                                 omit-xml-declaration parameter to the serialization method. The default value is no.</xs:documentation>
  1421.                         </xs:annotation>
  1422.                     </xs:attribute>
  1423.                     <xs:attribute name="standalone" type="xsl:yes-or-no">
  1424.                         <xs:annotation>
  1425.                             <xs:documentation>The value of the standalone attribute provides the value of the standalone
  1426.                                 parameter to the serialization method. By default, the parameter is not supplied; this
  1427.                                 means that no standalone attribute is included in the XML declaration.</xs:documentation>
  1428.                         </xs:annotation>
  1429.                     </xs:attribute>
  1430.                     <xs:attribute name="undeclare-prefixes" type="xsl:yes-or-no">
  1431.                         <xs:annotation>
  1432.                             <xs:documentation> The undeclare-prefixes attribute is relevant only
  1433.                                 when producing output with method="xml" and version="1.1" (or
  1434.                                 later). It defines whether namespace undeclarations (of the form
  1435.                                 xmlns:foo="") should be output when a child element has no namespace
  1436.                                 node with the same name (that is, namespace prefix) as a namespace
  1437.                                 node of its parent element. The default value is no: this means that
  1438.                                 namespace undeclarations are not output, which has the effect that
  1439.                                 when the resulting XML is reparsed, the new tree may contain
  1440.                                 namespace nodes on the child element that were not there in the
  1441.                                 original tree before serialization. </xs:documentation>
  1442.                         </xs:annotation>
  1443.                     </xs:attribute>
  1444.                     <xs:attribute name="use-character-maps" type="xsl:QNames">
  1445.                         <xs:annotation>
  1446.                             <xs:documentation>The use-character-maps attribute provides a list of named character maps
  1447.                                 that are used in conjunction with this output definition. </xs:documentation>
  1448.                         </xs:annotation>
  1449.                     </xs:attribute>
  1450.                     <xs:attribute name="version" type="xs:NMTOKEN">
  1451.                         <xs:annotation>
  1452.                             <xs:documentation>The value of the version attribute provides the value of the version
  1453.                                 parameter to the serialization method. The default value depends on the output method:
  1454.                                 it is 1.0 for xml, 4.01 for html, and 1.0 for xhtml. The parameter is not used by the
  1455.                                 text output method.</xs:documentation>
  1456.                         </xs:annotation>
  1457.                     </xs:attribute>
  1458.                 </xs:extension>
  1459.             </xs:complexContent>
  1460.         </xs:complexType>
  1461.     </xs:element>
  1462.     <xs:element name="output-character">
  1463.         <xs:annotation>
  1464.             <xs:documentation> The character mappings are specified by means of xsl:output-character elements contained
  1465.                 either directly within the xsl:character-map element. The character map that is passed as a parameter to
  1466.                 the serializer contains a mapping for the character specified in the character attribute to the string
  1467.                 specified in the string attribute. <br/> See more info at
  1468.                 http://www.w3.org/TR/xslt20/#element-output-character </xs:documentation>
  1469.         </xs:annotation>
  1470.         <xs:complexType>
  1471.             <xs:complexContent>
  1472.                 <xs:extension base="xsl:element-only-versioned-element-type">
  1473.                     <xs:attribute name="character" type="xsl:char" use="required">
  1474.                         <xs:annotation>
  1475.                             <xs:documentation> Specifies the character to be mapped. </xs:documentation>
  1476.                         </xs:annotation>
  1477.                     </xs:attribute>
  1478.                     <xs:attribute name="string" type="xs:string" use="required">
  1479.                         <xs:annotation>
  1480.                             <xs:documentation> Specifies the string that will replace the mapped character. </xs:documentation>
  1481.                         </xs:annotation>
  1482.                     </xs:attribute>
  1483.                 </xs:extension>
  1484.             </xs:complexContent>
  1485.         </xs:complexType>
  1486.     </xs:element>
  1487.     <xs:element name="param">
  1488.         <xs:annotation>
  1489.             <xs:documentation> The xsl:param element may be used as a child of xsl:stylesheet, to define a parameter to
  1490.                 the transformation; or as a child of xsl:template to define a parameter to a template, which may be
  1491.                 supplied when the template is invoked using xsl:call-template, xsl:apply-templates, xsl:apply-imports or
  1492.                 xsl:next-match; or as a child of xsl:function to define a parameter to a stylesheet function, which may
  1493.                 be supplied when the function is called from an XPath expression. <br/> See more info at
  1494.                 http://www.w3.org/TR/xslt20/#element-param </xs:documentation>
  1495.         </xs:annotation>
  1496.         <xs:complexType>
  1497.             <xs:complexContent mixed="true">
  1498.                 <xs:extension base="xsl:sequence-constructor">
  1499.                     <xs:attribute name="name" type="xsl:QName" use="required">
  1500.                         <xs:annotation>
  1501.                             <xs:documentation>The xsl:param element has a required name attribute, which specifies the
  1502.                                 name of the parameter. The value of the name attribute is a QName.</xs:documentation>
  1503.                         </xs:annotation>
  1504.                     </xs:attribute>
  1505.                     <xs:attribute name="select" type="xsl:expression">
  1506.                         <xs:annotation>
  1507.                             <xs:documentation> The supplied value of the parameter is the value supplied by the caller.
  1508.                                 If no value was supplied by the caller, and if the parameter is not mandatory, then the
  1509.                                 supplied value is computed using the expression given in the select attribute or the
  1510.                                 contained sequence constructor. If the xsl:param element has a select attribute, then
  1511.                                 the sequence constructor must be empty. </xs:documentation>
  1512.                         </xs:annotation>
  1513.                     </xs:attribute>
  1514.                     <xs:attribute name="as" type="xsl:sequence-type">
  1515.                         <xs:annotation>
  1516.                             <xs:documentation> The xsl:param element has an optional as attribute, which specifies the
  1517.                                 required type of the parameter. If the as attribute is specified, then the supplied
  1518.                                 value of the parameter is converted to the required type, using the function conversion
  1519.                                 rules. If the as attribute is omitted, the supplied value of the parameter is used
  1520.                                 directly, and no conversion takes place. </xs:documentation>
  1521.                         </xs:annotation>
  1522.                     </xs:attribute>
  1523.                     <xs:attribute name="required" type="xsl:yes-or-no">
  1524.                         <xs:annotation>
  1525.                             <xs:documentation>The optional required attribute may be used to indicate that a parameter
  1526.                                 is mandatory. This attribute may be specified for stylesheet parameters and for template
  1527.                                 parameters; it must not be specified for function parameters, which are always
  1528.                                 mandatory. A parameter is mandatory if it is a function parameter or if the required
  1529.                                 attribute is present and has the value yes. Otherwise, the parameter is optional. If the
  1530.                                 parameter is mandatory, then the xsl:param element must be empty and must not have a
  1531.                                 select attribute.</xs:documentation>
  1532.                         </xs:annotation>
  1533.                     </xs:attribute>
  1534.                     <xs:attribute name="tunnel" type="xsl:yes-or-no">
  1535.                         <xs:annotation>
  1536.                             <xs:documentation>Tunnel parameters have the property that they are automatically passed on
  1537.                                 by the called template to any further templates that it calls, and so on recursively.
  1538.                                 The tunnel attribute may be used to indicate that a parameter is a tunnel parameter. The
  1539.                                 default is no; the value yes may be specified only for template parameters. </xs:documentation>
  1540.                         </xs:annotation>
  1541.                     </xs:attribute>
  1542.                 </xs:extension>
  1543.             </xs:complexContent>
  1544.         </xs:complexType>
  1545.     </xs:element>
  1546.     <xs:element name="perform-sort" substitutionGroup="xsl:instruction">
  1547.         <xs:annotation>
  1548.             <xs:documentation> The xsl:perform-sort instruction is used to return a sorted sequence. The result of the
  1549.                 xsl:perform-sort instruction is the result of sorting its initial sequence using its contained sort key
  1550.                 specification. <br/> See more info at http://www.w3.org/TR/xslt20/#element-perform-sort </xs:documentation>
  1551.         </xs:annotation>
  1552.         <xs:complexType>
  1553.             <xs:complexContent mixed="true">
  1554.                 <xs:extension base="xsl:versioned-element-type">
  1555.                     <xs:sequence>
  1556.                         <xs:element ref="xsl:sort" minOccurs="1" maxOccurs="unbounded"/>
  1557.                         <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
  1558.                     </xs:sequence>
  1559.                     <xs:attribute name="select" type="xsl:expression">
  1560.                         <xs:annotation>
  1561.                             <xs:documentation>The initial sequence is obtained either by evaluating the select attribute
  1562.                                 or by evaluating the contained sequence constructor (but not both).</xs:documentation>
  1563.                         </xs:annotation>
  1564.                     </xs:attribute>
  1565.                 </xs:extension>
  1566.             </xs:complexContent>
  1567.         </xs:complexType>
  1568.     </xs:element>
  1569.     <xs:element name="preserve-space" substitutionGroup="xsl:declaration">
  1570.         <xs:annotation>
  1571.             <xs:documentation> The set of whitespace-preserving element names is specified by xsl:strip-space and
  1572.                 xsl:preserve-space declarations. Whether an element name is included in the set of whitespace-preserving
  1573.                 names is determined by the best match among all the xsl:strip-space or xsl:preserve-space declarations:
  1574.                 it is included if and only if there is no match or the best match is an xsl:preserve-space element.
  1575.                 <br/> See more info at http://www.w3.org/TR/xslt20/#element-preserve-space </xs:documentation>
  1576.         </xs:annotation>
  1577.         <xs:complexType>
  1578.             <xs:complexContent>
  1579.                 <xs:extension base="xsl:element-only-versioned-element-type">
  1580.                     <xs:attribute name="elements" type="xsl:nametests" use="required">
  1581.                         <xs:annotation>
  1582.                             <xs:documentation> Specifies the preserve space elements. Its value is a
  1583.                                 whitespace-separated list of NameTests.</xs:documentation>
  1584.                         </xs:annotation>
  1585.                     </xs:attribute>
  1586.                 </xs:extension>
  1587.             </xs:complexContent>
  1588.         </xs:complexType>
  1589.     </xs:element>
  1590.     <xs:element name="processing-instruction" substitutionGroup="xsl:instruction">
  1591.         <xs:annotation>
  1592.             <xs:documentation> The xsl:processing-instruction element is evaluated to create a processing instruction
  1593.                 node. <br/> See more info at http://www.w3.org/TR/xslt20/#element-processing-instruction </xs:documentation>
  1594.         </xs:annotation>
  1595.         <xs:complexType>
  1596.             <xs:complexContent mixed="true">
  1597.                 <xs:extension base="xsl:sequence-constructor">
  1598.                     <xs:attribute name="name" type="xsl:avt" use="required">
  1599.                         <xs:annotation>
  1600.                             <xs:documentation> The xsl:processing-instruction element has a required name attribute that
  1601.                                 specifies the name of the processing instruction node. The value of the name attribute
  1602.                                 is interpreted as an attribute value template. </xs:documentation>
  1603.                         </xs:annotation>
  1604.                     </xs:attribute>
  1605.                     <xs:attribute name="select" type="xsl:expression">
  1606.                         <xs:annotation>
  1607.                             <xs:documentation>The string value of the new processing-instruction node may be defined
  1608.                                 either by using the select attribute, or by the sequence constructor that forms the
  1609.                                 content of the xsl:processing-instruction element. These are mutually exclusive.</xs:documentation>
  1610.                         </xs:annotation>
  1611.                     </xs:attribute>
  1612.                 </xs:extension>
  1613.             </xs:complexContent>
  1614.         </xs:complexType>
  1615.     </xs:element>
  1616.     <xs:element name="result-document" substitutionGroup="xsl:instruction">
  1617.         <xs:annotation>
  1618.             <xs:documentation> The xsl:result-document instruction is used to create a result tree. The
  1619.                 xsl:result-document instruction defines the URI of the result tree, and may optionally specify the
  1620.                 output format to be used for serializing this tree. <br/> See more info at
  1621.                 http://www.w3.org/TR/xslt20/#element-result-document </xs:documentation>
  1622.         </xs:annotation>
  1623.         <xs:complexType>
  1624.             <xs:complexContent mixed="true">
  1625.                 <xs:extension base="xsl:sequence-constructor">
  1626.                     <xs:attribute name="format" type="xsl:QName">
  1627.                         <xs:annotation>
  1628.                             <xs:documentation>The format attribute identifies the xsl:output declaration that will
  1629.                                 control the serialization of the result tree (see 20 Serialization), if the result tree
  1630.                                 is serialized. If the format attribute is omitted, the unnamed output definition is used
  1631.                                 to control serialization of the result tree. </xs:documentation>
  1632.                         </xs:annotation>
  1633.                     </xs:attribute>
  1634.                     <xs:attribute name="href" type="xsl:avt">
  1635.                         <xs:annotation>
  1636.                             <xs:documentation> The href attribute is optional. The default value is the zero-length
  1637.                                 string. The effective value of the attribute must be a URI, which may be absolute or
  1638.                                 relative. If the effective value is a relative URI, then it is resolved relative to the
  1639.                                 base output URI. </xs:documentation>
  1640.                         </xs:annotation>
  1641.                     </xs:attribute>
  1642.                     <xs:attribute name="type" type="xsl:QName">
  1643.                         <xs:annotation>
  1644.                             <xs:documentation> The optional attributes type and validation may be used on the
  1645.                                 xsl:result-document instruction to validate the contents of the new document, and to
  1646.                                 determine the type annotation that elements and attributes within the result tree will
  1647.                                 carry. <br/> See more info at http://www.w3.org/TR/xslt20/#validating-document-nodes</xs:documentation>
  1648.                         </xs:annotation>
  1649.                     </xs:attribute>
  1650.                     <xs:attribute name="validation" type="xsl:validation-type">
  1651.                         <xs:annotation>
  1652.                             <xs:documentation>The optional attributes type and validation may be used on the
  1653.                                 xsl:result-document instruction to validate the contents of the new document, and to
  1654.                                 determine the type annotation that elements and attributes within the result tree will
  1655.                                 carry. <br/> See more info at http://www.w3.org/TR/xslt20/#validating-document-nodes</xs:documentation>
  1656.                     </xs:annotation>
  1657.                     </xs:attribute>
  1658.                     <xs:attribute name="method" type="xsl:avt">
  1659.                         <xs:annotation>
  1660.                             <xs:documentation>
  1661.                                 The method attribute on the xsl:result-document element identifies the overall
  1662.                                 method that is to be used for outputting the result tree. The value must be a valid
  1663.                                 QName. If the QName does not have a prefix, then it identifies a method specified in
  1664.                                 XSLT and XQuery Serialization and must be one of xml, html, xhtml, or text. 
  1665.                                 May be used to override the attribute defined in the selected output definition.
  1666.                             </xs:documentation>
  1667.                         </xs:annotation>
  1668.                     </xs:attribute>
  1669.                     <xs:attribute name="byte-order-mark" type="xsl:avt">
  1670.                         <xs:annotation>
  1671.                             <xs:documentation> The byte-order-mark attribute defines whether a byte
  1672.                                 order mark is written at the start of the file. If the value yes is
  1673.                                 specified, a byte order mark is written; if no is specified, no byte
  1674.                                 order mark is written. The value of the byte order mark indicates
  1675.                                 whether high order bytes are written before or after low order
  1676.                                 bytes; the actual byte order used is implementation-dependent,
  1677.                                 unless it is defined by the selected encoding. May be used to
  1678.                                 override the attribute defined in the selected output definition.
  1679.                             </xs:documentation>
  1680.                         </xs:annotation>
  1681.                     </xs:attribute>
  1682.                     <xs:attribute name="cdata-section-elements" type="xsl:avt">                        
  1683.                         <xs:annotation>
  1684.                             <xs:documentation>The cdata-section-elements attribute is a
  1685.                                 space-separated list of QNames. After expansion of these names using
  1686.                                 the in-scope namespace declarations for the xsl:output declaration
  1687.                                 in which they appear, this list of names provides the value of the
  1688.                                 cdata-section-elements parameter to the serialization method. The
  1689.                                 default value is an empty list. May be used to override the attribute
  1690.                                 defined in the selected output definition.</xs:documentation>
  1691.                         </xs:annotation>                        
  1692.                     </xs:attribute>
  1693.                     <xs:attribute name="doctype-public" type="xsl:avt">
  1694.                         <xs:annotation>
  1695.                             <xs:documentation> The value of the doctype-public attribute provides
  1696.                                 the value of the doctype-public parameter to the serialization
  1697.                                 method. By default, the parameter is not supplied. May be used to
  1698.                                 override the attribute defined in the selected output definition.
  1699.                             </xs:documentation>
  1700.                         </xs:annotation>
  1701.                     </xs:attribute>
  1702.                     <xs:attribute name="doctype-system" type="xsl:avt">
  1703.                         <xs:annotation>
  1704.                             <xs:documentation>The value of the doctype-system attribute provides the
  1705.                                 value of the doctype-system parameter to the serialization method.
  1706.                                 By default, the parameter is not supplied. May be used to override
  1707.                                 the attribute defined in the selected output definition.
  1708.                             </xs:documentation>
  1709.                         </xs:annotation>
  1710.                     </xs:attribute>
  1711.                     <xs:attribute name="encoding" type="xsl:avt">
  1712.                         <xs:annotation>
  1713.                             <xs:documentation>The value of the encoding attribute provides the value
  1714.                                 of the encoding parameter to the serialization method. May be used
  1715.                                 to override the attribute defined in the selected output definition.
  1716.                             </xs:documentation>
  1717.                         </xs:annotation>
  1718.                     </xs:attribute>
  1719.                     <xs:attribute name="escape-uri-attributes" type="xsl:avt">
  1720.                         <xs:annotation>
  1721.                             <xs:documentation>The value of the escape-uri-attributes attribute provides the value of the
  1722.                                 escape-uri-attributes parameter to the serialization method.  May be used to
  1723.                                 override the attribute defined in the selected output definition.</xs:documentation>
  1724.                         </xs:annotation>
  1725.                     </xs:attribute>
  1726.                     <xs:attribute name="include-content-type" type="xsl:avt">
  1727.                         <xs:annotation>
  1728.                             <xs:documentation>The value of the include-content-type attribute provides the value of the
  1729.                                 include-content-type parameter to the serialization method. May be used to
  1730.                                 override the attribute defined in the selected output definition.</xs:documentation>
  1731.                         </xs:annotation>                        
  1732.                     </xs:attribute>
  1733.                     <xs:attribute name="indent" type="xsl:avt">
  1734.                         <xs:annotation>
  1735.                             <xs:documentation>The value of the indent attribute provides the value
  1736.                                 of the indent parameter to the serialization method. May be used to
  1737.                                 override the attribute defined in the selected output definition.
  1738.                             </xs:documentation>
  1739.                         </xs:annotation>
  1740.                     </xs:attribute>
  1741.                     <xs:attribute name="media-type" type="xsl:avt">
  1742.                         <xs:annotation>
  1743.                             <xs:documentation>The value of the media-type attribute provides the
  1744.                                 value of the media-type parameter to the serialization method. May
  1745.                                 be used to override the attribute defined in the selected output
  1746.                                 definition. </xs:documentation>
  1747.                         </xs:annotation>
  1748.                     </xs:attribute>
  1749.                     <xs:attribute name="normalization-form" type="xsl:avt">
  1750.                         <xs:annotation>
  1751.                             <xs:documentation> The value of the normalization-form attribute
  1752.                                 provides the value of the normalization-form parameter to the
  1753.                                 serialization method. A value that is an NMTOKEN other than one of
  1754.                                 those enumerated for the normalization-form attribute specifes an
  1755.                                 implementation-defined normalization form; the behavior in this case
  1756.                                 is not specified by this document. May be used to override the
  1757.                                 attribute defined in the selected output definition.
  1758.                             </xs:documentation>
  1759.                         </xs:annotation>
  1760.                     </xs:attribute>
  1761.                     <xs:attribute name="omit-xml-declaration" type="xsl:avt">
  1762.                         <xs:annotation>
  1763.                             <xs:documentation>The value of the omit-xml-declaration attribute
  1764.                                 provides the value of the omit-xml-declaration parameter to the
  1765.                                 serialization method. May be used to override the attribute defined
  1766.                                 in the selected output definition. </xs:documentation>
  1767.                         </xs:annotation>
  1768.                     </xs:attribute>
  1769.                     <xs:attribute name="standalone" type="xsl:avt">
  1770.                         <xs:annotation>
  1771.                             <xs:documentation>The value of the standalone attribute provides the
  1772.                                 value of the standalone parameter to the serialization method. May
  1773.                                 be used to override the attribute defined in the selected output
  1774.                                 definition. </xs:documentation>
  1775.                         </xs:annotation>
  1776.                     </xs:attribute>
  1777.                     <xs:attribute name="undeclare-prefixes" type="xsl:avt">
  1778.                         <xs:annotation>
  1779.                             <xs:documentation> The undeclare-prefixes attribute is relevant only
  1780.                                 when producing output with method="xml" and version="1.1" (or
  1781.                                 later). It defines whether namespace undeclarations (of the form
  1782.                                 xmlns:foo="") should be output when a child element has no namespace
  1783.                                 node with the same name (that is, namespace prefix) as a namespace
  1784.                                 node of its parent element. May be used to override the attribute defined
  1785.                                 in the selected output definition. </xs:documentation>
  1786.                         </xs:annotation>
  1787.                     </xs:attribute>
  1788.                     <xs:attribute name="use-character-maps" type="xsl:QNames">
  1789.                         <xs:annotation>
  1790.                             <xs:documentation>The use-character-maps attribute provides a list of
  1791.                                 named character maps that are used in conjunction with this output
  1792.                                 definition. May be used to override the attribute defined in the
  1793.                                 selected output definition. </xs:documentation>
  1794.                         </xs:annotation>
  1795.                     </xs:attribute>
  1796.                     <xs:attribute name="output-version" type="xsl:avt">
  1797.                         <xs:annotation>
  1798.                             <xs:documentation>The value of the version attribute provides the value
  1799.                                 of the version parameter to the serialization method. May be used to
  1800.                                 override the attribute defined in the selected output definition.
  1801.                             </xs:documentation>
  1802.                         </xs:annotation>
  1803.                     </xs:attribute>
  1804.                 </xs:extension>
  1805.             </xs:complexContent>
  1806.         </xs:complexType>
  1807.     </xs:element>
  1808.     <xs:element name="sequence" substitutionGroup="xsl:instruction">
  1809.         <xs:annotation>
  1810.             <xs:documentation> The xsl:sequence instruction may be used within a sequence constructor to construct a
  1811.                 sequence of nodes and/or atomic values. This sequence is returned as the result of the instruction.
  1812.                 Unlike most other instructions, xsl:sequence can add existing nodes to a sequence, rather than
  1813.                 constructing new nodes. When xsl:sequence is used to add atomic values to a sequence, the effect is very
  1814.                 similar to the xsl:copy-of instruction. <br/> See more info at
  1815.                 http://www.w3.org/TR/xslt20/#element-sequence </xs:documentation>
  1816.         </xs:annotation>
  1817.         <xs:complexType>
  1818.             <xs:complexContent mixed="true">
  1819.                 <xs:extension base="xsl:sequence-constructor">
  1820.                     <xs:attribute name="select" type="xsl:expression">
  1821.                         <xs:annotation>
  1822.                             <xs:documentation> The items comprising the result sequence may be selected using the select
  1823.                                 attribute, or constructed using the contained sequence constructor (but not both). </xs:documentation>
  1824.                         </xs:annotation>
  1825.                     </xs:attribute>
  1826.                     <xs:attribute name="as" type="xsl:sequence-type">
  1827.                         <xs:annotation>
  1828.                             <xs:documentation> The as attribute, if present, defines the required type of the result
  1829.                                 sequence. The computed value of the result sequence will be converted to this type using
  1830.                                 the function conversion rules. The as attribute may be used to restrict the sequence to
  1831.                                 contain only atomic values, or only nodes, or it may allow a sequence containing both
  1832.                                 atomic values and nodes. If no as attribute is specified, the default value is item()*,
  1833.                                 which permits any value. No conversion then takes place.</xs:documentation>
  1834.                         </xs:annotation>
  1835.                     </xs:attribute>
  1836.                 </xs:extension>
  1837.             </xs:complexContent>
  1838.         </xs:complexType>
  1839.     </xs:element>
  1840.     <xs:element name="sort">
  1841.         <xs:annotation>
  1842.             <xs:documentation> The xsl:sort element defines a sort key component. A sort key component specifies how a
  1843.                 sort key value is to be computed for each item in the sequence being sorted, and also how two sort key
  1844.                 values are to be compared. <br/> See more info at http://www.w3.org/TR/xslt20/#element-sort </xs:documentation>
  1845.         </xs:annotation>
  1846.         <xs:complexType>
  1847.             <xs:complexContent mixed="true">
  1848.                 <xs:extension base="xsl:sequence-constructor">
  1849.                     <xs:attribute name="select" type="xsl:expression">
  1850.                         <xs:annotation>
  1851.                             <xs:documentation>The value of a sort key component is determined either by its select
  1852.                                 attribute, or by the contained sequence constructor. If neither is present, the default
  1853.                                 is select=".", which has the effect of sorting on the actual value of the item if it is
  1854.                                 an atomic value, or on the typed-value of the item if it is a node. If a select
  1855.                                 attribute is present, its value must be an XPath expression.</xs:documentation>
  1856.                         </xs:annotation>
  1857.                     </xs:attribute>
  1858.                     <xs:attribute name="lang" type="xsl:avt">
  1859.                         <xs:annotation>
  1860.                             <xs:documentation>The lang attribute indicates that a collation suitable for a particular
  1861.                                 natural language should be used. The effective value of the attribute must be a value
  1862.                                 that would be valid for the xml:lang attribute.</xs:documentation>
  1863.                         </xs:annotation>
  1864.                     </xs:attribute>
  1865.                     <xs:attribute name="data-type" type="xsl:avt" default="text">
  1866.                         <xs:annotation>
  1867.                             <xs:documentation> For backwards compatibility with XSLT 1.0, the data-type attribute
  1868.                                 remains available. If this has the effective value text, the atomized sort key values
  1869.                                 are converted to strings before being compared. If it has the effective value number,
  1870.                                 the atomized sort key values are converted to doubles before being compared. The
  1871.                                 conversion is done by using the string FO or number FO function as appropriate. If the
  1872.                                 data-type attribute has any other effective value, then the value must be a lexical
  1873.                                 QName with a non-empty prefix, and the effect of the attribute is
  1874.                                 implementation-defined. </xs:documentation>
  1875.                         </xs:annotation>
  1876.                     </xs:attribute>
  1877.                     <xs:attribute name="order" type="xsl:avt" default="ascending">
  1878.                         <xs:annotation>
  1879.                             <xs:documentation> The order attribute controls the direction of sorting. Possible values
  1880.                                 are ascending and descending. </xs:documentation>
  1881.                         </xs:annotation>
  1882.                     </xs:attribute>
  1883.                     <xs:attribute name="case-order" type="xsl:avt">
  1884.                         <xs:annotation>
  1885.                             <xs:documentation>The case-order attribute indicates whether the desired collation should
  1886.                                 sort upper-case letters before lower-case or vice versa. The effective value of the
  1887.                                 attribute must be either lower-first (indicating that lower-case letters precede
  1888.                                 upper-case letters in the collating sequence) or upper-first (indicating that upper-case
  1889.                                 letters precede lower-case).</xs:documentation>
  1890.                         </xs:annotation>
  1891.                     </xs:attribute>
  1892.                     <xs:attribute name="collation" type="xsl:avt">
  1893.                         <xs:annotation>
  1894.                             <xs:documentation>If the xsl:sort element has a collation attribute, then the strings are
  1895.                                 compared according to the rules for the named collation: that is, they are compared
  1896.                                 using the XPath function call compare($a, $b, $collation). </xs:documentation>
  1897.                         </xs:annotation>
  1898.                     </xs:attribute>
  1899.                 <xs:attribute name="stable" type="xsl:yes-or-no">
  1900.                     <xs:annotation>
  1901.                             <xs:documentation> The stable attribute is permitted only on the first
  1902.                                 xsl:sort element within a sort key specification. It is a static
  1903.                                 error if an xsl:sort element other than the first in a sequence of
  1904.                                 sibling xsl:sort elements has a stable attribute. A sort key
  1905.                                 specification is said to be stable if its first xsl:sort element has
  1906.                                 no stable attribute, or has a stable attribute whose effective value
  1907.                                 is yes. </xs:documentation>
  1908.                     </xs:annotation>
  1909.                 </xs:attribute>
  1910.       </xs:extension>
  1911.             </xs:complexContent>
  1912.         </xs:complexType>
  1913.     </xs:element>
  1914.     <xs:element name="strip-space" substitutionGroup="xsl:declaration">
  1915.         <xs:annotation>
  1916.             <xs:documentation> The set of whitespace-preserving element names is specified by xsl:strip-space and
  1917.                 xsl:preserve-space declarations. Whether an element name is included in the set of whitespace-preserving
  1918.                 names is determined by the best match among all the xsl:strip-space or xsl:preserve-space declarations:
  1919.                 it is included if and only if there is no match or the best match is an xsl:preserve-space element.
  1920.                 <br/> See more info at http://www.w3.org/TR/xslt20/#element-strip-space </xs:documentation>
  1921.         </xs:annotation>
  1922.         <xs:complexType>
  1923.             <xs:complexContent>
  1924.                 <xs:extension base="xsl:element-only-versioned-element-type">
  1925.                     <xs:attribute name="elements" type="xsl:nametests" use="required">
  1926.                         <xs:annotation>
  1927.                             <xs:documentation>Specifies the strip space elements. Its value is a whitespace-separated
  1928.                                 list of NameTests.</xs:documentation>
  1929.                         </xs:annotation>
  1930.                     </xs:attribute>
  1931.                 </xs:extension>
  1932.             </xs:complexContent>
  1933.         </xs:complexType>
  1934.     </xs:element>
  1935.     <xs:element name="stylesheet" substitutionGroup="xsl:transform">
  1936.         <xs:annotation>
  1937.             <xs:documentation> A stylesheet module is represented by an xsl:stylesheet element in an XML document.
  1938.                 xsl:transform is allowed as a synonym for xsl:stylesheet; everything this specification says about the
  1939.                 xsl:stylesheet element applies equally to xsl:transform. <br/> See more info at
  1940.                 http://www.w3.org/TR/xslt20/#element-stylesheet </xs:documentation>
  1941.         </xs:annotation>
  1942.     </xs:element>
  1943.     <xs:element name="template" substitutionGroup="xsl:declaration">
  1944.         <xs:annotation>
  1945.             <xs:documentation> An xsl:template declaration defines a template, which contains a sequence constructor for
  1946.                 creating nodes and/or atomic values. A template can serve either as a template rule, invoked by matching
  1947.                 nodes against a pattern, or as a named template, invoked explicitly by name. It is also possible for the
  1948.                 same template to serve in both capacities. <br/> See more info at
  1949.                 http://www.w3.org/TR/xslt20/#element-template </xs:documentation>
  1950.         </xs:annotation>
  1951.         <xs:complexType>
  1952.             <xs:complexContent mixed="true">
  1953.                 <xs:extension base="xsl:versioned-element-type">
  1954.                     <xs:sequence>
  1955.                         <xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/>
  1956.                         <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
  1957.                     </xs:sequence>
  1958.                     <xs:attribute name="match" type="xsl:pattern">
  1959.                         <xs:annotation>
  1960.                             <xs:documentation> A template rule is specified using the xsl:template element with a match
  1961.                                 attribute. The match attribute is a Pattern that identifies the node or nodes to which
  1962.                                 the rule applies. The result of applying the template rule is the result of evaluating
  1963.                                 the sequence constructor contained in the xsl:template element, with the matching node
  1964.                                 used as the context node. </xs:documentation>
  1965.                         </xs:annotation>
  1966.                     </xs:attribute>
  1967.                     <xs:attribute name="priority" type="xs:decimal">
  1968.                         <xs:annotation>
  1969.                             <xs:documentation>The priority of a template rule is specified by the priority attribute on
  1970.                                 the template rule.</xs:documentation>
  1971.                         </xs:annotation>
  1972.                     </xs:attribute>
  1973.                     <xs:attribute name="mode" type="xsl:modes">
  1974.                         <xs:annotation>
  1975.                             <xs:documentation> A template rule is applicable to one or more modes. The modes to which it
  1976.                                 is applicable are defined by the mode attribute of the xsl:template element. If the
  1977.                                 attribute is omitted, then the template rule is applicable to the default mode. If the
  1978.                                 attribute is present, then its value must be a space-separated list of tokens, each of
  1979.                                 which defines a mode to which the template rule is applicable. Each token must be one of
  1980.                                 the following:<ul>
  1981.                                     <li> a QName, to define the name of the mode</li>
  1982.                                     <li> the token #default, to indicate that the template rule is applicable to the
  1983.                                         default mode</li>
  1984.                                     <li> the token #all, to indicate that the template rule is applicable to all modes.</li>
  1985.                                 </ul>
  1986.                             </xs:documentation>
  1987.                         </xs:annotation>
  1988.                     </xs:attribute>
  1989.                     <xs:attribute name="name" type="xsl:QName">
  1990.                         <xs:annotation>
  1991.                             <xs:documentation> Specifies a name for the template. If the template has a name attribute,
  1992.                                 then it is a named template. </xs:documentation>
  1993.                         </xs:annotation>
  1994.                     </xs:attribute>
  1995.                     <xs:attribute name="as" type="xsl:sequence-type" default="item()*">
  1996.                         <xs:annotation>
  1997.                             <xs:documentation> If an as attribute is present, the as attribute defines the required type
  1998.                                 of the result. The result of evaluating the sequence constructor is converted to the
  1999.                                 required type using the function conversion rules. If no as attribute is specified, the
  2000.                                 default value is item()*, which permits any value. No conversion then takes place. </xs:documentation>
  2001.                         </xs:annotation>
  2002.                     </xs:attribute>
  2003.                 </xs:extension>
  2004.             </xs:complexContent>
  2005.         </xs:complexType>
  2006.     </xs:element>
  2007.     <xs:complexType name="text-element-base-type">
  2008.         <xs:simpleContent>
  2009.             <xs:restriction base="xsl:versioned-element-type">
  2010.                 <xs:simpleType>
  2011.                     <xs:restriction base="xs:string"/>
  2012.                 </xs:simpleType>
  2013.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  2014.             </xs:restriction>
  2015.         </xs:simpleContent>
  2016.     </xs:complexType>
  2017.     <xs:element name="text" substitutionGroup="xsl:instruction">
  2018.     <xs:annotation>
  2019.             <xs:documentation> The xsl:text element is evaluated to contruct a new text node. The content of the
  2020.                 xsl:text element is a single text node whose value forms the string value of the new text node. An
  2021.                 xsl:text element may also be empty, in which case the result of evaluating the instruction is an empty
  2022.                 sequence.<br/> See more info at http://www.w3.org/TR/xslt20/#element-text </xs:documentation>
  2023.         </xs:annotation>
  2024.         <xs:complexType>
  2025.             <xs:simpleContent>
  2026.                 <xs:extension base="xsl:text-element-base-type">
  2027.                     <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no">
  2028.                         <xs:annotation>
  2029.                             <xs:documentation>Normally, when using the XML, HTML, or XHTML output method, the serializer
  2030.                                 will escape special characters such as & and < when outputting text
  2031.                                 nodes. This ensures that the output is well-formed. Specifying disable-output-escaping
  2032.                                 as yes will disable this. This attribute is marked as deprecated in XSLT 2.0. Since
  2033.                                 disabling output escaping might not work with all implementations and can result in XML
  2034.                                 that is not well-formed, it should be used only when there is no alternative. The
  2035.                                 facility to define character maps for use during serialization has been produced as an
  2036.                                 alternative mechanism that can be used in many situations where disabling of output
  2037.                                 escaping was previously necessary, without the same difficulties. </xs:documentation>
  2038.                         </xs:annotation>
  2039.                     </xs:attribute>
  2040.                 </xs:extension>
  2041.             </xs:simpleContent>
  2042.         </xs:complexType>
  2043.     </xs:element>
  2044.     <xs:complexType name="transform-element-base-type">
  2045.         <xs:complexContent>
  2046.              <xs:restriction base="xsl:element-only-versioned-element-type">
  2047.                  <xs:attribute name="version" type="xs:decimal" use="required"/>
  2048.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  2049.             </xs:restriction>
  2050.         </xs:complexContent>
  2051.     </xs:complexType>
  2052.     <xs:element name="transform">
  2053.         <xs:annotation>
  2054.             <xs:documentation> The xsl:transform is allowed as a synonym for xsl:stylesheet; everything this
  2055.                 specification says about the xsl:stylesheet element applies equally to xsl:transform. <br/> See more
  2056.                 info at http://www.w3.org/TR/xslt20/#element-transform </xs:documentation>
  2057.         </xs:annotation>
  2058.         <xs:complexType>
  2059.             <xs:complexContent>
  2060.                 <xs:extension base="xsl:transform-element-base-type">
  2061.                     <xs:sequence>
  2062.                         <xs:element ref="xsl:import" minOccurs="0" maxOccurs="unbounded"/>
  2063.                         <xs:choice minOccurs="0" maxOccurs="unbounded">
  2064.                             <xs:element ref="xsl:declaration"/>
  2065.                             <xs:element ref="xsl:variable"/>
  2066.                             <xs:element ref="xsl:param"/>
  2067.                             <xs:any namespace="##other" processContents="lax"/>
  2068.                             <!-- weaker than XSLT 1.0 -->
  2069.                         </xs:choice>
  2070.                     </xs:sequence>
  2071.                     <xs:attribute name="id" type="xs:ID">
  2072.                         <xs:annotation>
  2073.                             <xs:documentation> A stylesheet module may be embedded in an XML document and the
  2074.                                 xsl:stylesheet element may occur in that XML document other than as the document
  2075.                                 element. To facilitate this form of embedding, the xsl:stylesheet element may have an ID
  2076.                                 attribute that specifies a unique identifier. </xs:documentation>
  2077.                         </xs:annotation>
  2078.                     </xs:attribute>
  2079.                     <xs:attribute name="default-validation" type="xsl:validation-strip-or-preserve" default="strip">
  2080.                         <xs:annotation>
  2081.                             <xs:documentation> The default-validation attribute defines the default value of the
  2082.                                 validation attribute of all xsl:element, xsl:attribute, xsl:copy, xsl:copy-of, and
  2083.                                 xsl:result-document instructions, and of the xsl:validation attribute of all literal
  2084.                                 result elements. It also determines the validation applied to the implicit result tree
  2085.                                 created in the absence of an xsl:result-document instruction. This default applies
  2086.                                 within the stylesheet module: it does not extend to included or imported stylesheet
  2087.                                 modules. If the attribute is omitted, the default is strip. </xs:documentation>
  2088.                         </xs:annotation>
  2089.                     </xs:attribute>
  2090.                     <xs:attribute name="input-type-annotations" type="xsl:input-type-annotations-type" default="unspecified">
  2091.                         <xs:annotation>
  2092.                             <xs:documentation> Describes how type annotations in source documents
  2093.                                 are handled. This attribute has three permitted values: strip,
  2094.                                 preserve, and unspecified. The default value is unspecified.
  2095.                                 Stripping of type annotations takes place if at least one stylesheet
  2096.                                 module in the stylesheet specifies input-type-annotations="strip".
  2097.                             </xs:documentation>
  2098.                         </xs:annotation>
  2099.                     </xs:attribute>
  2100.                 </xs:extension>
  2101.             </xs:complexContent>
  2102.         </xs:complexType>
  2103.     </xs:element>
  2104.     <xs:element name="value-of" substitutionGroup="xsl:instruction">
  2105.         <xs:annotation>
  2106.             <xs:documentation> The xsl:value-of instruction is evaluated to construct a new text node; the result of the
  2107.                 instruction is the newly constructed text node. <br/> See more info at
  2108.                 http://www.w3.org/TR/xslt20/#element-value-of </xs:documentation>
  2109.         </xs:annotation>
  2110.         <xs:complexType>
  2111.             <xs:complexContent mixed="true">
  2112.                 <xs:extension base="xsl:sequence-constructor">
  2113.                     <xs:attribute name="select" type="xsl:expression">
  2114.                         <xs:annotation>
  2115.                             <xs:documentation> The string value of the new text node may be defined either by using the
  2116.                                 select attribute, or by the sequence constructor that forms the content of the
  2117.                                 xsl:value-of element. These are mutually exclusive, and one of them must be present. </xs:documentation>
  2118.                         </xs:annotation>
  2119.                     </xs:attribute>
  2120.                     <xs:attribute name="separator" type="xsl:avt">
  2121.                         <xs:annotation>
  2122.                             <xs:documentation> If the separator attribute is present, then the effective value of this
  2123.                                 attribute is used to separate adjacent items in the result sequence. In the absence of
  2124.                                 this attribute, the default separator is a single space (#x20) when the content is
  2125.                                 specified using the select attribute, or a zero-length string when the content is
  2126.                                 specified using a sequence constructor.</xs:documentation>
  2127.                         </xs:annotation>
  2128.                     </xs:attribute>
  2129.                     <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no">
  2130.                         <xs:annotation>
  2131.                             <xs:documentation> Normally, when using the XML, HTML, or XHTML output method, the
  2132.                                 serializer will escape special characters such as & and < when outputting
  2133.                                 text nodes. This ensures that the output is well-formed. Specifying
  2134.                                 disable-output-escaping as yes will disable this. This attribute is marked as deprecated
  2135.                                 in XSLT 2.0. Since disabling output escaping might not work with all implementations and
  2136.                                 can result in XML that is not well-formed, it should be used only when there is no
  2137.                                 alternative. The facility to define character maps for use during serialization has been
  2138.                                 produced as an alternative mechanism that can be used in many situations where disabling
  2139.                                 of output escaping was previously necessary, without the same difficulties. </xs:documentation>
  2140.                         </xs:annotation>
  2141.                     </xs:attribute>
  2142.                 </xs:extension>
  2143.             </xs:complexContent>
  2144.         </xs:complexType>
  2145.     </xs:element>
  2146.     <xs:element name="variable">
  2147.         <xs:annotation>
  2148.             <xs:documentation> The xsl:variable element declares a variable, which may be a global variable or a local
  2149.                 variable. A variable is a binding between a name and a value. The value of a variable is any sequence
  2150.                 (of nodes and/or atomic values). <br/> See more info at http://www.w3.org/TR/xslt20/#element-variable </xs:documentation>
  2151.         </xs:annotation>
  2152.         <xs:complexType>
  2153.             <xs:complexContent mixed="true">
  2154.                 <xs:extension base="xsl:sequence-constructor">
  2155.                     <xs:attribute name="name" type="xsl:QName" use="required">
  2156.                         <xs:annotation>
  2157.                             <xs:documentation> The xsl:variable element has a required name attribute, which specifies
  2158.                                 the name of the variable. The value of the name attribute is a QName. </xs:documentation>
  2159.                         </xs:annotation>
  2160.                     </xs:attribute>
  2161.                     <xs:attribute name="select" type="xsl:expression" use="optional">
  2162.                         <xs:annotation>
  2163.                             <xs:documentation> The value of the variable is computed using the expression given in the
  2164.                                 select attribute or the contained sequence constructor. This value is referred to as the
  2165.                                 supplied value of the variable. If the xsl:variable element has a select attribute, then
  2166.                                 the sequence constructor must be empty. </xs:documentation>
  2167.                         </xs:annotation>
  2168.                     </xs:attribute>
  2169.                     <xs:attribute name="as" type="xsl:sequence-type" use="optional">
  2170.                         <xs:annotation>
  2171.                             <xs:documentation> If the as attribute is specified, then the supplied value of the variable
  2172.                                 is converted to the required type, using the function conversion rules. If the as
  2173.                                 attribute is omitted, the supplied value of the variable is used directly, and no
  2174.                                 conversion takes place.</xs:documentation>
  2175.                         </xs:annotation>
  2176.                     </xs:attribute>
  2177.                 </xs:extension>
  2178.             </xs:complexContent>
  2179.         </xs:complexType>
  2180.     </xs:element>
  2181.     <xs:element name="when">
  2182.         <xs:annotation>
  2183.             <xs:documentation> The xsl:when element defines a possible alternative inside an xsl:choose element. When an
  2184.                 xsl:choose element is processed, each of the xsl:when elements is tested in turn (that is, in the order
  2185.                 that the elements appear in the stylesheet), until one of the xsl:when elements is satisfied. An
  2186.                 xsl:when element is satisfied if the effective boolean value of the expression in its test attribute is
  2187.                 true. <br/> See more info at http://www.w3.org/TR/xslt20/#element-when </xs:documentation>
  2188.         </xs:annotation>
  2189.         <xs:complexType>
  2190.             <xs:complexContent mixed="true">
  2191.                 <xs:extension base="xsl:sequence-constructor">
  2192.                     <xs:attribute name="test" type="xsl:expression" use="required">
  2193.                         <xs:annotation>
  2194.                             <xs:documentation> Specifies the test expression. </xs:documentation>
  2195.                         </xs:annotation>
  2196.                     </xs:attribute>
  2197.                 </xs:extension>
  2198.             </xs:complexContent>
  2199.         </xs:complexType>
  2200.     </xs:element>
  2201.     <xs:element name="with-param">
  2202.         <xs:annotation>
  2203.             <xs:documentation> Parameters are passed to templates using the xsl:with-param element. <br/> See more info
  2204.                 at http://www.w3.org/TR/xslt20/#element-with-param </xs:documentation>
  2205.         </xs:annotation>
  2206.         <xs:complexType>
  2207.             <xs:complexContent mixed="true">
  2208.                 <xs:extension base="xsl:sequence-constructor">
  2209.                     <xs:attribute name="name" type="xsl:QName" use="required">
  2210.                         <xs:annotation>
  2211.                             <xs:documentation> The required name attribute specifies the name of the template parameter
  2212.                                 (the variable the value of whose binding is to be replaced). The value of the name
  2213.                                 attribute is a QName. </xs:documentation>
  2214.                         </xs:annotation>
  2215.                     </xs:attribute>
  2216.                     <xs:attribute name="select" type="xsl:expression">
  2217.                         <xs:annotation>
  2218.                             <xs:documentation> Specifies a value for the parameter. The value of the parameter is
  2219.                                 computed using the expression given in the select attribute or the contained sequence
  2220.                                 constructor. </xs:documentation>
  2221.                         </xs:annotation>
  2222.                     </xs:attribute>
  2223.                     <xs:attribute name="as" type="xsl:sequence-type">
  2224.                         <xs:annotation>
  2225.                             <xs:documentation> The as attribute specifies the required type of the parameter. If the as
  2226.                                 attribute is specified, then the supplied value of the parameter is converted to the
  2227.                                 required type, using the function conversion rules. If the as attribute is omitted, the
  2228.                                 supplied value of the parameter is used directly, and no conversion takes place. </xs:documentation>
  2229.                         </xs:annotation>
  2230.                     </xs:attribute>
  2231.                     <xs:attribute name="tunnel" type="xsl:yes-or-no">
  2232.                         <xs:annotation>
  2233.                             <xs:documentation> Tunnel parameters have the property that they are automatically passed on
  2234.                                 by the called template to any further templates that it calls, and so on recursively.
  2235.                                 The optional tunnel attribute may be used to indicate that a parameter is a tunnel
  2236.                                 parameter. The default is no. </xs:documentation>
  2237.                         </xs:annotation>
  2238.                     </xs:attribute>
  2239.                 </xs:extension>
  2240.             </xs:complexContent>
  2241.         </xs:complexType>
  2242.     </xs:element>
  2243.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  2244.     <xs:annotation>
  2245.         <xs:documentation> PART C: definition of literal result elements There are three ways to define the literal
  2246.             result elements permissible in a stylesheet. (a) do nothing. This allows any element to be used as a literal
  2247.             result element, provided it is not in the XSLT namespace (b) declare all permitted literal result elements
  2248.             as members of the xsl:literal-result-element substitution group (c) redefine the model group
  2249.             xsl:result-elements to accommodate all permitted literal result elements. Literal result elements are
  2250.             allowed to take certain attributes in the XSLT namespace. These are defined in the attribute group
  2251.             literal-result-element-attributes, which can be included in the definition of any literal result element. </xs:documentation>
  2252.     </xs:annotation>
  2253.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  2254.     <xs:element name="literal-result-element" abstract="true" type="xs:anyType"/>
  2255.     <xs:attributeGroup name="literal-result-element-attributes">
  2256.         <xs:attribute name="default-collation" form="qualified" type="xsl:uri-list"/>
  2257.         <xs:attribute name="extension-element-prefixes" form="qualified" type="xsl:prefixes"/>
  2258.         <xs:attribute name="exclude-result-prefixes" form="qualified" type="xsl:prefixes"/>
  2259.         <xs:attribute name="xpath-default-namespace" form="qualified" type="xs:anyURI"/>
  2260.         <xs:attribute name="inherit-namespaces" form="qualified" type="xsl:yes-or-no" default="yes"/>
  2261.         <xs:attribute name="use-attribute-sets" form="qualified" type="xsl:QNames" default=""/>
  2262.         <xs:attribute name="use-when" form="qualified" type="xsl:expression"/>
  2263.   <xs:attribute name="version" form="qualified" type="xs:decimal"/>
  2264.         <xs:attribute name="type" form="qualified" type="xsl:QName"/>
  2265.         <xs:attribute name="validation" form="qualified" type="xsl:validation-type"/>
  2266.     </xs:attributeGroup>
  2267.     <xs:group name="result-elements">
  2268.         <xs:choice>
  2269.             <xs:element ref="xsl:literal-result-element"/>
  2270.             <xs:any namespace="##other" processContents="lax"/>
  2271.             <xs:any namespace="##local" processContents="lax"/>
  2272.         </xs:choice>
  2273.     </xs:group>
  2274.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  2275.     <xs:annotation>
  2276.         <xs:documentation> PART D: definitions of simple types used in stylesheet attributes </xs:documentation>
  2277.     </xs:annotation>
  2278.     <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  2279.     <xs:simpleType name="avt">
  2280.         <xs:annotation>
  2281.             <xs:documentation> This type is used for all attributes that allow an attribute value template. The general
  2282.                 rules for the syntax of attribute value templates, and the specific rules for each such attribute, are
  2283.                 described in the XSLT 2.0 Recommendation. </xs:documentation>
  2284.         </xs:annotation>
  2285.         <xs:restriction base="xs:string"/>
  2286.     </xs:simpleType>
  2287.     <xs:simpleType name="char">
  2288.         <xs:annotation>
  2289.             <xs:documentation> A string containing exactly one character. </xs:documentation>
  2290.         </xs:annotation>
  2291.         <xs:restriction base="xs:string">
  2292.             <xs:length value="1"/>
  2293.         </xs:restriction>
  2294.     </xs:simpleType>
  2295.     <xs:simpleType name="expression">
  2296.         <xs:annotation>
  2297.             <xs:documentation> An XPath 2.0 expression. </xs:documentation>
  2298.         </xs:annotation>
  2299.         <xs:restriction base="xs:token">
  2300.             <xs:pattern value=".+"/>
  2301.         </xs:restriction>
  2302.     </xs:simpleType>
  2303.     <xs:simpleType name="input-type-annotations-type">
  2304.         <xs:annotation>
  2305.             <xs:documentation>
  2306.                 Describes how type annotations in source documents are handled.
  2307.            </xs:documentation>
  2308.        </xs:annotation>
  2309.        <xs:restriction base="xs:token">
  2310.        <xs:enumeration value="preserve"/>
  2311.        <xs:enumeration value="strip"/>   
  2312.        <xs:enumeration value="unspecified"/>        
  2313.        </xs:restriction>
  2314.     </xs:simpleType>
  2315.     <xs:simpleType name="level">
  2316.         <xs:annotation>
  2317.             <xs:documentation> The level attribute of xsl:number: one of single, multiple, or any. </xs:documentation>
  2318.         </xs:annotation>
  2319.         <xs:restriction base="xs:NCName">
  2320.             <xs:enumeration value="single"/>
  2321.             <xs:enumeration value="multiple"/>
  2322.             <xs:enumeration value="any"/>
  2323.         </xs:restriction>
  2324.     </xs:simpleType>
  2325.     <xs:simpleType name="mode">
  2326.         <xs:annotation>
  2327.             <xs:documentation> The mode attribute of xsl:apply-templates: either a QName, or #current, or #default. </xs:documentation>
  2328.         </xs:annotation>
  2329.         <xs:union memberTypes="xsl:QName">
  2330.             <xs:simpleType>
  2331.                 <xs:restriction base="xs:token">
  2332.                     <xs:enumeration value="#default"/>
  2333.                     <xs:enumeration value="#current"/>
  2334.                 </xs:restriction>
  2335.             </xs:simpleType>
  2336.         </xs:union>
  2337.     </xs:simpleType>
  2338.     <xs:simpleType name="modes">
  2339.         <xs:annotation>
  2340.             <xs:documentation> The mode attribute of xsl:template: either a list, each member being either a QName or
  2341.                 #default; or the value #all </xs:documentation>
  2342.         </xs:annotation>
  2343.         <xs:union>
  2344.             <xs:simpleType>
  2345.                 <xs:list>
  2346.                     <xs:simpleType>
  2347.                         <xs:union memberTypes="xsl:QName">
  2348.                             <xs:simpleType>
  2349.                                 <xs:restriction base="xs:token">
  2350.                                     <xs:enumeration value="#default"/>
  2351.                                 </xs:restriction>
  2352.                             </xs:simpleType>
  2353.                         </xs:union>
  2354.                     </xs:simpleType>
  2355.                 </xs:list>
  2356.             </xs:simpleType>
  2357.             <xs:simpleType>
  2358.                 <xs:restriction base="xs:token">
  2359.                     <xs:enumeration value="#all"/>
  2360.                 </xs:restriction>
  2361.             </xs:simpleType>
  2362.         </xs:union>
  2363.     </xs:simpleType>
  2364.     <xs:simpleType name="nametests">
  2365.         <xs:annotation>
  2366.             <xs:documentation> A list of NameTests, as defined in the XPath 2.0 Recommendation. Each NameTest is either
  2367.                 a QName, or "*", or "prefix:*", or "*:localname" </xs:documentation>
  2368.         </xs:annotation>
  2369.         <xs:list>
  2370.             <xs:simpleType>
  2371.                 <xs:union memberTypes="xsl:QName">
  2372.                     <xs:simpleType>
  2373.                         <xs:restriction base="xs:token">
  2374.                             <xs:enumeration value="*"/>
  2375.                         </xs:restriction>
  2376.                     </xs:simpleType>
  2377.                     <xs:simpleType>
  2378.                         <xs:restriction base="xs:token">
  2379.                             <xs:pattern value="\i\c*:\*"/>
  2380.                             <xs:pattern value="\*:\i\c*"/>
  2381.                         </xs:restriction>
  2382.                     </xs:simpleType>
  2383.                 </xs:union>
  2384.             </xs:simpleType>
  2385.         </xs:list>
  2386.     </xs:simpleType>
  2387.     <xs:simpleType name="prefixes">
  2388.         <xs:list itemType="xs:NCName"/>
  2389.     </xs:simpleType>
  2390.     <xs:simpleType name="prefix-list-or-all">
  2391.         <xs:union memberTypes="xsl:prefix-list">
  2392.             <xs:simpleType>
  2393.                 <xs:restriction base="xs:token">
  2394.                     <xs:enumeration value="#all"/>
  2395.                 </xs:restriction>
  2396.             </xs:simpleType>
  2397.         </xs:union>
  2398.     </xs:simpleType>
  2399.     <xs:simpleType name="prefix-list">
  2400.         <xs:list itemType="xsl:prefix-or-default"/>
  2401.     </xs:simpleType>
  2402.     <xs:simpleType name="method">
  2403.         <xs:annotation>
  2404.             <xs:documentation> The method attribute of xsl:output: Either one of the recognized names "xml", "xhtml",
  2405.                 "html", "text", or a QName that must include a prefix. </xs:documentation>
  2406.         </xs:annotation>
  2407.         <xs:union>
  2408.             <xs:simpleType>
  2409.                 <xs:restriction base="xs:NCName">
  2410.                     <xs:enumeration value="xml"/>
  2411.                     <xs:enumeration value="xhtml"/>
  2412.                     <xs:enumeration value="html"/>
  2413.                     <xs:enumeration value="text"/>
  2414.                 </xs:restriction>
  2415.             </xs:simpleType>
  2416.             <xs:simpleType>
  2417.                 <xs:restriction base="xsl:QName">
  2418.                     <xs:pattern value="\c*:\c*"/>
  2419.                 </xs:restriction>
  2420.             </xs:simpleType>
  2421.         </xs:union>
  2422.     </xs:simpleType>
  2423.     <xs:simpleType name="pattern">
  2424.         <xs:annotation>
  2425.             <xs:documentation> A match pattern as defined in the XSLT 2.0 Recommendation. The syntax for patterns is a
  2426.                 restricted form of the syntax for XPath 2.0 expressions. </xs:documentation>
  2427.         </xs:annotation>
  2428.         <xs:restriction base="xsl:expression"/>
  2429.     </xs:simpleType>
  2430.     <xs:simpleType name="prefix-or-default">
  2431.         <xs:annotation>
  2432.             <xs:documentation> Either a namespace prefix, or #default. Used in the xsl:namespace-alias element. </xs:documentation>
  2433.         </xs:annotation>
  2434.         <xs:union memberTypes="xs:NCName">
  2435.             <xs:simpleType>
  2436.                 <xs:restriction base="xs:token">
  2437.                     <xs:enumeration value="#default"/>
  2438.                 </xs:restriction>
  2439.             </xs:simpleType>
  2440.         </xs:union>
  2441.     </xs:simpleType>
  2442.     <xs:simpleType name="QNames">
  2443.         <xs:annotation>
  2444.             <xs:documentation> A list of QNames. Used in the [xsl:]use-attribute-sets attribute of various elements, and
  2445.                 in the cdata-section-elements attribute of xsl:output </xs:documentation>
  2446.         </xs:annotation>
  2447.         <xs:list itemType="xsl:QName"/>
  2448.     </xs:simpleType>
  2449.     <xs:simpleType name="QName">
  2450.         <xs:annotation>
  2451.             <xs:documentation> A QName. This schema does not use the built-in type xs:QName, but rather defines its own
  2452.                 QName type. Although xs:QName would define the correct validation on these attributes, a schema
  2453.                 processor would expand unprefixed QNames incorrectly when constructing the PSVI, because (as defined in
  2454.                 XML Schema errata) an unprefixed xs:QName is assumed to be in the default namespace, which is not the
  2455.                 correct assumption for XSLT. The data type is defined as a restriction of the built-in type Name,
  2456.                 restricted so that it can only contain one colon which must not be the first or last character. </xs:documentation>
  2457.         </xs:annotation>
  2458.         <xs:restriction base="xs:Name">
  2459.             <xs:pattern value="([^:]+:)?[^:]+"/>
  2460.         </xs:restriction>
  2461.     </xs:simpleType>
  2462.     <xs:simpleType name="sequence-type">
  2463.         <xs:annotation>
  2464.             <xs:documentation> The description of a data type, conforming to the SequenceType production defined in the
  2465.                 XPath 2.0 Recommendation </xs:documentation>
  2466.         </xs:annotation>
  2467.         <xs:restriction base="xs:token">
  2468.             <xs:pattern value=".+"/>
  2469.         </xs:restriction>
  2470.     </xs:simpleType>
  2471.     <xs:simpleType name="uri-list">
  2472.        <xs:list itemType="xs:anyURI"/>
  2473.    </xs:simpleType>
  2474.     <xs:simpleType name="validation-strip-or-preserve">
  2475.         <xs:annotation>
  2476.             <xs:documentation> Describes different ways of type-annotating an element or attribute.
  2477.             </xs:documentation>
  2478.         </xs:annotation>
  2479.         <xs:restriction base="xsl:validation-type">
  2480.             <xs:enumeration value="preserve"/>
  2481.             <xs:enumeration value="strip"/>
  2482.         </xs:restriction>
  2483.     </xs:simpleType>
  2484.     <xs:simpleType name="validation-type">
  2485.         <xs:annotation>
  2486.             <xs:documentation> Describes different ways of type-annotating an element or attribute. </xs:documentation>
  2487.         </xs:annotation>
  2488.         <xs:restriction base="xs:token">
  2489.             <xs:enumeration value="strict"/>
  2490.             <xs:enumeration value="lax"/>
  2491.             <xs:enumeration value="preserve"/>
  2492.             <xs:enumeration value="strip"/>
  2493.         </xs:restriction>
  2494.     </xs:simpleType>
  2495.     <xs:simpleType name="yes-or-no">
  2496.         <xs:annotation>
  2497.             <xs:documentation> One of the values "yes" or "no". </xs:documentation>
  2498.         </xs:annotation>
  2499.         <xs:restriction base="xs:token">
  2500.             <xs:enumeration value="yes"/>
  2501.             <xs:enumeration value="no"/>
  2502.         </xs:restriction>
  2503.     </xs:simpleType>
  2504.     <xs:simpleType name="yes-or-no-or-omit">
  2505.         <xs:annotation>
  2506.             <xs:documentation> One of the values "yes" or "no" or "omit". </xs:documentation>
  2507.         </xs:annotation>
  2508.         <xs:restriction base="xs:token">
  2509.             <xs:enumeration value="yes"/>
  2510.             <xs:enumeration value="no"/>
  2511.             <xs:enumeration value="omit"/>
  2512.         </xs:restriction>
  2513.     </xs:simpleType>
  2514. </xs:schema>
  2515.