<?xml version="1.0"?>
<!--
 *******************************************************************************
 * Copyright (c) 2001, 2007 - W3C, Standards for Technology in Automotive Retail,
 * and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     David Carver - 20071228 - STAR - Updated to XML Schemas 2001 1.0
 *         Note this schemas is a modified version of the schema for XSLT 2.0, it has
 *         been stripped of all XSLT 2.0 additions, to bring it in line with the XSLT 1.0
 *         specification.
 *         The original version may be found at http://www.w3.org/2007/schema-for-xslt20.xsd
 *         The original W3C copyright notice is included:
 *     David Carver - 20080330 - STAR - bug 224819 - changed procesContents from lax to skip
 *     David Carver - STAR - bug 293902 - correct exclude-result-prefix to use prefix-list
 *******************************************************************************
 *******************************************************************************
 * W3C® SOFTWARE NOTICE AND LICENSE
 * http://www.w3.org/Consortium/Legal/copyright-software-19980720
 *
 * Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of
 * Technology, Institut National de Recherche en Informatique et en Automatique,
 * Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/
 *
 * This W3C work (including software, documents, or other related items) is being
 * provided by the copyright holders under the following license. By obtaining,
 * using and/or copying this work, you (the licensee) agree that you have read,
 * understood, and will comply with the following terms and conditions:
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation, with or without modification,  for any purpose and without fee
 * or royalty is hereby granted, provided that you include the following on ALL copies
 * of the software and documentation or portions thereof, including modifications, that
 * you make:
 *
 *  1. The full text of this NOTICE in a location viewable to users of the redistributed
 *     or derivative work.
 *  2. Any pre-existing intellectual property disclaimers, notices, or terms and
 *     conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/"
 *  3. Notice of any changes or modifications to the W3C files, including the date changes
 *     were made. (We recommend you provide URIs to the location from which the code is
 *     derived.)
 *
 * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO 
 * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, 
 * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF
 * THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
 * TRADEMARKS OR OTHER RIGHTS.
 *
 * COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL
 * DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
 *
 * The name and trademarks of copyright holders may NOT be used in advertising or publicity
 * pertaining to the software without specific, written prior permission. Title to copyright
 * in this software and any associated documentation will at all times remain with copyright
 * holders.
 ******************************************************************************************** 
 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
           targetNamespace="http://www.w3.org/1999/XSL/Transform" 
           elementFormDefault="qualified" >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
  <xs:documentation>
  
   </xs:documentation>
</xs:annotation>   
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 
<!--
The declaration of xml:space and xml:lang may need to be commented out because
of problems processing the schema using various tools
-->
      
<xs:import namespace="http://www.w3.org/XML/1998/namespace" 
  schemaLocation="http://www.w3.org/2001/xml.xsd"/>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
  <xs:documentation>
    PART A: definitions of complex types and model groups used as the basis 
            for element definitions
  </xs:documentation>
</xs:annotation>   
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<xs:complexType name="generic-element-type" mixed="true">
  <xs:anyAttribute namespace="##other" processContents="skip"/>
</xs:complexType>

<!-- <xs:complexType name="versioned-element-type" mixed="true">
  <xs:complexContent>
    <xs:extension base="xsl:generic-element-type">    
      <xs:attribute name="version" type="xs:decimal" use="optional"/>

    </xs:extension>
  </xs:complexContent>
</xs:complexType>
-->

<xs:complexType name="element-only-versioned-element-type" mixed="false">
  <xs:complexContent>
    <xs:restriction base="xsl:generic-element-type">
      <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:restriction>
  </xs:complexContent>

</xs:complexType>

<xs:complexType name="sequence-constructor">
  <xs:complexContent mixed="true">
    <xs:extension base="xsl:generic-element-type">    
      <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:group name="sequence-constructor-group">
  <xs:choice>

    <xs:element ref="xsl:variable"/>
    <xs:element ref="xsl:instruction"/>
    <xs:group ref="xsl:result-elements"/>
  </xs:choice>
