|  | <?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 | 
|  | ******************************************************************************* | 
|  | ******************************************************************************* | 
|  | * 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="‰"> | 
|  | <xs:annotation> | 
|  | <xs:documentation source="http://www.w3.org/TR/xslt"> | 
|  | Optional.  The character to be used to represet per thousand. | 
|  | The default is ‰ | 
|  | </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:prefixes" 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. | 
|  | </xs:documentation> | 
|  | </xs:annotation> | 
|  | </xs:attribute> | 
|  | <xs:attribute name="extension-element-prefixes" type="xsl:prefixes" 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. | 
|  | </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> |