#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

388 lines
12 KiB

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/XSL/Transform"
elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
Copyright (C) 2005 Matthew Ward
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:element name="stylesheet">
<xs:complexType mixed="true">
<xs:group ref="topLevel"/>
<xs:attributeGroup ref="topLevelAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="transform">
<xs:complexType mixed="true">
<xs:group ref="topLevel"/>
<xs:attributeGroup ref="topLevelAttributes"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="topLevelAttributes">
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute name="version" type="xs:NMTOKEN" use="required"/>
<xs:attribute ref="xml:space"/>
</xs:attributeGroup>
<xs:group name="topLevel">
<xs:sequence>
<xs:element ref="import" minOccurs="0" maxOccurs="unbounded"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<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:choice>
</xs:sequence>
</xs:group>
<xs:element name="import">
<xs:complexType>
<xs:attribute name="href" type="xs:anyURI"/>
</xs:complexType>
</xs:element>
<xs:element name="include">
<xs:complexType>
<xs:attribute name="href" type="xs:anyURI"/>
</xs:complexType>
</xs:element>
<xs:element name="strip-space">
<xs:complexType>
<xs:attribute name="elements" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="preserve-space">
<xs:complexType>
<xs:attribute name="elements" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="key">
<xs:complexType>
<xs:attribute name="name" use="required" type="xs:NMTOKEN"/>
<xs:attribute name="match" use="required" type="xs:string"/>
<xs:attribute name="use" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="decimal-format">
<xs:complexType>
<xs:attribute name="name" type="xs:NMTOKEN"/>
<xs:attribute name="decimal-separator" type="xs:string" default="."/>
<xs:attribute name="grouping-separator" type="xs:string" default=","/>
<xs:attribute name="infinity" type="xs:string" default="Infinity"/>
<xs:attribute name="minus-sign" type="xs:string" default="-"/>
<xs:attribute name="NaN" type="xs:string" default="NaN"/>
<xs:attribute name="percent" type="xs:string" default="%"/>
<xs:attribute name="per-mille" type="xs:string" default="&#2030;"/>
<xs:attribute name="zero-digit" type="xs:string" default="0"/>
<xs:attribute name="digit" type="xs:string" default="#"/>
<xs:attribute name="pattern-separator" type="xs:string" default=";"/>
</xs:complexType>
</xs:element>
<xs:element name="attribute-set">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="attribute"/>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="use-attribute-sets" type="xs:NMTOKENS"/>
</xs:complexType>
</xs:element>
<xs:element name="attribute">
<xs:complexType mixed="true">
<xs:group ref="charInstructions"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="namespace" type="xs:string"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:group name="charInstructions">
<xs:choice>
<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:group>
<xs:element name="apply-templates">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="sort"/>
<xs:element ref="with-param"/>
</xs:choice>
<xs:attribute name="select" type="xs:string" default="node()"/>
<xs:attribute name="mode" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
<xs:element name="call-template">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="with-param"/>
</xs:choice>
<xs:attribute name="name" use="required" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
<xs:element name="for-each">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="instructions"/>
<xs:element ref="sort"/>
</xs:choice>
<xs:attribute name="select" type="xs:string" use="required"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:group name="instructions">
<xs:choice>
<xs:group ref="charInstructions"/>
<xs:element ref="processing-instruction"/>
<xs:element ref="element"/>
<xs:element ref="attribute"/>
</xs:choice>
</xs:group>
<xs:element name="sort">
<xs:complexType>
<xs:attribute name="select" type="xs:string" default="."/>
<xs:attribute name="lang" type="xs:string"/>
<xs:attribute name="data-type" type="xs:string" default="text"/>
<xs:attribute name="order" type="xs:string" default="ascending"/>
<xs:attribute name="case-order" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="processing-instruction">
<xs:complexType mixed="true">
<xs:group ref="charInstructions"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="element">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="namespace" type="xs:string"/>
<xs:attribute name="use-attribute-sets" type="xs:NMTOKENS"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="with-param">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute name="name" type="xs:NMTOKENS" use="required"/>
<xs:attribute name="select" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="value-of">
<xs:complexType>
<xs:attribute name="select" type="xs:string" use="required"/>
<xs:attribute name="disable-output-escaping" type="yesNoEnum" default="no"/>
</xs:complexType>
</xs:element>
<xs:element name="copy-of">
<xs:complexType>
<xs:attribute name="select" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="number">
<xs:complexType>
<xs:attribute name="level" default="single">
<xs:simpleType>
<xs:restriction base="xs:string">
<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:attribute name="from" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
<xs:attribute name="format" type="xs:string" default="1"/>
<xs:attribute name="lang" type="xs:string"/>
<xs:attribute name="letter-value" type="xs:string"/>
<xs:attribute name="grouping-separator" type="xs:string"/>
<xs:attribute name="grouping-size" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="choose">
<xs:complexType>
<xs:sequence>
<xs:element ref="when" minOccurs="1" maxOccurs="unbounded"/>
<xs:element ref="otherwise" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="when">
<xs:complexType>
<xs:group ref="instructions"/>
<xs:attribute name="test" type="xs:string" use="required"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="otherwise">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="if">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute name="test" type="xs:string" use="required"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="text">
<xs:complexType mixed="true">
<xs:attribute name="disable-output-escaping" type="yesNoEnum" default="no"/>
</xs:complexType>
</xs:element>
<xs:element name="copy">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute name="use-attribute-sets" type="xs:NMTOKENS"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="message">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute name="terminate" type="yesNoEnum" default="no"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="fallback">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="variable">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="select" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="param">
<xs:complexType mixed="true">
<xs:group ref="instructions"/>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="select" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="template">
<xs:complexType mixed="true">
<xs:choice>
<xs:group ref="instructions"/>
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="match" type="xs:string"/>
<xs:attribute name="name" type="xs:NMTOKEN"/>
<xs:attribute name="priority" type="xs:string"/>
<xs:attribute name="mode" type="xs:NMTOKEN"/>
<xs:attribute ref="xml:space"/>
</xs:complexType>
</xs:element>
<xs:element name="namespace-alias">
<xs:complexType>
<xs:attribute name="stylesheet-prefix" type="xs:string" use="required"/>
<xs:attribute name="result-prefix" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="apply-imports"/>
<xs:element name="output">
<xs:complexType mixed="true">
<xs:attribute name="method" type="xs:NMTOKEN"/>
<xs:attribute name="version" type="xs:NMTOKEN"/>
<xs:attribute name="encoding" type="xs:string"/>
<xs:attribute name="omit-xml-declaration" type="yesNoEnum" default="yes"/>
<xs:attribute name="standalone" type="yesNoEnum" default="no"/>
<xs:attribute name="doctype-public" type="xs:string"/>
<xs:attribute name="doctype-system" type="xs:string"/>
<xs:attribute name="cdata-section-elements" type="xs:NMTOKEN"/>
<xs:attribute name="indent" type="yesNoEnum"/>
<xs:attribute name="media-type" type="xs:string" default="text/xml"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="yesNoEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="yes"/>
<xs:enumeration value="no"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>