</xs:group>

<xs:element name="declaration" type="xsl:generic-element-type" abstract="true"/>

<xs:element name="instruction" type="xsl:generic-element-type" abstract="true"/>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
  <xs:documentation>

    PART B: definitions of individual XSLT elements    
    Elements are listed in alphabetical order.    
  </xs:documentation>
</xs:annotation>   
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<xs:element name="apply-imports" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        This command applies template rule from an imported style sheet.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type"/>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="apply-templates" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Applies template rules based on a given XPath selection criteria.  If no template
        is found the built in templates are used.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="xsl:sort"/>
          <xs:element ref="xsl:with-param"/>
        </xs:choice>
        <xs:attribute name="select" type="xsl:expression" default="child::node()">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Specifies the XPath criteria to be used to apply the templates.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mode" type="xsl:mode">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  Specifies the type of template to be used if there is more than
                 one way in which to process the given criteria.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="attribute" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Defines an attribute that will be put in the result set.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="name" type="xsl:avt" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required. The name of the attribute to be created.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namespace" type="xsl:avt">
              <xs:annotation>
                 <xs:documentation source="http://www.w3.org/TR/xslt">
                    Optional. The namespace for the attribute.
                 </xs:documentation>
              </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>        

<xs:element name="attribute-set" substitutionGroup="xsl:declaration">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Defines a group of attributes that will be created and can be reused
         by other portions of the stylesheet during processing.  These attributes
         will appear on the resulting document when used.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="xsl:attribute"/>
        </xs:sequence>
        <xs:attribute name="name" type="xsl:QName" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  Name of the attribute set.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="use-attribute-sets" type="xsl:QNames" default="">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  A list of attributes-sets separated by spaces to be used in this
                  attribute set.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="call-template" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Specifies the name of a template to be called. A called template
        is only executed when it is called.  It is not executed directly by
        an apply-templates command.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>

    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:sequence>
          <xs:element ref="xsl:with-param" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="name" type="xsl:QName" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Required.  The name of the template to be called.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="choose" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Choose is the beginning of a When/Otherwise combination.  It is
         the way to implement case selection of If/Then/ElseIf type logical
         processing.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:sequence>
          <xs:element ref="xsl:when" maxOccurs="unbounded"/>
          <xs:element ref="xsl:otherwise" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="comment" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Creates a comment node in the result document.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor"/>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="copy" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Copy creates a duplicate of the current node being processed.  It
         does not copy the attributes or children nodes.  See copy-of for
         copying attributes and children nodes.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="use-attribute-sets" type="xsl:QNames" default="">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  A space separated list of attributes sets to apply to the
                 result document.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="copy-of" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Creates a copy-of the current node and all attributes, and children nodes.
         It copies the nodes specified by the XPath selection criteria.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:generic-element-type">
        <xs:attribute name="select" type="xsl:expression" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  XPath expressions that select the nodes to be copied.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="decimal-format" substitutionGroup="xsl:declaration">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Defines the output format to be used when converting numbers into strings when
         used with the XPath function format-number().
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:attribute name="name" type="xsl:QName">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The unique name for this format.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="decimal-separator" type="xsl:char" default=".">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The character to use to represent a decimal point.
                  The default value is a period.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="grouping-separator" type="xsl:char" default=",">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The character to be used to seperate thousands.  The
                  default is a comma.              
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="infinity" type="xs:string" default="Infinity">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The string to be used to represent infinity. The default
                  is Infinity.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="minus-sign" type="xsl:char" default="-">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The character to be used to represent negative numbers.
                  The default is the minus sign.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="NaN" type="xs:string" default="NaN">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The string to be used when the input is Not a Number.
                  The default is NaN.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="percent" type="xsl:char" default="%">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The character to be used to represent a percent.
                  The default is a percent sign.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="per-mille" type="xsl:char" default="&#x2030;">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The character to be used to represet per thousand.
                  The default is &#x2030;
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="zero-digit" type="xsl:char" default="0">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The character to be used to represent the digit zero.
                  The default is the number zero.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="digit" type="xsl:char" default="#">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                   Optional. The character to be used to indicated where a digit
                   is required.  The default values is # character.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="pattern-separator" type="xsl:char" default=";">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                   Optional. The character to be used to separate positive and
                   negative sub-patterns in a pattern.  The default is a semi-colon.                   
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="element" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Creates an element in the result document.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType mixed="true">
    <xs:complexContent>
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="name" type="xsl:avt" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  The name of the element to be created.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namespace" type="xsl:avt">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                   Optional. The namespace the element belongs.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="use-attribute-sets" type="xsl:QNames" default="">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                   Optional.  A space separated list of attribute-set names to 
                   be included on the element.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="fallback" substitutionGroup="xsl:instruction" type="xsl:sequence-constructor">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
          Specifies alternate code to be run if the XSLT processor doesn't understand
          a particular xsl element.
     </xs:documentation>
  </xs:annotation>
