<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/1999/XSL/Transform" targetNamespace="http://www.w3.org/1999/XSL/Transform" elementFormDefault="qualified">
	<!--
	This schema has been optimized for use with Microsoft FrontPage's XML Editor. 
	-->
	<xsd:element name="stylesheet" type="styleSheetDef" />
	<xsd:element name="transform" type="styleSheetDef" />
	<xsd:complexType name="styleSheetDef" mixed="false">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="attribute-set" type="attributeSetDef" />
			<xsd:element name="decimal-format" type="numberFormatDef" />
			<xsd:element name="include" type="includeDef" />
			<xsd:element name="import" type="importDef" />
			<xsd:element name="key" type="keyDef" />
			<xsd:element name="namespace-alias" type="namespaceAliasDef" />
			<xsd:element name="output" type="outputDef" />
			<xsd:element name="param" type="paramDef" />
			<xsd:element name="preserve-space" type="preserveSpaceDef" />
			<xsd:element name="strip-space" type="stripSpaceDef" />
			<xsd:element name="template" type="templateDef" />
			<xsd:element name="variable" type="variableDef" />
			<xsd:any namespace="##other" processContents="skip" />
		</xsd:choice>
		<xsd:attribute name="ID" type="xsd:ID" />
		<xsd:attribute name="extension-element-prefixes" type="xsd:NMTOKENS" />
		<xsd:attribute name="exclude-result-prefixes" type="xsd:NMTOKENS" />
		<xsd:attribute name="version" type="xsd:number" />
	</xsd:complexType>
	<xsd:group name="templateGroup">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="apply-imports" type="applyImportsDef" />
			<xsd:element name="apply-templates" type="applyTemplatesDef" />
			<xsd:element name="attribute" type="attributeDef" />
			<xsd:element name="call-template" type="callTemplateDef" />
			<xsd:element name="choose" type="chooseDef" />
			<xsd:element name="comment" type="commentDef" />
			<xsd:element name="copy" type="copyDef" />
			<xsd:element name="copy-of" type="copyOfDef" />
			<xsd:element name="element" type="elementDef" />
			<xsd:element name="fallback" type="fallBackDef" />
			<xsd:element name="for-each" type="forEachDef" />
			<xsd:element name="if" type="ifDef" />
			<xsd:element name="message" type="messageDef" />
			<xsd:element name="number" type="numberDef" />
			<xsd:element name="processing-instruction" type="processingInstructionDef" />
			<xsd:element name="text" type="textDef" />
			<xsd:element name="variable" type="variableDef" />
			<xsd:element name="value-of" type="valueOfDef" />
			<xsd:any namespace="##other" processContents="skip" />
		</xsd:choice>
	</xsd:group>
	<xsd:complexType name="templateDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="param" type="paramDef" />
			<xsd:group ref="templateGroup" />
		</xsd:choice>
		<xsd:attribute name="match" type="pattern" />
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="priority" type="xsd:number" />
		<xsd:attribute name="mode" type="xsd:QName" />
	</xsd:complexType>
	<xsd:complexType name="applyTemplatesDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:group ref="templateGroup" />
			<xsd:element name="sort" type="xsd:string" />
			<xsd:element name="with-param" type="withParamDef" />
		</xsd:choice>
		<xsd:attribute name="select" type="xsd:string" />
		<xsd:attribute name="mode" type="xsd:QName" />
	</xsd:complexType>
	<xsd:complexType name="attributeDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:group ref="templateGroup" />
			<xsd:any namespace="##other" processContents="skip" />
		</xsd:choice>
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="namespace" type="xsd:anyURI" />
	</xsd:complexType>
	<xsd:complexType name="attributeSetDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="attribute" type="attributeDef" />
		</xsd:choice>
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="use-attribute-sets" type="xsd:QName" />
	</xsd:complexType>
	<xsd:complexType name="callTemplateDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="with-param" type="withParamDef" />
		</xsd:choice>
		<xsd:attribute name="name" type="xsd:QName" />
	</xsd:complexType>
	<xsd:complexType name="chooseDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="when" type="whenDef" />
			<xsd:element name="otherwise" type="otherwiseDef" />
		</xsd:choice>
	</xsd:complexType>
	<xsd:complexType name="commentDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:group ref="templateGroup" />
			<xsd:any namespace="##other" processContents="skip" />
		</xsd:choice>
	</xsd:complexType>
	<xsd:complexType name="copyDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:group ref="templateGroup" />
			<xsd:any namespace="##other" processContents="skip" />
		</xsd:choice>
		<xsd:attribute name="use-attribute-sets" type="QNames" />
	</xsd:complexType>
	<xsd:complexType name="copyOfDef" mixed="false">
		<xsd:attribute name="select" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="numberFormatDef">
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="decimal-separator" type="char" />
		<xsd:attribute name="grouping-separator" type="char" />
		<xsd:attribute name="infinity" type="xsd:string" />
		<xsd:attribute name="minus-sign" type="char" />
		<xsd:attribute name="NaN" type="xsd:string" />
		<xsd:attribute name="percent" type="char" />
		<xsd:attribute name="per-mille" type="char" />
		<xsd:attribute name="zero-digit" type="char" />
		<xsd:attribute name="digit" type="char" />
		<xsd:attribute name="pattern-separator" type="char" />
	</xsd:complexType>
	<xsd:complexType name="elementDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="namespace" type="xsd:anyURI" />
		<xsd:attribute name="use-attribute-sets" type="xsd:QName" />
	</xsd:complexType>
	<xsd:complexType name="fallback">
		<xsd:group ref="templateGroup" />
	</xsd:complexType>
	<xsd:complexType name="forEachDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="sort" type="sortDef" />
			<xsd:group ref="templateGroup" />
		</xsd:choice>
		<xsd:attribute name="select" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="ifDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="test" type="xsd:boolean" />
	</xsd:complexType>
	<xsd:complexType name="importDef" mixed="false">
		<xsd:attribute name="href" type="xsd:anyURI" />
	</xsd:complexType>
	<xsd:complexType name="includeDef" mixed="false">
		<xsd:attribute name="href" type="xsd:anyURI" />
	</xsd:complexType>
	<xsd:complexType name="keyDef">
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="match" type="pattern" />
		<xsd:attribute name="use" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="messageDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="terminate" type="yesNoEnum" />
	</xsd:complexType>
	<xsd:complexType name="namespaceAliasDef" mixed="false">
		<xsd:attribute name="stylesheet-prefix" type="xsd:string" />
		<xsd:attribute name="result-prefix" type="xsd:string" />
	</xsd:complexType>
	<xsd:simpleType name="levelEnum">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="single" />
			<xsd:enumeration value="multiple" />
			<xsd:enumeration value="xsd:any" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="letterValueEnum">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="alphabetic" />
			<xsd:enumeration value="traditional" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="numberDef">
		<xsd:attribute name="level" type="levelEnum" />
		<xsd:attribute name="count" type="pattern" />
		<xsd:attribute name="from" type="pattern" />
		<xsd:attribute name="value" type="xsd:string" />
		<xsd:attribute name="format" type="xsd:string" />
		<xsd:attribute name="lang" type="xsd:NMTOKEN" />
		<xsd:attribute name="letter-value" type="letterValueEnum" />
		<xsd:attribute name="grouping-separator" type="char" />
		<xsd:attribute name="grouping-size" type="xsd:number" />
	</xsd:complexType>
	<xsd:complexType name="otherwiseDef">
		<xsd:group ref="templateGroup" />
	</xsd:complexType>
	<xsd:simpleType name="yesNoEnum">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="yes" />
			<xsd:enumeration value="no" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="outputDef" mixed="false">
		<xsd:attribute name="method" type="xsd:string" />
		<xsd:attribute name="version" type="xsd:NMTOKEN" />
		<xsd:attribute name="encoding" type="xsd:string" />
		<xsd:attribute name="omit-xml-declaration" type="yesNoEnum" />
		<xsd:attribute name="standalone" type="yesNoEnum" />
		<xsd:attribute name="doctype-public" type="xsd:string" />
		<xsd:attribute name="doctype-system" type="xsd:string" />
		<xsd:attribute name="cdata-section-elements" type="xsd:QName" />
		<xsd:attribute name="indent" type="yesNoEnum" />
		<xsd:attribute name="media-type" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="paramDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="select" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="stripSpaceDef">
		<xsd:attribute name="elements" type="xsd:NMTOKENS" />
	</xsd:complexType>
	<xsd:complexType name="preserveSpaceDef">
		<xsd:attribute name="elements" type="xsd:NMTOKENS" />
	</xsd:complexType>
	<xsd:complexType name="processingInstructionDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="name" type="xsd:NCName" />
	</xsd:complexType>
	<xsd:simpleType name="orderEnum">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ascending" />
			<xsd:enumeration value="descending" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="caseOrderEnum">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="upper-first" />
			<xsd:enumeration value="lower-first" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="textDef">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:any namespace="##other" processContents="skip" />
		</xsd:choice>
		<xsd:attribute name="disable-output-escaping" type="yesNoEnum" />
	</xsd:complexType>
	<xsd:complexType name="valueOfDef">
		<xsd:attribute name="select" type="xsd:string" />
		<xsd:attribute name="disable-output-escaping" type="yesNoEnum" />
	</xsd:complexType>
	<xsd:complexType name="variableDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="select" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="whenDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="test" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="sortDef" mixed="false">
		<xsd:attribute name="select" type="xsd:string" />
		<xsd:attribute name="lang" type="xsd:NMTOKEN" />
		<xsd:attribute name="data-type" type="xsd:string" />
		<xsd:attribute name="order" type="orderEnum" />
		<xsd:attribute name="case-order" type="caseOrderEnum" />
	</xsd:complexType>
	<xsd:complexType name="withParamDef">
		<xsd:group ref="templateGroup" />
		<xsd:attribute name="name" type="xsd:QName" />
		<xsd:attribute name="select" type="xsd:string" />
	</xsd:complexType>
	<xsd:complexType name="applyImportsDef" mixed="false" />
	<xsd:complexType name="fallBackDef" mixed="false">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:any namespace="##other" processContents="skip" />
		</xsd:choice>
	</xsd:complexType>
	<xsd:simpleType name="char">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1" />
			<xsd:maxLength value="1" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="QNames">
		<xsd:list itemType="xsd:QName" />
	</xsd:simpleType>
</xsd:schema>
