home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema elementFormDefault="qualified" targetNamespace="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xs:annotation>
- <xs:documentation> 2004-07-28, George Bina, SyncRO Soft Ltd. (oXygen XML Editor) added annotations for elements
- and attributes. Copyright © 2002-2004 SyncRO Soft Ltd. All rights reserved. </xs:documentation>
- </xs:annotation>
-
- <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
- <xs:element name="apply-imports">
- <xs:annotation>
- <xs:documentation> The xsl:apply-imports element is used in conjunction with imported stylesheets. At
- run-time, there must be a current template. A current template is established when a template is
- activated as a result of a call on xsl:apply-templates. Calling xsl:call-template does not change the
- current template. Calling xsl:for-each does not cause the current template to become null. The effect is
- to search for a template that matches the current node and that is defined in a stylesheet that was
- imported (directly or indirectly, possibly via xsl:include) from the stylesheet containing the current
- template, and whose mode matches the current mode. If there is such a template, it is activated using
- the current node. If not, the call on xsl:apply-imports has no effect. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="apply-templates">
- <xs:annotation>
- <xs:documentation> The xsl:apply-templates element causes navigation from the current element, usually but
- not necessarily to process its children. Each selected node is processed using the best-match
- xsl:template defined for that node. In the absence of a select attribute, the xsl:apply-templates
- instruction processes all of the children of the current node, including text nodes. However, text nodes
- that have been stripped will not be processed. If stripping of whitespace nodes has not been enabled for
- an element, then all whitespace in the content of the element will be processed as text, and thus
- whitespace between child elements will count in determining the position of a child element as returned
- by the position function. A select attribute can be used to process nodes selected by an expression
- instead of processing all children. The value of the select attribute is an expression. The expression
- must evaluate to a node-set. The selected set of nodes is processed in document order, unless a sorting
- specification is present </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="sort"/>
- <xs:element ref="with-param"/>
- </xs:choice>
- <xs:attribute default="node()" name="select" type="xs:string">
- <xs:annotation>
- <xs:documentation>A select attribute can be used to process nodes selected by an expression instead
- of processing all children. The value of the select attribute must be a node-set expression.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="mode" type="xs:QName">
- <xs:annotation>
- <xs:documentation> The optional mode attribute identifies the processing mode. If this attribute is
- present, only templates with a matching mode parameter will be considered when searching for the
- rule to apply to the selected elements. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="attribute">
- <xs:annotation>
- <xs:documentation> The xsl:attribute element is used to add an attribute value to an xsl:element element or
- general formatting element, or to an element created using xsl:copy. The attribute must be output
- immediately after the element, with no intervening character data. The name of the attribute is
- indicated by the name attribute and the value by the content of the xsl:attribute element. </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- </xs:choice>
- <xs:attribute name="name" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The name attribute is interpreted as an attribute value template, so it may
- contain string expressions within curly braces. It is an error if the string that results from
- instantiating the attribute value template is not a QName or is the string xmlns. If the
- namespace attribute is not present, then the QName is expanded into an expanded-name using the
- namespace declarations in effect for the xsl:attribute element, not including any default
- namespace declaration. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="namespace" type="xs:string">
- <xs:annotation>
- <xs:documentation>If the namespace attribute is present, then it also is interpreted as an attribute
- value template. The string that results from instantiating it should be a URI reference. It is
- not an error if the string is not a syntactically legal URI reference. If the string is empty,
- then the expanded-name of the attribute has a null namespace URI. Otherwise, the string is used
- as the namespace URI of the expanded-name of the attribute to be created. The local part of the
- QName specified by the name attribute is used as the local part of the expanded-name of the
- attribute to be created. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="attribute-set">
- <xs:annotation>
- <xs:documentation>The xsl:attribute-set element is used to declare a named collection of attributes, which
- will often be used together to define an output style. The attributes in an attribute-set can be used in
- several ways: they can be added to a literal result element, they can be added to an element created
- using xsl:element or xsl:copy or to base an attribute set on another one.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="attribute"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:QName" use="required">
- <xs:annotation>
- <xs:documentation>The name attribute specifies the name of the attribute set. Each name is specified
- as a QName.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="use-attribute-sets" type="xs:NMTOKENS">
- <xs:annotation>
- <xs:documentation> One attribute set can be based on another by specifying use-attribute-sets in the
- list of attributes for the xsl:attribute-set element. The value of the use-attribute-sets
- attribute is a whitespace-separated list of names of attribute sets. Attributes defined
- explicitly in the attribute set override any that are included implicitly from another attribute
- set. Attribute sets named in use-attribute-sets attribute are applied in the order given: if the
- same attribute is generated more than once, the later value always takes precedence. It is an
- error if use of use-attribute-sets attributes on xsl:attribute-set elements causes an attribute
- set to directly or indirectly use itself. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="call-template">
- <xs:annotation>
- <xs:documentation>The xsl:call-template element is used to invoke a named template. Unlike
- xsl:apply-templates, xsl:call-template does not change the current node or the current node list.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="with-param"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:QName" use="required">
- <xs:annotation>
- <xs:documentation>The name of the invoked template. It's value must be a valid QName that identifies
- a named template somewhere in the stylesheet.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="choose">
- <xs:annotation>
- <xs:documentation>The xsl:choose element is used to choose one of a number of alternative outputs. The
- element typically contains a number of xsl:when elements, each with a separate test condition. The first
- xsl:when element whose condition matches the current element in the source document is expanded, the
- others are ignored. If none of the conditions is satisfied, the xsl:otherwise child element, if any, is expanded.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="1" ref="when"/>
- <xs:element maxOccurs="1" minOccurs="0" ref="otherwise"/>
- </xs:sequence>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="comment">
- <xs:annotation>
- <xs:documentation>The xsl:comment element indicates text that is to be output to the current output stream
- in the form of an XML or HTML comment. Note that special characters occurring within the comment text
- will not be escaped.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- </xs:choice>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="copy">
- <xs:annotation>
- <xs:documentation> The xsl:copy element causes the current XML node in the source document to be copied to
- the output. The namespace nodes of the current node are automatically copied as well, but the attributes
- and children of the node are not automatically copied. </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute name="use-attribute-sets" type="xs:NMTOKENS">
- <xs:annotation>
- <xs:documentation> Attributes of the generated element can be defined by reference to a named
- attribute set. The optional use-attribute-sets attribute contains a white-space-separated list
- of attribute set names. Each name is specified as a QName. They are applied in the order given:
- if the same attribute is generated more than once, the later value always takes precedence. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="copy-of">
- <xs:annotation>
- <xs:documentation> The xsl:copy-of element copies of the value of the expression in the mandatory select
- attribute to the result tree If this expression is a string, a number, or a boolean, the effect is the
- same as using xsl:value-of. It is usually used where the value is a nodeset or a result tree fragment. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="select" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation> Defines the expression the xsl:copy-of is applied on. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="decimal-format">
- <xs:annotation>
- <xs:documentation> The xsl:decimal-format element is used to indicate a set of localisation parameters. If
- the xsl:decimal-format element has a name attribute, it identifies a named format; if not, it identifies
- the default format. In practice decimal formats are used only for formatting numbers using the
- format-number() function in XSL expressions. It is an error to declare either the default decimal-format
- or a decimal-format with a given name more than once (even with different import precedence), unless it
- is declared every time with the same value for all attributes (taking into account any default values). </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="name" type="xs:QName">
- <xs:annotation>
- <xs:documentation>The name attribute declares a named decimal-format. The value of the name
- attribute is a QName. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="." name="decimal-separator" type="xs:string">
- <xs:annotation>
- <xs:documentation>The decimal-separator attribute specifies the character used for the decimal sign;
- the default value is the period character (.). </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="," name="grouping-separator" type="xs:string">
- <xs:annotation>
- <xs:documentation>The grouping-separator attribute specifies the character used as a grouping (e.g.
- thousands) separator; the default value is the comma character (,). </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="Infinity" name="infinity" type="xs:string">
- <xs:annotation>
- <xs:documentation>The infinity attribute specifies the string used to represent infinity; the
- default value is the string Infinity.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="-" name="minus-sign" type="xs:string">
- <xs:annotation>
- <xs:documentation>The minus-sign attribute specifies the character used as the default minus sign;
- the default value is the hyphen-minus character (-, #x2D).</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="NaN" name="NaN" type="xs:string">
- <xs:annotation>
- <xs:documentation>The NaN attribute specifies the string used to represent the NaN value; the
- default value is the string NaN.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="%" name="percent" type="xs:string">
- <xs:annotation>
- <xs:documentation>The percent attribute specifies the character used as a percent sign; the default
- value is the percent character (%).</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="‰" name="per-mille" type="xs:string">
- <xs:annotation>
- <xs:documentation>The per-mille attribute specifies the character used as a per mille sign; the
- default value is the Unicode per-mille character (#x2030). </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="0" name="zero-digit" type="xs:string">
- <xs:annotation>
- <xs:documentation>The zero-digit attribute specifies the character used as the digit zero; the
- default value is the digit zero (0).</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="#" name="digit" type="xs:string">
- <xs:annotation>
- <xs:documentation>The digit attribute specifies the character used for a digit in the format
- pattern; the default value is the number sign character (#). </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default=";" name="pattern-separator" type="xs:string">
- <xs:annotation>
- <xs:documentation>The pattern-separator attribute specifies the character used to separate positive
- and negative sub patterns in a pattern; the default value is the semi-colon character (;).</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="element">
- <xs:annotation>
- <xs:documentation> The xsl:element is used to create an output element whose name might be calculated at
- run-time. The expanded-name of the element to be created is specified by a required name attribute and
- an optional namespace attribute. The attributes of the generated element are defined by subsequent
- xsl:attribute elements. The content of the generated element is whatever is generated between the
- <xsl:element> and </xsl:element> tags.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute name="name" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation> The name attribute is the name of the generated element. The name attribute is an
- attribute value template, so it may contain string expressions inside curly braces. It is an
- error if the string that results from instantiating the attribute value template is not a QName. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="namespace" type="xs:string">
- <xs:annotation>
- <xs:documentation>If the namespace attribute is present, then it is interpreted as an attribute
- value template. The string that results from instantiating the attribute value template should
- be a URI reference. It is not an error if the string is not a syntactically legal URI reference.
- If the string is empty, then the expanded-name of the element has a null namespace URI.
- Otherwise, the string is used as the namespace URI of the expanded-name of the element to be
- created. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="use-attribute-sets" type="xs:NMTOKENS">
- <xs:annotation>
- <xs:documentation>Attributes of the generated element can be defined by reference to a named
- attribute set. The optional use-attribute-sets attribute contains a white-space-separated list
- of attribute set names. They are applied in the order given: if the same attribute is generated
- more than once, the later value always takes precedence.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="fallback">
- <xs:annotation>
- <xs:documentation> The xsl:fallback element is used to define recovery action to be taken when an
- instruction element is used in the stylesheet and no implentation of that element is available. An
- element is an instruction element if its namespace URI is the standard URI for XSL elements or if its
- namespace is identified in the xsl:extension-element-prefixes attribute of a containing literal result
- element, or in the extension-element-prefixes attribute of the xsl:stylesheet element. If the
- xsl:fallback element appears in any other context, it is ignored, together with all its child and
- descendant elements. If the parent element can be instantiated and processed, the xsl:fallback element
- and its descendants are ignored. If the parent element is not recognised of if any failure occurs
- instantiating it, all its xsl:fallback children are processed in turn. If there are no xsl:fallback
- children, an error is reported. </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="for-each">
- <xs:annotation>
- <xs:documentation> The xsl:for-each element causes iteration over the nodes selected by a node-set
- expression. It can be used as an alternative to xsl:apply-templates where the child nodes of the current
- node are known in advance. The xsl:for-each instruction contains a template, which is instantiated for
- each node selected by the expression specified by the select attribute. The template is instantiated
- with the selected node as the current node, and with a list of all of the selected nodes as the current
- node list. The nodes are processed in document order, unless a sorting specification is present </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- <xs:element ref="sort"/>
- </xs:choice>
- <xs:attribute name="select" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The select attribute defines the node set the xsl:for-each applies on. The XSL
- statements subordinate to the xsl:for-each element are applied to each source node seleced by
- the node-set expression in turn.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="if">
- <xs:annotation>
- <xs:documentation>The xsl:if element is used for conditional processing. It takes a mandatory test
- attribute, whose value is a boolean expression. The contents of the xsl:if element are expanded only of
- the expression is true.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute name="test" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>Specifies the test boolean expression. The contents of the xsl:if element are
- expanded only of the expression is true.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="import">
- <xs:annotation>
- <xs:documentation> The xsl:import element is always used at the top level of the stylesheet, and it must
- appear before all other elements at the top level. It has a mandatory href attribute, which is a URI
- (absolute or relative) of another stylesheet to be textually included within this one. The top-level
- elements of the included stylesheet effectively replace the xsl:import element. The elements in the
- imported stylesheet have lower precedence than the elements in the importing stylesheet. The main effect
- of this is on selection of a template when xsl:apply-templates is used: if there is a matching template
- with precedence X, all templates with precedence less than X are ignored, regardless of their priority.
- It is an error if a stylesheet directly or indirectly imports itself. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="href" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The href attribute value is a URI reference identifying the stylesheet to be
- imported. A relative URI is resolved relative to the base URI of the xsl:import element.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="include">
- <xs:annotation>
- <xs:documentation>The xsl:include element is only allowed as a top-level element. The inclusion works at the
- XML tree level. The resource located by the href attribute value is parsed as an XML document, and the
- children of the xsl:stylesheet element in this document replace the xsl:include element in the including
- document. The fact that template rules or definitions are included does not affect the way they are
- processed. It is an error if a stylesheet directly or indirectly includes itself. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="href" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The href attribute value is a URI reference identifying the stylesheet to be
- included. A relative URI is resolved relative to the base URI of the xsl:import element.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="key">
- <xs:annotation>
- <xs:documentation> The xsl:key element is used at the top level of the stylesheet to declare an attribute,
- or other value, that may be used as a key to identify nodes using the key() function within an
- expression. Each xsl:key definition declares a named key, which must match the name of the key used in
- the key() function. Keys are not unique: the same value may identify many different nodes. Keys are
- multi-valued: each matched node may have several (zero or more) values of the key, any one of which may
- be used to locate that node. Keys can only be used to identify nodes within a single XML document: the
- key() function will return nodes that are in the same document as the current node. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="name" type="xs:QName" use="required">
- <xs:annotation>
- <xs:documentation>The name attribute specifies the name of the key. The value of the name attribute
- is a QName. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="match" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The set of nodes to which the key applies is defined by a pattern in the match attribute.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="use" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation> The value of the key, for each of these matched elements, is determined by the
- use attribute. This is an expression, which is evaluated for each matched element. If the
- expression returns a node-set, the string value of each node in this node-set acts as a key
- value. If the expression returns any other value, the value is converted to a string and that
- string acts as the key. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="message">
- <xs:annotation>
- <xs:documentation>The xsl:message element sends a message in a way that is dependent on the XSLT processor.
- The message is the contents of the xsl:message element.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute default="no" name="terminate">
- <xs:annotation>
- <xs:documentation>The terminate attribute has as permitted values yes and no. If the value is set to
- yes, processing of the stylesheet is terminated after issuing the message. The default value is no.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="yes"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="namespace-alias">
- <xs:annotation>
- <xs:documentation> The xsl:namespace-alias element is a top-level element that is used to control the
- mapping between a namespace URI used in the stylesheet and the corresponding namespace URI used in the
- result document. Normally when a literal result element is encountered in a template, the namespace used
- for the element name and attribute names in the result document is the same as the namespace used in the
- stylesheet. If a different namespace is wanted (e.g. because the result document is a stylesheet using
- the XSLT namespace), then xsl:namespace-alias can be used to define the mapping. The xsl:namespace-alias
- element declares that the namespace URI bound to the prefix specified by the stylesheet-prefix attribute
- is an alias for the namespace URI bound to the prefix specified by the result-prefix attribute. Thus,
- the stylesheet-prefix attribute specifies the namespace URI that will appear in the stylesheet, and the
- result-prefix attribute specifies the corresponding namespace URI that will appear in the result tree.
- The default namespace (as declared by xmlns) may be specified by using #default instead of a prefix. If
- a namespace URI is declared to be an alias for multiple different namespace URIs, then the declaration
- with the highest import precedence is used.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="stylesheet-prefix" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The stylesheet-prefix attribute specifies the namespace URI that will appear in
- the stylesheet.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="result-prefix" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The result-prefix attribute specifies the corresponding namespace URI that will
- appear in the result tree. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="number">
- <xs:annotation>
- <xs:documentation>The xsl:number element is used to insert a formatted number into the result tree. The
- number to be inserted may be specified by an expression. The value attribute contains an expression. The
- expression is evaluated and the resulting object is converted to a number as if by a call to the number
- function. If no value attribute is specified, then the xsl:number element inserts a number based on the
- position of the current node in the source tree. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute default="single" name="level">
- <xs:annotation>
- <xs:documentation>The level attribute specifies what levels of the source tree should be considered
- for counting; it has the values single, multiple or any. The default is single. </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="single"/>
- <xs:enumeration value="multiple"/>
- <xs:enumeration value="any"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="count" type="xs:string">
- <xs:annotation>
- <xs:documentation>The count attribute value is a pattern indicating which nodes to count; the
- default is to match all nodes of the same type and name as the current node. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="from" type="xs:string">
- <xs:annotation>
- <xs:documentation>The from attribute is a pattern that specifies where counting starts. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="value" type="xs:string">
- <xs:annotation>
- <xs:documentation>The value attribute contains an expression. The expression is evaluated and the
- resulting object is converted to a number as if by a call to the number function. If this
- attribute is present, the other attributes are ignored. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="1" name="format" type="xs:string">
- <xs:annotation>
- <xs:documentation> The format attribute controls the output format. This contains an alternating
- sequence of format-tokens and punctuation-tokens. A format-token is any sequence of alphanumeric
- characters, a punctuation-token is any other sequence. The default value for the format
- attribute is 1.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="lang" type="xs:string">
- <xs:annotation>
- <xs:documentation>When numbering with an alphabetic sequence, the lang attribute specifies which
- language's alphabet is to be used; it has the same range of values as xml:lang; if no lang value
- is specified, the language should be determined from the system environment. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="letter-value" type="xs:string">
- <xs:annotation>
- <xs:documentation>The letter-value attribute disambiguates between numbering sequences that use
- letters. In many languages there are two commonly used numbering sequences that use letters. One
- numbering sequence assigns numeric values to letters in alphabetic sequence, and the other
- assigns numeric values to each letter in some other manner traditional in that language. In
- English, these would correspond to the numbering sequences specified by the format tokens a and
- i. In some languages, the first member of each sequence is the same, and so the format token
- alone would be ambiguous. A value of alphabetic specifies the alphabetic sequence; a value of
- traditional specifies the other sequence. If the letter-value attribute is not specified, then
- it is implementation-dependent how any ambiguity is resolved. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="grouping-separator" type="xs:string">
- <xs:annotation>
- <xs:documentation>The grouping-separator attribute gives the separator used as a grouping (e.g.
- thousands) separator in decimal numbering sequences, and the optional grouping-size specifies
- the size (normally 3) of the grouping. For example, grouping-separator="," and grouping-size="3"
- would produce numbers of the form 1,000,000. If only one of the grouping-separator and
- grouping-size attributes is specified, then it is ignored. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="grouping-size" type="xs:string">
- <xs:annotation>
- <xs:documentation>The grouping-separator attribute gives the separator used as a grouping (e.g.
- thousands) separator in decimal numbering sequences, and the optional grouping-size specifies
- the size (normally 3) of the grouping. For example, grouping-separator="," and grouping-size="3"
- would produce numbers of the form 1,000,000. If only one of the grouping-separator and
- grouping-size attributes is specified, then it is ignored. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="otherwise">
- <xs:annotation>
- <xs:documentation>The xsl:otherwise element is used within an xsl:choose element to indicate the default
- action to be taken if none of the other choices matches.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="output">
- <xs:annotation>
- <xs:documentation>An XSLT processor may output the result tree as a sequence of bytes, although it is not
- required to be able to do so. The xsl:output element allows stylesheet authors to specify how they wish
- the result tree to be output. If an XSLT processor outputs the result tree, it should do so as specified
- by the xsl:output element; however, it is not required to do so. A stylesheet may contain multiple
- xsl:output elements and may include or import stylesheets that also contain xsl:output elements. All the
- xsl:output elements occurring in a stylesheet are merged into a single effective xsl:output element. For
- the cdata-section-elements attribute, the effective value is the union of the specified values. For
- other attributes, the effective value is the specified value with the highest import precedence. The
- values of attributes are defaulted after the xsl:output elements have been merged; different output
- methods may have different default values for an attribute. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="method" type="xs:QName">
- <xs:annotation>
- <xs:documentation>The method attribute on xsl:output identifies the overall method that should be
- used for outputting the result tree. The value must be a QName. If the QName does not have a
- prefix, then it identifies a method specified in this document and must be one of xml, html or
- text. If the QName has a prefix, then the QName is expanded into an expanded-name; the
- expanded-name identifies the output method.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="version" type="xs:NMTOKEN">
- <xs:annotation>
- <xs:documentation>The version attribute specifies the version of the output method.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="encoding" type="xs:string">
- <xs:annotation>
- <xs:documentation> The encoding attribute specifies the preferred character encoding that the XSLT
- processor should use to encode sequences of characters as sequences of bytes; the value of the
- attribute should be treated case-insensitively; the value must contain only characters in the
- range #x21 to #x7E (i.e. printable ASCII characters); the value should either be a charset
- registered with the Internet Assigned Numbers Authority or start with X-. The default (and
- fallback) is UTF-8.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="omit-xml-declaration">
- <xs:annotation>
- <xs:documentation>The omit-xml-declaration attribute specifies whether the XSLT processor should
- output an XML declaration; the value must be yes or no.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="yes"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="standalone">
- <xs:annotation>
- <xs:documentation>This is used only for XML output: if it is present, a standalone attribute is
- included in the XML declaration, with the value yes or no.</xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="yes"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="doctype-public" type="xs:string">
- <xs:annotation>
- <xs:documentation>This is used only for XML output: it is copied into the DOCTYPE declaration as the
- public identifier. It is ignored if there is no system identifier.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="doctype-system" type="xs:string">
- <xs:annotation>
- <xs:documentation>This is used only for XML output: it is copied into the DOCTYPE declaration as the
- system identifier</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="cdata-section-elements" type="xs:NMTOKENS">
- <xs:annotation>
- <xs:documentation>This is used only for XML output. It is a whitespace-separated list of element
- names. Character data belonging to these output elements will be written within CDATA sections.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="indent">
- <xs:annotation>
- <xs:documentation>The indent attribute specifies whether the XSLT processor may add additional
- whitespace when outputting the result tree; the value must be yes or no. </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="yes"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="media-type" type="xs:string">
- <xs:annotation>
- <xs:documentation>The media-type attribute specifies the media type (MIME content type) of the data
- that results from outputting the result tree; the charset parameter should not be specified
- explicitly; instead, when the top-level media type is text, a charset parameter should be added
- according to the character encoding actually used by the output method.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="param">
- <xs:annotation>
- <xs:documentation>The xsl:param element is used to define a formal parameter to a template, or to the
- stylesheet. As a template parameter, it must be used as an immediate child of the xsl:template element.
- As a stylesheet parameter, it must be used as an immediate child of the xsl:stylesheet element. The
- default value of the parameter may be defined either by a select attribute, or by the contents of the
- xsl:param element, in the same way as for xsl:variable. The default value is ignored if an actual
- parameter is supplied with the same name. </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute name="name" type="xs:QName" use="required">
- <xs:annotation>
- <xs:documentation>The name attribute defines the name of the parameter.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="select" type="xs:string">
- <xs:annotation>
- <xs:documentation>Defines the default value of the parameter. In this case, the content must be
- empty. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="preserve-space">
- <xs:annotation>
- <xs:documentation>The xsl:preserve-space element is used at the top level of the stylesheet to define
- elements in the source document for which white-space nodes are significant and should be retained. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="elements" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The elements attribute is mandatory, and defines a space-separated list of element
- names. The value "*" may be used to mean "all elements"; in this case any elements where
- whitespace is not to be preserved may be indicated by an xsl:strip-space element.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="processing-instruction">
- <xs:annotation>
- <xs:documentation>The xsl:processing-instruction element can appear anywhere within an xsl:template. It
- causes an XML processing instruction to be output. There is a mandatory name attribute which gives the
- name of the PI. The content of the xsl:processing-instruction element is expanded to form the data part
- of the PI. Note that special characters occurring within the PI text will not be escaped.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- </xs:choice>
- <xs:attribute name="name" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>Specifies the name of the processing instruction node. This attribute is
- interpreted as an attribute value template, so it may contain string expressions within curly braces.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="sort">
- <xs:annotation>
- <xs:documentation> The xsl:sort element is used within an xsl:for-each or xsl:apply-templates element to
- indicate the order in which the selected elements are processed. The first xsl:sort child specifies the
- primary sort key, the second xsl:sort child specifies the secondary sort key and so on. When an
- xsl:apply-templates or xsl:for-each element has one or more xsl:sort children, then instead of
- processing the selected nodes in document order, it sorts the nodes according to the specified sort keys
- and then processes them in sorted order. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute default="." name="select" type="xs:string">
- <xs:annotation>
- <xs:documentation> The select attribute (default value ".") is a string expression that calculates
- the sort key. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="lang" type="xs:string">
- <xs:annotation>
- <xs:documentation> The value of the lang attribute can be an ISO language code such as "en"
- (English) or "de" (German). It determines the algorithm used for alphabetic collating. The value
- of lang does not have to be a recognized language code, it is also possible to use values such
- as "month" to select a data-type-specific collating algorithm. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="text" name="data-type">
- <xs:annotation>
- <xs:documentation>The data-type attribute (values "text" or "number") determines whether collating
- is based on alphabetic sequence or numeric sequence. The default value is text. </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="text"/>
- <xs:enumeration value="number"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute default="ascending" name="order">
- <xs:annotation>
- <xs:documentation>The order attribute specifies whether the strings should be sorted in ascending or
- descending order; the default is ascending </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="ascending"/>
- <xs:enumeration value="descending"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="case-order">
- <xs:annotation>
- <xs:documentation>The case-order attribute has the value upper-first or lower-first; this applies
- when data-type="text", and specifies that upper-case letters should sort before lower-case
- letters or vice-versa respectively. For example, if lang="en", then A a B b are sorted with
- case-order="upper-first" and a A b B are sorted with case-order="lower-first". The default value
- is language dependent. </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value="upper-first"/>
- <xs:enumeration value="lower-first"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="strip-space">
- <xs:annotation>
- <xs:documentation>The element is used at the top level of the stylesheet to define elements in the source
- document for which white-space nodes are insignificant and should be removed from the tree before
- processing. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="elements" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The elements attribute is mandatory, and defines a space-separated list of element
- names. The value "*" may be used to mean "all elements"; in this case any elements where
- whitespace is not to be stripped may be indicated by an xsl:preserve-space element.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="stylesheet">
- <xs:annotation>
- <xs:documentation> The xsl:stylesheet element is always the top-level element of an XSL stylesheet. The name
- xsl:transform may be used as a synonym. </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/>
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="include"/>
- <xs:element ref="strip-space"/>
- <xs:element ref="preserve-space"/>
- <xs:element ref="output"/>
- <xs:element ref="key"/>
- <xs:element ref="decimal-format"/>
- <xs:element ref="attribute-set"/>
- <xs:element ref="variable"/>
- <xs:element ref="param"/>
- <xs:element ref="template"/>
- <xs:element ref="namespace-alias"/>
- <xs:any namespace="##other" processContents="lax"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="extension-element-prefixes" type="xs:string">
- <xs:annotation>
- <xs:documentation>A namespace can be designated as an extension namespace by using an
- extension-element-prefixes attribute. The value is a whitespace-separated list of namespace
- prefixes. The namespace bound to each of the prefixes is designated as an extension namespace.
- The default namespace (as declared by xmlns) may be designated as an extension namespace by
- including #default in the list of namespace prefixes. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="exclude-result-prefixes" type="xs:string">
- <xs:annotation>
- <xs:documentation>A namespace URI is designated as an excluded namespace by using an
- exclude-result-prefixes attribute. The value is a whitespace-separated list of namespace
- prefixes. The namespace bound to each of the prefixes is designated as an excluded namespace.
- The default namespace (as declared by xmlns) may be designated as an excluded namespace by
- including #default in the list of namespace prefixes. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="id" type="xs:ID">
- <xs:annotation>
- <xs:documentation/>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="version" type="xs:NMTOKEN" use="required">
- <xs:annotation>
- <xs:documentation>An xsl:stylesheet element must have a version attribute, indicating the version of
- XSLT that the stylesheet requires. For this version of XSLT, the value should be 1.0. When the
- value is not equal to 1.0, forwards-compatible processing mode is enabled.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="template">
- <xs:annotation>
- <xs:documentation>The xsl:template element defines a processing rule for source elements or other nodes of a
- particular type.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- <xs:element ref="param"/>
- </xs:choice>
- <xs:attribute name="match" type="xs:string">
- <xs:annotation>
- <xs:documentation>The match attribute is a pattern that identifies the source node or nodes to which
- the rule applies. The match attribute is required unless the xsl:template element has a name
- attribute. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="name" type="xs:QName">
- <xs:annotation>
- <xs:documentation>An xsl:template element with a name attribute specifies a named template and may
- be invoked directly using xsl:call-template. If an xsl:template element has a name attribute, it
- may, but need not, also have a match attribute. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="priority" type="xs:decimal">
- <xs:annotation>
- <xs:documentation>The priority of a template rule is specified by the priority attribute. The value
- of this must be a real number (positive or negative), the dafault priority is 1. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="mode" type="xs:NMTOKEN">
- <xs:annotation>
- <xs:documentation>The xsl:template element has an optional mode attribute. If this is present, the
- template will only be matched when the same mode is used in the invoking xsl:apply-templates element.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="text">
- <xs:annotation>
- <xs:documentation>The xsl:text element causes its content to be output. The main reasons for enclosing text
- within an xsl:text element is to allow white space to be output. White space nodes in the stylesheet are
- ignored unless they appear immediately within an xsl:text element.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute default="no" name="disable-output-escaping">
- <xs:annotation>
- <xs:documentation>The optional disable-output-escaping attribute may be set to yes or no;
- the default is no. If set to yes, special characters such as "<" and "&"
- will be output as themselves, not as entities. Be aware that in general this can produce
- non-well-formed XML or HTML. It is useful, however, when generating things such as ASP
- or JSP pages. Escaping may not be disabled when writing to a result tree fragment. </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="yes"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="transform">
- <xs:annotation>
- <xs:documentation>The xsl:transform element is always the top-level element of an XSL stylesheet. It is a
- synonym with the generally used xsl:stylesheet element.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/>
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="include"/>
- <xs:element ref="strip-space"/>
- <xs:element ref="preserve-space"/>
- <xs:element ref="output"/>
- <xs:element ref="key"/>
- <xs:element ref="decimal-format"/>
- <xs:element ref="attribute-set"/>
- <xs:element ref="variable"/>
- <xs:element ref="param"/>
- <xs:element ref="template"/>
- <xs:element ref="namespace-alias"/>
- <xs:any namespace="##other" processContents="lax"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="extension-element-prefixes" type="xs:string">
- <xs:annotation>
- <xs:documentation>A namespace can be designated as an extension namespace by using an
- extension-element-prefixes attribute. The value is a whitespace-separated list of namespace
- prefixes. The namespace bound to each of the prefixes is designated as an extension namespace.
- The default namespace (as declared by xmlns) may be designated as an extension namespace by
- including #default in the list of namespace prefixes. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="exclude-result-prefixes" type="xs:string">
- <xs:annotation>
- <xs:documentation>A namespace URI is designated as an excluded namespace by using an
- exclude-result-prefixes attribute. The value is a whitespace-separated list of namespace
- prefixes. The namespace bound to each of the prefixes is designated as an excluded namespace.
- The default namespace (as declared by xmlns) may be designated as an excluded namespace by
- including #default in the list of namespace prefixes. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="id" type="xs:ID">
- <xs:annotation>
- <xs:documentation/>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="version" type="xs:NMTOKEN" use="required">
- <xs:annotation>
- <xs:documentation>An xsl:transform element must have a version attribute, indicating the version of
- XSLT that the stylesheet requires. For this version of XSLT, the value should be 1.0. When the
- value is not equal to 1.0, forwards-compatible processing mode is enabled.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="value-of">
- <xs:annotation>
- <xs:documentation>The xsl:value-of element evaluates an expression as a string, and outputs its value to the
- current output stream.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="select" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The select attribute identifes the expression, and is mandatory. If the select
- expression is a node-set expression that selects more than one node, only the first is
- considered. If it selects no node, the result is an empty string.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute default="no" name="disable-output-escaping">
- <xs:annotation>
- <xs:documentation>The optional disable-output-escaping attribute may be set to yes or no; the
- default is no. If set to yes, special characters such as "<" and "&" will be
- output as themselves, not as entities. Be aware that in general this can produce non-well-formed
- XML or HTML. It is useful, however, when generating things such as ASP or JSP pages. Escaping
- may not be disabled when writing to a result tree fragment. </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="yes"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="variable">
- <xs:annotation>
- <xs:documentation>The xsl:variable element is used to declare a variable and give it a value. If it appears
- at the top level (immediately within xsl:stylesheet) it declares a global variable, otherwise it
- declares a local variable that is visible only within the stylesheet element containing the xsl:variable
- declaration. The value of the variable may be defined either by an expression within the optional select
- attribute, or by the contents of the xsl:variable element. In the latter case the result is technically
- a value of type Result Tree Fragment. Variables once declared cannot be updated. </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute name="name" type="xs:QName" use="required">
- <xs:annotation>
- <xs:documentation>The mandatory name attribute defines the name of the variable.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="select" type="xs:string">
- <xs:annotation>
- <xs:documentation>If the xsl:variable element has a select attribute, then the value of the
- attribute must be an expression and the value of the variable is the object that results from
- evaluating the expression. In this case, the content must be empty. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="when">
- <xs:annotation>
- <xs:documentation>The xsl:when element is used within an xsl:choose element to indicate one of a number of
- choices. It takes a mandatory parameter, test, whose value is a match pattern. If this is the first
- xsl:when element within the enclosing xsl:choose whose test condition matches the current element, the
- content of the xsl:when element is expanded, otherwise it is ignored.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute name="test" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>Each xsl:when element has a single attribute, test, which specifies an expression.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="with-param">
- <xs:annotation>
- <xs:documentation>The xsl:with-param element is used to define an actual parameter to a template. There is a
- mandatory attribute, name, to define the name of the parameter. The value of the parameter may be
- defined either by a select attribute, or by the contents of the xsl:param element. It is not an error to
- pass a parameter x to a template that does not have an xsl:param element for x; the parameter is simply ignored.</xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element ref="apply-templates"/>
- <xs:element ref="call-template"/>
- <xs:element ref="apply-imports"/>
- <xs:element ref="for-each"/>
- <xs:element ref="value-of"/>
- <xs:element ref="copy-of"/>
- <xs:element ref="number"/>
- <xs:element ref="choose"/>
- <xs:element ref="if"/>
- <xs:element ref="text"/>
- <xs:element ref="copy"/>
- <xs:element ref="variable"/>
- <xs:element ref="message"/>
- <xs:element ref="fallback"/>
- <xs:element ref="processing-instruction"/>
- <xs:element ref="comment"/>
- <xs:element ref="element"/>
- <xs:element ref="attribute"/>
- </xs:choice>
- <xs:attribute name="name" type="xs:NMTOKEN" use="required">
- <xs:annotation>
- <xs:documentation>The required name attribute defines the name of the parameter.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="select" type="xs:string">
- <xs:annotation>
- <xs:documentation>If the xsl:param element has a select attribute, then the value of the attribute
- must be an expression and the value of the parameter is the object that results from evaluating
- the expression. In this case, the content must be empty. </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="xml:specialAttrs"/>
- </xs:complexType>
- </xs:element>
- </xs:schema>
-