</xs:element>

<xs:element name="for-each" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         A looping command that processes each node returned from the
         XPath selection criteria.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:generic-element-type">
        <xs:sequence>
          <xs:element ref="xsl:sort" minOccurs="0" maxOccurs="unbounded"/>
          <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="select" type="xsl:expression" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                    Required.  The XPath selection criteria to be used to retrieve the
                    node set to be processed by the loop.              
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="if" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         A logical construct, that will only be applied when the XPath expression
         test returns true.  It does not support a Else statement, see Choose
         for implementing If/Then/ElseIf logic.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="test" type="xsl:expression" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                    Required.  The XPath expression to test the variable or node against.
                    The statements nested will only be executed if the test returns
                    true.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="import">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Allows the inclusion of one stylesheet into another.  If there are
        templates that are the same in the parent stylesheet that are in the
        stylesheet being imported, the parent stylesheet's templates will 
        take precedence.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:attribute name="href" type="xs:anyURI" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  The URI for the stylesheet.  This is either a relative
                  or physical URI.  If it is relative, it is relative to the location
                  of the stylesheet.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>


<xs:element name="include" substitutionGroup="xsl:declaration">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Include brings in another stylesheet into the current one.  Unlike
         the Import statement, the stylesheet templates have the same precedence
         as the one being included in to.
     </xs:documentation>
  </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xsl:element-only-versioned-element-type">
          <xs:attribute name="href" type="xs:anyURI" use="required">
              <xs:annotation>
                 <xs:documentation source="http://www.w3.org/TR/xslt">
                     Required.  The URI for the stylesheet.  This is either a relative
                     or physical URI.  If it is relative, it is relative to the location
                     of the stylesheet.
                 </xs:documentation>
              </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="key" substitutionGroup="xsl:declaration">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        A key is a way to index a set of nodes to be retrieved later by the XPath
        key() function.  It allows faster access to a series of nodes based off of a
        unique key with in a list of nodes.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>

    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="name" type="xsl:QName" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  The name of the key to be created.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="match" type="xsl:pattern" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  Defines the XPath expression to which the nodes will
                  be applied.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="use" type="xsl:expression" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                    Required.  The value of the key for each of the nodes.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

</xs:element>

