blob: e99645aeef2bb42c2a48adf0f16c605444f21549 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/XSL/Transform">
<!-- xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" /-->
<xsd:element name="stylesheet" type="wrapper" />
<xsd:element name="transform" type="wrapper" />
<xsd:complexType name="wrapper">
<xsd:group ref="topLevelElements" minOccurs="0" maxOccurs="unbounded" />
<xsd:attribute name="extension-element-prefixes" type="xsd:string" use="optional" />
<xsd:attribute name="exclude-result-prefixes" type="xsd:string" use="optional" />
<xsd:attribute name="id" type="xsd:ID" use="optional" />
<xsd:attribute name="version" type="xsd:NMTOKEN" use="optional" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
<xsd:element name="import">
<xsd:complexType>
<xsd:attribute name="href" type="xsd:anyURI" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="include">
<xsd:complexType>
<xsd:attribute name="href" type="xsd:anyURI" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="strip-space">
<xsd:complexType>
<xsd:attribute name="elements" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="preserve-space">
<xsd:complexType>
<xsd:attribute name="elements" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="output">
<xsd:complexType>
<xsd:attribute name="method" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="xml" />
<xsd:enumeration value="html" />
<xsd:enumeration value="text" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="version" type="xsd:NMTOKEN" use="optional" />
<xsd:attribute name="encoding" type="xsd:NMTOKEN" use="optional" />
<xsd:attribute name="omit-xml-declaration" use="optional" type="YesNoType" />
<xsd:attribute name="standalone" use="optional" type="YesNoType" />
<xsd:attribute name="doctype-public" type="xsd:string" use="optional" />
<xsd:attribute name="doctype-system" type="xsd:string" use="optional" />
<xsd:attribute name="cdata-section-elements" type="xsd:NMTOKENS" use="optional" />
<xsd:attribute name="indent" use="optional" type="YesNoType" />
<xsd:attribute name="media-type" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="key">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required" />
<xsd:attribute name="match" type="pattern" use="required" />
<xsd:attribute name="use" type="expression" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="decimal-format">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="optional" />
<xsd:attribute default="." name="decimal-separator" type="xsd:string" />
<xsd:attribute default="," name="grouping-separator" type="xsd:string" />
<xsd:attribute default="Infinity" name="infinity" type="xsd:string" />
<xsd:attribute default="-" name="minus-sign" type="xsd:string" />
<xsd:attribute default="NaN" name="NaN" type="xsd:string" />
<xsd:attribute default="%" name="percent" type="xsd:string" />
<xsd:attribute default="‰" name="per-mille" type="xsd:string" />
<xsd:attribute default="0" name="zero-digit" type="xsd:string" />
<xsd:attribute default="#" name="digit" type="xsd:string" />
<xsd:attribute default=";" name="pattern-separator" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="namespace-alias">
<xsd:complexType>
<xsd:attribute name="stylesheet-prefix" type="xsd:string" use="required" />
<xsd:attribute name="result-prefix" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="template">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element ref="param" minOccurs="0" maxOccurs="unbounded" />
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:group ref="char-instructions"></xsd:group>
<xsd:any namespace="##other" processContents="skip" />
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="match" type="pattern" use="optional" />
<xsd:attribute name="name" type="xsd:NMTOKEN" use="optional" />
<xsd:attribute name="priority" type="xsd:NMTOKEN" use="optional" />
<xsd:attribute name="mode" type="xsd:NMTOKEN" use="optional" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="value-of">
<xsd:complexType>
<xsd:attributeGroup ref="select-required" />
<xsd:attributeGroup ref="disable-output-escaping" />
</xsd:complexType>
</xsd:element>
<xsd:element name="copy-of">
<xsd:complexType>
<xsd:attributeGroup ref="select-required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="number">
<xsd:complexType>
<xsd:attribute default="single" name="level">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="single" />
<xsd:enumeration value="multiple" />
<xsd:enumeration value="any" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="count" type="pattern" use="optional"/>
<xsd:attribute name="from" type="pattern" use="optional"/>
<xsd:attribute name="value" type="expression" use="optional"/>
<xsd:attribute default="1" name="format" type="xsd:string" />
<xsd:attribute name="lang" type="xsd:string" use="optional" />
<xsd:attribute name="letter-value" type="xsd:string" use="optional" />
<xsd:attribute name="grouping-separator" type="xsd:string" use="optional" />
<xsd:attribute name="grouping-size" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="apply-templates">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element ref="sort" />
<xsd:element ref="with-param" />
</xsd:choice>
<xsd:attribute default="node()" name="select" type="expression" />
<xsd:attribute name="mode" type="xsd:NMTOKEN" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="apply-imports">
<xsd:complexType />
</xsd:element>
<xsd:element name="for-each">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element ref="sort" minOccurs="0" maxOccurs="unbounded" />
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:group ref="char-instructions"></xsd:group>
<xsd:any namespace="##other" processContents="skip" />
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="select-required" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="sort">
<xsd:complexType>
<xsd:attribute default="." name="select" type="expression" />
<xsd:attribute name="lang" type="xsd:string" use="optional" />
<xsd:attribute default="text" name="data-type" type="xsd:string" />
<xsd:attribute default="ascending" name="order" type="xsd:string" />
<xsd:attribute name="case-order" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="if">
<xsd:complexType mixed="true">
<xsd:group ref="instructions" minOccurs="0" maxOccurs="unbounded"></xsd:group>
<xsd:attribute name="test" type="expression" use="required" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="choose">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="when" minOccurs="1" maxOccurs="unbounded" />
<xsd:element ref="otherwise" minOccurs="0" />
</xsd:sequence>
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="when">
<xsd:complexType mixed="true">
<xsd:group ref="instructions" minOccurs="0" maxOccurs="unbounded" />
<xsd:attribute name="test" type="expression" use="required" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="otherwise">
<xsd:complexType mixed="true">
<xsd:group ref="instructions" minOccurs="0" maxOccurs="unbounded" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="attribute-set">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required" />
<xsd:attribute name="use-attribute-sets" type="xsd:NMTOKENS" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="call-template">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="with-param" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="with-param" type="NamedAndSelectable" />
<xsd:element name="variable" type="NamedAndSelectable" />
<xsd:element name="param" type="NamedAndSelectable" />
<xsd:element name="text">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attributeGroup ref="disable-output-escaping" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="processing-instruction">
<xsd:complexType mixed="true">
<xsd:group ref="char-instructions"></xsd:group>
<xsd:attribute name="name" type="xsd:string" use="required" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="element">
<xsd:complexType mixed="true">
<xsd:group ref="instructions"></xsd:group>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="namespace" type="xsd:string" use="optional" />
<xsd:attributeGroup ref="use-attribute-sets" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="attribute">
<xsd:complexType mixed="true">
<xsd:group ref="char-instructions"/>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="namespace" type="xsd:string" use="optional" />
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="comment">
<xsd:complexType mixed="true">
<xsd:group ref="char-instructions"/>
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:element name="copy">
<xsd:complexType mixed="true">
<xsd:group ref="instructions"/>
<!-- xsd:attribute ref="xml:space" /-->
<xsd:attributeGroup ref="use-attribute-sets" />
</xsd:complexType>
</xsd:element>
<xsd:element name="message">
<xsd:complexType mixed="true">
<xsd:group ref="char-instructions"/>
<xsd:attribute default="no" name="terminate" type="YesNoType" />
</xsd:complexType>
</xsd:element>
<xsd:element name="fallback">
<xsd:complexType mixed="true">
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:group ref="instructions"></xsd:group>
</xsd:choice>
<!-- xsd:attribute ref="xml:space" /-->
</xsd:complexType>
</xsd:element>
<xsd:group name="instructions">
<xsd:choice>
<xsd:group ref="char-instructions"></xsd:group>
<xsd:element ref="processing-instruction" />
<xsd:element ref="comment" />
<xsd:element ref="element" />
<xsd:element ref="attribute" />
</xsd:choice>
</xsd:group>
<xsd:group name="char-instructions">
<xsd:choice>
<xsd:element ref="apply-templates" />
<xsd:element ref="call-template" />
<xsd:element ref="apply-imports" />
<xsd:element ref="for-each" />
<xsd:element ref="value-of" />
<xsd:element ref="copy-of" />
<xsd:element ref="number" />
<xsd:element ref="choose" />
<xsd:element ref="if" />
<xsd:element ref="text" />
<xsd:element ref="copy" />
<xsd:element ref="variable" />
<xsd:element ref="message" />
<xsd:element ref="fallback" />
</xsd:choice>
</xsd:group>
<xsd:group name="topLevelElements">
<xsd:choice>
<xsd:element ref="import" />
<xsd:element ref="include" />
<xsd:element ref="strip-space" />
<xsd:element ref="preserve-space" />
<xsd:element ref="key" />
<xsd:element ref="decimal-format" />
<xsd:element ref="attribute-set" />
<xsd:element ref="namespace-alias" />
<xsd:element ref="param" />
<xsd:element ref="variable" />
<xsd:element ref="output" />
<xsd:element ref="template" />
</xsd:choice>
</xsd:group>
<xsd:simpleType name="YesNoType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="yes" />
<xsd:enumeration value="no" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="NamedAndSelectable" mixed="true">
<xsd:group ref="instructions" minOccurs="0" maxOccurs="unbounded" />
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required" />
<xsd:attributeGroup ref="select-optional" />
</xsd:complexType>
<xsd:simpleType name="expression">
<xsd:restriction base="xsd:string"></xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="pattern">
<xsd:restriction base="xsd:string"></xsd:restriction>
</xsd:simpleType>
<xsd:attributeGroup name="select-optional">
<xsd:attribute name="select" type="expression" />
</xsd:attributeGroup>
<xsd:attributeGroup name="select-required">
<xsd:attribute name="select" type="expression" use="required" />
</xsd:attributeGroup>
<xsd:attributeGroup name="disable-output-escaping">
<xsd:attribute name="disable-output-escaping" type="YesNoType" default="no" />
</xsd:attributeGroup>
<xsd:attributeGroup name="use-attribute-sets">
<xsd:attribute name="use-attribute-sets" type="xsd:NMTOKENS" use="optional"/>
</xsd:attributeGroup>
</xsd:schema>