<xs:element name="message" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Writes a message to the output, usually stdout or stderro.  Typically
         used to report errors during processing.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="terminate" type="xsl:avt" default="no">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  Indicates whether processing should be ended after
                  producing the message.  The default value is no.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="namespace-alias" substitutionGroup="xsl:declaration">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Allows replacing of a particular namespace from the style sheet to a different
         namespace when writing the result document.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:attribute name="stylesheet-prefix" type="xsl:prefix-or-default" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  Specifies the name of the prefix you want to change.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="result-prefix" type="xsl:prefix-or-default" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  Specifies the name of the prefix the result is to use.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="number" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Used to determine the integer position of the current node.  Also used
        in formatting a number.     
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:generic-element-type">
        <xs:attribute name="value" type="xsl:expression">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  A number provided by the implementor instead of
                  a system generated number.  The position() xpath function can
                  be used as well.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="level" type="xsl:level" default="single">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Specifies how the sequence number is assigned.  Valid values
                 are single (default), multiple, and any.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="count" type="xsl:pattern">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  An XPath expression that indicates what nodes are to be
                 counted.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="from" type="xsl:pattern">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  An XPath expression that indicates where counting will start.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="format" type="xsl:avt" default="1">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  The format string in which the number is to be formatted.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lang" type="xsl:avt">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  The language code used to indicate what spoken language is
                 to be used for the format string.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="letter-value" type="xsl:avt">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  Specifies whether the number is alphabetical or traditional.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="grouping-separator" type="xsl:avt">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The character to be used to seperate a group of numbers.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="grouping-size" type="xsl:avt">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. A number indicating the number of digits in a group.  The
                  default is 3.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="otherwise" type="xsl:sequence-constructor">
   <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Otherwise is used to indicate the default action when none of the 
         When tests are true, in a Choose statement.
     </xs:documentation>
   </xs:annotation>
</xs:element>

<xs:element name="output" substitutionGroup="xsl:declaration">
   <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Specifies the format for the result document.
     </xs:documentation>
   </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:generic-element-type">
        <xs:attribute name="method" type="xsl:method">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  Valid values are xml, html, and text.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cdata-section-elements" type="xsl:QNames">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. A space separated list of elements whose content should
                 be wrapped with CDATA.                
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="doctype-public" type="xs:string">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Sets the value of the Public doctype attribute.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="doctype-system" type="xs:string">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Sets the value of the System doctype attribute.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="encoding" type="xs:string">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Specifies the type of encoding to use.  i.e. UTF-8, UTF-16, etc.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="indent" type="xsl:yes-or-no">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Should the result document be pretty-printed.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="media-type" type="xs:string">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The mime type of the result document.  i.e. text/xml
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="omit-xml-declaration" type="xsl:yes-or-no">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  Whether the xml declation should be created in the 
                  result document.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="standalone" type="xsl:yes-or-no-or-omit">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Indicates if a standalone declartion should occcur in the
                 result document.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="version" type="xs:NMTOKEN">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. Sets the W3C version number to be used with the
                 result document.  Only used for HTML or XML output.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="param">
     <xs:annotation>
        <xs:documentation source="http://www.w3.org/TR/xslt">
            Used to declare a local or global parameter.
        </xs:documentation>
     </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="name" type="xsl:QName" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  The name of the parameter to be created.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="select" type="xsl:expression">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  An XPath expression to be used to populate the parameter
                  if nothing is passed to it.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>


<xs:element name="preserve-space" substitutionGroup="xsl:declaration">
   <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Indicates the elements that are to have white space preserved when
         creating the result document.
     </xs:documentation>
   </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:attribute name="elements" type="xsl:nametests" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  A space seperated list of elements in which
                  white space is significant and should be preserved when
                  creating the result document.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="processing-instruction" substitutionGroup="xsl:instruction">
   <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         Creates a processing instruction in the result document.
     </xs:documentation>
   </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="name" type="xsl:avt" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Required.  The name of the processing instruction to be created.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="sort">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Sorts the output of the node set.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="select" type="xsl:expression">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  Specifies the XPath expression to be used to create the nodeset
                 to be sorted.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>  
        <xs:attribute name="lang" type="xsl:avt">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. The language code to be used for sorting.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>        
        <xs:attribute name="data-type" type="xsl:avt" default="text">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The type of data that is being sorted. The default
                  is text.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>        
        <xs:attribute name="order" type="xsl:avt" default="ascending">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The order in which the data is to be sorted.  The
                  default is ascending.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>        
        <xs:attribute name="case-order" type="xsl:avt">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  Specifies if upper or lowercase letters are to 
                  be sorted first.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="strip-space" substitutionGroup="xsl:declaration">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Defines which elements are to have white space stripped when
        writing the result document.     
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:element-only-versioned-element-type">
        <xs:attribute name="elements" type="xsl:nametests" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Required.  A space separeated list of elements are to have
                 white space removed when writing the result document.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="stylesheet" substitutionGroup="xsl:transform">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         The root element of a style sheet.  Also see the transform element.
         Either stylesheet or transform can be used.  Typically stylsheet is
         used.
     </xs:documentation>
  </xs:annotation>
</xs:element>

<xs:element name="template" substitutionGroup="xsl:declaration">
   <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        A template contains processing instructions and commands for nodes in the
        input document that match the specified XPath expression.
     </xs:documentation>
   </xs:annotation>
  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:generic-element-type">
        <xs:sequence>
          <xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/>
          <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="match" type="xsl:pattern">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional. An XPath expression or expressions that this template will
                 be applied to.  Note if this is omitted, then a name attribute must
                 be used.  Either a namoe or a match are to be used, but not both.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="priority" type="xs:decimal">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  Indicates the numeric priortity for processing the
                  template.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mode" type="xsl:modes">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The name of the mode for this template.  Used to match
                  up with the apply-templates mode attribute.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="xsl:QName">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The name of a called template.  Note that if name is
                  not used, then match must be used.  You can have one or the other
                  but not both.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:complexType name="text-element-base-type">
  <xs:simpleContent>
    <xs:restriction base="xsl:generic-element-type">

      <xs:simpleType>
        <xs:restriction base="xs:string"/>
      </xs:simpleType>
      <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:restriction>
  </xs:simpleContent>
</xs:complexType>

<xs:element name="text" substitutionGroup="xsl:instruction">
   <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Writes text data to the output.  i.e. #PCData
     </xs:documentation>
   </xs:annotation>
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xsl:text-element-base-type">
        <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  Indicates if non friendly html and xml content should be converted
                 to their entity types.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

<xs:complexType name="transform-element-base-type">
  <xs:complexContent>
    <xs:extension base="xsl:element-only-versioned-element-type">
      <xs:attribute name="version" type="xs:decimal" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Required.  The version number corresponding the the
                 XSLT specification being used.  For XSLT 1.0, this will
                 be 1.0.
              </xs:documentation>
           </xs:annotation>
      </xs:attribute>
      <xs:attribute name="exclude-result-prefixes" type="xsl:prefix-list" use="optional">
      	<xs:annotation>
      		<xs:documentation source="http:/www.w3.org/TR/xslt">
      			Optional. A list of namespace prefixes to exclude from the result document. #default excludes the default namespace.
      		</xs:documentation>
      	</xs:annotation>
      </xs:attribute>
      <xs:attribute name="extension-element-prefixes" type="xsl:prefix-list" use="optional">
         <xs:annotation>
            <xs:documentation source="http:/www.w3.org/TR/xslt">
               Optional.  A list of extension namespace prefixes.  This is used to identify namespaces that
               contain XSLT processor extensions.  #default can be used to specify the default namespace.
            </xs:documentation>
         </xs:annotation>
      </xs:attribute>
      <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:element name="transform">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         The root element of a style sheet.  Also see the stylesheet element.
         Either stylesheet or transform can be used.  Typically stylsheet is
         used.
     </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="xsl:transform-element-base-type">
        <xs:sequence>
          <xs:element ref="xsl:import" minOccurs="0" maxOccurs="unbounded"/>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="xsl:declaration"/>
            <xs:element ref="xsl:variable"/>
            <xs:element ref="xsl:param"/>              
            <xs:any namespace="##other" processContents="skip"/> <!-- weaker than XSLT 1.0 -->
          </xs:choice>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Optional.  A unique ID for the stylesheet.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="value-of" substitutionGroup="xsl:instruction">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Used to pull the data value from the selected node or XPath expression.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="select" type="xsl:expression" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Required.  The XPath expression or current node to be used
                 to pull the data from.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disable-output-escaping" type="xsl:yes-or-no" default="no">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional. Whether non-xml friendly data should be entity escaped.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="variable">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Declares a local or global variable to be used during processing.
        The contents of variable can be populated by either a series of
        XSLT commands or XPath expressions.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="name" type="xsl:QName" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 Required.  The name of the variable.  This is how the
                 variable is accessed later in the stylesheet.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="select" type="xsl:expression" use="optional">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  The XPath expression in which the variable is
                  populated from.  This specifies where the variable is to get
                  it's data value from.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="when">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
         A conditional statement similiar to an if statement, used to test
         if a particular expression is true or false.  Use with the Choose and
         Other wise elements.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="test" type="xsl:expression" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                 An XPath expression that tests to true or false.  If true
                 the statements within are executed.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<xs:element name="with-param">
  <xs:annotation>
     <xs:documentation source="http://www.w3.org/TR/xslt">
        Defines the value of a parameter to be passed to a called template.
     </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:complexContent mixed="true">
      <xs:extension base="xsl:sequence-constructor">
        <xs:attribute name="name" type="xsl:QName" use="required">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Required.  The name of the parameter to be set.  This
                  must exist in the template that is being called.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
        <xs:attribute name="select" type="xsl:expression">
           <xs:annotation>
              <xs:documentation source="http://www.w3.org/TR/xslt">
                  Optional.  An XPath expression that is used to set
                  the value for the parameter being passed to a template.
              </xs:documentation>
           </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
  <xs:documentation>
    PART C: definition of literal result elements
    
    There are three ways to define the literal result elements
    permissible in a stylesheet.
    
    (a) do nothing. This allows any element to be used as a literal
        result element, provided it is not in the XSLT namespace
    
    (b) declare all permitted literal result elements as members
        of the xsl:literal-result-element substitution group
        
    (c) redefine the model group xsl:result-elements to accommodate
        all permitted literal result elements.
        
    Literal result elements are allowed to take certain attributes
    in the XSLT namespace. These are defined in the attribute group
    literal-result-element-attributes, which can be included in the
    definition of any literal result element.
    
  </xs:documentation>

</xs:annotation>   
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<xs:element name="literal-result-element" abstract="true" type="xs:anyType"/>

<xs:attributeGroup name="literal-result-element-attributes">
  <xs:attribute name="default-collation" form="qualified" type="xsl:uri-list"/>
  <xs:attribute name="extension-element-prefixes" form="qualified" type="xsl:prefixes"/>
  <xs:attribute name="exclude-result-prefixes" form="qualified" type="xsl:prefixes"/>
  <xs:attribute name="xpath-default-namespace" form="qualified" type="xs:anyURI"/>    
  <xs:attribute name="inherit-namespaces" form="qualified" type="xsl:yes-or-no" default="yes"/>
  <xs:attribute name="use-attribute-sets" form="qualified" type="xsl:QNames" default=""/>

  <xs:attribute name="use-when" form="qualified" type="xsl:expression"/>
  <xs:attribute name="version" form="qualified" type="xs:decimal"/>
  <xs:attribute name="type" form="qualified" type="xsl:QName"/>
  <xs:attribute name="validation" form="qualified" type="xsl:validation-type"/>
</xs:attributeGroup>

<xs:group name="result-elements">
  <xs:choice>
    <xs:element ref="xsl:literal-result-element"/>
    <xs:any namespace="##other" processContents="skip"/>

    <xs:any namespace="##local" processContents="skip"/>
  </xs:choice>
</xs:group>


<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:annotation>
  <xs:documentation>
    PART D: definitions of simple types used in stylesheet attributes 
  </xs:documentation>
</xs:annotation>   
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<xs:simpleType name="avt">
  <xs:annotation>
    <xs:documentation>
      This type is used for all attributes that allow an attribute value template.
      The general rules for the syntax of attribute value templates, and the specific
      rules for each such attribute, are described in the XSLT 2.0 Recommendation.
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:string"/>
</xs:simpleType>

<xs:simpleType name="char">
  <xs:annotation>

    <xs:documentation>
      A string containing exactly one character.
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:string">
    <xs:length value="1"/>
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="expression">
  <xs:annotation>

    <xs:documentation>
      An XPath 2.0 expression.
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:token">
    <xs:pattern value=".+"/>
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="input-type-annotations-type">
  <xs:annotation>

    <xs:documentation>
      Describes how type annotations in source documents are handled.
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:token">
    <xs:enumeration value="preserve"/>
    <xs:enumeration value="strip"/>   
    <xs:enumeration value="unspecified"/>        
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="level">
  <xs:annotation>
    <xs:documentation>
      The level attribute of xsl:number: 
      one of single, multiple, or any.
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:NCName">
    <xs:enumeration value="single"/>
    <xs:enumeration value="multiple"/>
    <xs:enumeration value="any"/>

  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="mode">
  <xs:annotation>
    <xs:documentation>
      The mode attribute of xsl:apply-templates: 
      either a QName, or #current, or #default.
    </xs:documentation>
  </xs:annotation>
  <xs:union memberTypes="xsl:QName">
    <xs:simpleType>

      <xs:restriction base="xs:token">
        <xs:enumeration value="#default"/>
        <xs:enumeration value="#current"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>

<xs:simpleType name="modes">
  <xs:annotation>

    <xs:documentation>
      The mode attribute of xsl:template: 
      either a list, each member being either a QName or #default;
      or the value #all
    </xs:documentation>
  </xs:annotation>
  <xs:union>
    <xs:simpleType>
      <xs:list>
        <xs:simpleType>
          <xs:union memberTypes="xsl:QName">

            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="#default"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:list>
    </xs:simpleType>

    <xs:simpleType>
      <xs:restriction base="xs:token">
        <xs:enumeration value="#all"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>

<xs:simpleType name="nametests">
  <xs:annotation>

    <xs:documentation>
      A list of NameTests, as defined in the XPath 2.0 Recommendation.
      Each NameTest is either a QName, or "*", or "prefix:*", or "*:localname"
    </xs:documentation>
  </xs:annotation>
  <xs:list>
    <xs:simpleType>
      <xs:union memberTypes="xsl:QName">
        <xs:simpleType>
          <xs:restriction base="xs:token">

            <xs:enumeration value="*"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:pattern value="\i\c*:\*"/>
            <xs:pattern value="\*:\i\c*"/>            
          </xs:restriction>
        </xs:simpleType>

      </xs:union>
    </xs:simpleType>
  </xs:list>
</xs:simpleType>

<xs:simpleType name="prefixes">
  <xs:list itemType="xs:NCName"/>
</xs:simpleType>

<xs:simpleType name="prefix-list-or-all">
  <xs:union memberTypes="xsl:prefix-list">
    <xs:simpleType>

      <xs:restriction base="xs:token">
        <xs:enumeration value="#all"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>
      
<xs:simpleType name="prefix-list">
  <xs:list itemType="xsl:prefix-or-default"/>
</xs:simpleType>

<xs:simpleType name="method">
  <xs:annotation>
    <xs:documentation>
      The method attribute of xsl:output:
      Either one of the recognized names "xml", "xhtml", "html", "text",
      or a QName that must include a prefix.
    </xs:documentation>
  </xs:annotation>
  <xs:union>
    <xs:simpleType>
      <xs:restriction base="xs:NCName">
        <xs:enumeration value="xml"/>

        <xs:enumeration value="xhtml"/>
        <xs:enumeration value="html"/>
        <xs:enumeration value="text"/>
      </xs:restriction>
    </xs:simpleType>
    <xs:simpleType>
      <xs:restriction base="xsl:QName">
        <xs:pattern value="\c*:\c*"/>
      </xs:restriction>

    </xs:simpleType>
  </xs:union>
</xs:simpleType>

<xs:simpleType name="pattern">
  <xs:annotation>
    <xs:documentation>
      A match pattern as defined in the XSLT 2.0 Recommendation.
      The syntax for patterns is a restricted form of the syntax for
      XPath 2.0 expressions.
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xsl:expression"/>

</xs:simpleType>

<xs:simpleType name="prefix-or-default">
  <xs:annotation>
    <xs:documentation>
      Either a namespace prefix, or #default.
      Used in the xsl:namespace-alias element.
    </xs:documentation>
  </xs:annotation>
  <xs:union memberTypes="xs:NCName">
    <xs:simpleType>
      <xs:restriction base="xs:token">

        <xs:enumeration value="#default"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>

<xs:simpleType name="QNames">
  <xs:annotation>
    <xs:documentation>
      A list of QNames.
      Used in the [xsl:]use-attribute-sets attribute of various elements,
      and in the cdata-section-elements attribute of xsl:output
    </xs:documentation>

  </xs:annotation>
  <xs:list itemType="xsl:QName"/>          
</xs:simpleType>

<xs:simpleType name="QName">
  <xs:annotation>
    <xs:documentation>
      A QName.
      This schema does not use the built-in type xs:QName, but rather defines its own
      QName type. Although xs:QName would define the correct validation on these attributes,
      a schema processor would expand unprefixed QNames incorrectly when constructing the PSVI,
      because (as defined in XML Schema errata) an unprefixed xs:QName is assumed to be in
      the default namespace, which is not the correct assumption for XSLT.
      The data type is defined as a restriction of the built-in type Name, restricted
      so that it can only contain one colon which must not be the first or last character.
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:Name">

    <xs:pattern value="([^:]+:)?[^:]+"/>      
  </xs:restriction>        
</xs:simpleType>

<xs:simpleType name="sequence-type">
  <xs:annotation>
    <xs:documentation>
      The description of a data type, conforming to the
      SequenceType production defined in the XPath 2.0 Recommendation
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:token">

    <xs:pattern value=".+"/>      
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="uri-list">
  <xs:list itemType="xs:anyURI"/>
</xs:simpleType>

<xs:simpleType name="validation-strip-or-preserve">
  <xs:annotation>
    <xs:documentation>
      Describes different ways of type-annotating an element or attribute.
    </xs:documentation>

  </xs:annotation>
  <xs:restriction base="xsl:validation-type">
    <xs:enumeration value="preserve"/>
    <xs:enumeration value="strip"/>    
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="validation-type">
  <xs:annotation>
    <xs:documentation>
      Describes different ways of type-annotating an element or attribute.
    </xs:documentation>

  </xs:annotation>
  <xs:restriction base="xs:token">
    <xs:enumeration value="strict"/>
    <xs:enumeration value="lax"/>
    <xs:enumeration value="preserve"/>
    <xs:enumeration value="strip"/>    
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="yes-or-no">
  <xs:annotation>

    <xs:documentation>
      One of the values "yes" or "no".
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:token">
    <xs:enumeration value="yes"/>
    <xs:enumeration value="no"/>
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="yes-or-no-or-omit">
  <xs:annotation>
    <xs:documentation>
      One of the values "yes" or "no" or "omit".
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:token">
    <xs:enumeration value="yes"/>
    <xs:enumeration value="no"/>
    <xs:enumeration value="omit"/>

  </xs:restriction>
</xs:simpleType>

</xs:schema>
