XSLT

I've got several XSLT stylesheets, and it is displaying a lot of errors. It stems from the fact that its not recognizing the xslt namespace. It has the following error for the namespace: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

URI is not registered (Settings | IDE Settings | Resources).

When I go there, the namespace URI is there. I remove the Resource, and then when the lightbulb comes up, I select "Fetch". But it still shows the same error.

Because of this, every element with the xsl namespace is showing as an error.

Any tips would be greatly appreciated.

Thanks.

4 comments
Comment actions Permalink

The document with the URL is not valid schema.
Find the xslt schema/dtd file and associate it with the URI.

Vincent Fischer wrote:

I've got several XSLT stylesheets, and it is displaying a lot of errors. It stems from the fact that its not recognizing the xslt namespace. It has the following error for the namespace: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

URI is not registered (Settings | IDE Settings | Resources).

When I go there, the namespace URI is there. I remove the Resource, and then when the lightbulb comes up, I select "Fetch". But it still shows the same error.

Because of this, every element with the xsl namespace is showing as an error.

Any tips would be greatly appreciated.

Thanks.



--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

I hope this doesn't sound like too stupid a question, but.. Anyone know where I'd find such a schema/dtd file for xslt? I'm googl'ing now, but am not having much luck (probably my search terms)...

0
Comment actions Permalink

Vincent Fischer wrote:

I hope this doesn't sound like too stupid a question, but.. Anyone know where I'd find such a schema/dtd file for xslt? I'm googl'ing now, but am not having much luck (probably my search terms)...

<?xml version="1.0" ?>

<!--

This is an updated version of the XSLT schema originally published by
WebMethods
in March 2001. This version complies with the current W3C XML Schema
recommendation. To use this schema, start you stylesheet with:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/XSL/Transform
http://www.orbeon.com/1999/XSL/Transform">

If you have any question or comment, please feel free to contact us:

Orbeon, Inc.
http://www.orbeon.com/
info@orbeon.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

DISCLAIMER OF WARRANTY

THIS CODE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A
PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY
AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED
CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED
CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

LIMITATION OF LIABILITY

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY
SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM
SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH
LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION
MAY NOT APPLY TO YOU.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

This free of charge Software is provided on an "AS IS" basis, without
warranty of any kind. The entire risk as to the quality and performance of
the software is borne by you. Should the software prove defective, you and
only you assume the entire cost of any service and repair.

WEBMETHODS DOES NOT MAKE ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND
INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF TITLE, MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTIES ARISING BY STATUTE, COURSE
OF DEALING, CUSTOM OR USAGE, TRADE PRACTICE OR OTHERWISE.

IN NO EVENT WILL WEBMETHODS BE LIABLE FOR ANY LOST REVENUES, PROFITS,
BUSINESS OR INTERRUPTION OF BUSINESS OR OTHER SPECIAL, INDIRECT, INCIDENTAL
OR CONSEQUENTIAL DAMAGES, EVEN IF WEBMETHODS HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL
PURPOSE OF ANY LIMITED REMEDY OF ANY KIND, HOWEVER CAUSED AND UNDER ANY
THEORY OF LIABILITY.







Schema for XSLT 1.0 Recommendation,
http://www.w3.org/TR/1999/REC-xslt-19991116
Using XML Schema CR Drafts,

- Part 1, http://www.w3.org/TR/2000/CR-xmlschema-1-20001024/
- Part 2, http://www.w3.org/TR/2000/CR-xmlschema-2-20001024/

Author: Asir S Vedamuthu
Member, XML Schema WG representing webMethods, Inc.
Member, XML Schema Processor design and implementation team at webMethods

webMethods, Inc.
3930 Pender Drive
Fairfax VA 22030

(703) 450-2500

Date - February 28th, 2001
Version - 0.4

This work is a product of the W3C XML Schema WG Task Force for authoring
schema
for W3C Recommendations as an illustration of the XML Schema Language.
This schema
is illustrative and non-normative. Internal names created by this schema
follows the
same convention used by XSLT 1.0 specification.

Comments were stolen from the XSLT 1.0 specification,
http://www.w3.org/TR/1999/REC-xslt-19991116#element-syntax-summary

Asir intends to update this schema as the XML Schema drafts advance from
CR to
PR and then REC. Expected changes are,

XML Schema Namespace URI
Change attribute declaration syntax


KNOWN ISSUES,

(a) XML Schema Definition Language cannot capture a unique wild card
expression in XSLT: "In addition, the xsl:stylesheet element may contain
any element not from the XSLT namespace, provided that the expanded-name
of the element has a non-null namespace URI" -
http://www.w3.org/TR/1999/REC-xslt-19991116#stylesheet-element (This
will not be an issue as per XML Schema PR)


Revision History

0.1 - Created
0.2 - Fixed minor typos
0.3 - Implemented suggestions and added fragments from James Clark
0.4 - Fixed a minor typo

Acknowledgement

The following have contributed material to this draft:

- James Clark, jjc@jclark.com


Please send your comments and suggestions to asirv@webmethods.com


-->


]]>



<!-- *** import schema for xpath
authored by C. M. Sperberg-McQueen
Chair, XML Schema WG

--> ]]>

<!-- ***

<xsl:element
name =
namespace = { uri-reference }
use-attribute-sets = qnames>
Content: template
--> ]]>

<!-- ***

<xsl:number
level = "single" | "multiple" | "any"
count = pattern
from = pattern
value = number-expression
format =
lang =
letter-value = { "alphabetic" | "traditional" }
grouping-separator =
grouping-size = />

-->

]]>

<!-- ***

<xsl:processing-instruction
name = >
Content: template
--> ]]>

<!-- ***

xsl:sort
select = string-expression
lang =
data-type = { "text" | "number" | qname-but-not-ncname }
order = { "ascending" | "descending" }
case-order = { "upper-first" | "lower-first" } />

-->

]]>

<!-- ***

<xsl:attribute
name =
namespace = { uri-reference }>
Content: template
--> ]]>
<!-- <pattern

value="(|\{\{|\}\})\{(|&quot;[^&quot;]&quot;|'[']*')+\}(|\{\{|\}\}|\{(|&quot;[&quot;]&quot;|'[^']')+\})*"/>
-->
]]>

--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

When I go to the webpage:

http://www.orbeon.com/1999/XSL/Transform

it shows an error.

Is there any other place I can find this?

Vincent Fischer wrote:

>> I hope this doesn't sound like too stupid a question, but.. Anyone
>> know where I'd find such a schema/dtd file for xslt? I'm googl'ing
>> now, but am not having much luck (probably my search terms)...
>>

<?xml version="1.0" ?>

<!--

This is an updated version of the XSLT schema originally published by
WebMethods
in March 2001. This version complies with the current W3C XML Schema
recommendation. To use this schema, start you stylesheet with:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/XSL/Transform
http://www.orbeon.com/1999/XSL/Transform">
If you have any question or comment, please feel free to contact us:

Orbeon, Inc.
http://www.orbeon.com/
info@orbeon.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -

DISCLAIMER OF WARRANTY

THIS CODE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY
KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A
PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE
QUALITY
AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED
CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED
CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
LIMITATION OF LIABILITY

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
ANY
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
WORK
STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
LIABILITY
SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING
FROM
SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH
LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
LIMITATION OF
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION
MAY NOT APPLY TO YOU.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -

This free of charge Software is provided on an "AS IS" basis, without
warranty of any kind. The entire risk as to the quality and
performance of the software is borne by you. Should the software prove
defective, you and only you assume the entire cost of any service and
repair.

WEBMETHODS DOES NOT MAKE ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND
INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF TITLE, MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTIES ARISING BY STATUTE,
COURSE OF DEALING, CUSTOM OR USAGE, TRADE PRACTICE OR OTHERWISE.

IN NO EVENT WILL WEBMETHODS BE LIABLE FOR ANY LOST REVENUES, PROFITS,
BUSINESS OR INTERRUPTION OF BUSINESS OR OTHER SPECIAL, INDIRECT,
INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF WEBMETHODS HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, AND NOTWITHSTANDING ANY
FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY OF ANY KIND,
HOWEVER CAUSED AND UNDER ANY THEORY OF LIABILITY.

Schema for XSLT 1.0 Recommendation,
http://www.w3.org/TR/1999/REC-xslt-19991116
Using XML Schema CR Drafts,
- Part 1, http://www.w3.org/TR/2000/CR-xmlschema-1-20001024/ - Part 2,
http://www.w3.org/TR/2000/CR-xmlschema-2-20001024/

Author: Asir S Vedamuthu
Member, XML Schema WG representing webMethods, Inc.
Member, XML Schema Processor design and implementation team at
webMethods
webMethods, Inc.
3930 Pender Drive
Fairfax VA 22030
(703) 450-2500

Date - February 28th, 2001
Version - 0.4
This work is a product of the W3C XML Schema WG Task Force for
authoring
schema
for W3C Recommendations as an illustration of the XML Schema Language.
This schema
is illustrative and non-normative. Internal names created by this
schema
follows the
same convention used by XSLT 1.0 specification.
Comments were stolen from the XSLT 1.0 specification,
http://www.w3.org/TR/1999/REC-xslt-19991116#element-syntax-summary
Asir intends to update this schema as the XML Schema drafts advance
from
CR to
PR and then REC. Expected changes are,
XML Schema Namespace URI
Change attribute declaration syntax
KNOWN ISSUES,

(a) XML Schema Definition Language cannot capture a unique wild card
expression in XSLT: "In addition, the xsl:stylesheet element may
contain any element not from the XSLT namespace, provided that the
expanded-name of the element has a non-null namespace URI" -
http://www.w3.org/TR/1999/REC-xslt-19991116#stylesheet-element (This
will not be an issue as per XML Schema PR)

Revision History

0.1 - Created
0.2 - Fixed minor typos
0.3 - Implemented suggestions and added fragments from James Clark
0.4 - Fixed a minor typo
Acknowledgement

The following have contributed material to this draft:

- James Clark, jjc@jclark.com

Please send your comments and suggestions to asirv@webmethods.com

-->

<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
blockDefault="#all"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/XMLSchema
http://www.w3.org/2001/XMLSchema.xsd"
targetNamespace="http://www.w3.org/1999/XSL/Transform"
elementFormDefault="qualified">
<import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<import namespace="http://www.w3.org/2001/XMLSchema" />
<!-- *** import schema for xpath
authored by C. M. Sperberg-McQueen
Chair, XML Schema WG
<import
namespace="http://www.w3.org/TR/2001/WD-xptr-20010108/"
schemaLocation="xpath.xsd"/>
-->
<!-- *** result elements *** -->
<!-- *** *** -->
<!-- There are three ways that you can construct a
schema for XSLT stylesheets that create instances of a
particular result structure
(a) Declare all your result elements as a member of
xsl:result-element substitution group
(b) Redefine model group xsl:result-element to accomodate
the desired structure
(c) Do nothing. This schema is designed to allow any element node
or nodes if they have any namespace other than the XSLT
namespace or not namespace qualified
I recommend (a) or (b)

In addition, I added a an attributeGroup util, 'result-element'
for your convenience
-->

<element name="result-element" abstract="true" type="anyType"/>

<attributeGroup name="result-element">
<attribute name="extension-element-prefixes" form="qualified"
type="string"/>
<attribute name="exclude-result-prefixes" form="qualified"
type="string"/>
<attribute name="use-attribute-sets" form="qualified"
type="xsl:QNames"/>
<attribute name="version" form="qualified" type="NMTOKEN"/>
<anyAttribute namespace="##other" processContents="skip"/>
</attributeGroup>
<group name="result-element">
<choice>
<element ref="xsl:result-element"/>
<any namespace="##other" processContents="skip"/>
</choice>
</group>
<!-- *** Style Sheet Elements *** -->
<!-- *** *** -->
<element name="stylesheet" type="xsl:wrapper"/>
<element name="transform" type="xsl:wrapper"/>
<complexType name="wrapper">
<complexContent>
<extension base="xsl:anyType">
<sequence>
<element ref="xsl:import" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:top-level-element"/>
<element ref="xsl:variable"/>
<any namespace="##other" processContents="skip"/> <!-- weaker
than XSLT 1.0 -->
</choice>
</sequence>
<attribute name="id" type="ID"/>
<attribute name="extension-element-prefixes" type="xsl:tokens"/>
<attribute name="exclude-result-prefixes" type="xsl:tokens"/>
<attribute name="version" type="decimal" use="required"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
<!-- *** top level elements *** -->
<!-- *** *** -->
<element name="top-level-element" type="xsl:anyType"
abstract="true"/>
<element name="top-level-element-and-char-instruction"
type="xsl:anyType" abstract="true"/>
<element name="attribute-set"
substitutionGroup="xsl:top-level-element">

<!-- ***

<xsl:attribute-set
name = qname
use-attribute-sets = qnames>
Content: xsl:attribute*
</xsl:attribute-set>
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:attribute"/>
</sequence>
<attributeGroup ref="xsl:name"/>
<attributeGroup ref="xsl:use-attribute-sets"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="decimal-format"
substitutionGroup="xsl:top-level-element">

<!-- ***

<xsl:decimal-format
name = qname
decimal-separator = char
grouping-separator = char
infinity = string
minus-sign = char
NaN = string
percent = char
per-mille = char
zero-digit = char
digit = char
pattern-separator = char />
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<attribute name="name" type="xsl:QName"/>
<attribute name="decimal-separator" type="string" use="optional"
default="."/>
<attribute name="grouping-separator" type="string"
use="optional"
default=","/>
<attribute name="infinity" type="string" use="optional"
default="Infinity"/>
<attribute name="minus-sign" type="string" use="optional"
default="-"/>
<attribute name="NaN" type="string" use="optional"
default="NaN"/>
<attribute name="percent" type="string" use="optional"
default="%"/>
<attribute name="per-mille" type="string" use="optional"
default="&#x2030;"/>
<attribute name="zero-digit" type="string" use="optional"
default="0"/>
<attribute name="digit" type="string" use="optional"
default="#"/>
<attribute name="pattern-separator" type="string" use="optional"
default=";"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="include"
substitutionGroup="xsl:top-level-element"
type="xsl:combine-stylesheets">

<!-- ***

<xsl:include
href = uri-reference />
-->

</element>

<element name="key"
substitutionGroup="xsl:top-level-element">

<!-- ***

<xsl:key
name = qname
match = pattern
use = expression />
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<attributeGroup ref="xsl:name"/>
<attribute name="match" type="xsl:pattern" use="required"/>
<attribute name="use" type="xsl:expression" use="required"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="namespace-alias"
substitutionGroup="xsl:top-level-element">

<!-- ***

-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<attribute name="stylesheet-prefix" type="xsl:prefix"
use="required"/>
<attribute name="result-prefix" type="xsl:prefix"
use="required"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="output"
substitutionGroup="xsl:top-level-element">

<!-- ***

<xsl:output
method = "xml" | "html" | "text" | qname-but-not-ncname
version = nmtoken
encoding = string
omit-xml-declaration = "yes" | "no"
standalone = "yes" | "no"
doctype-public = string
doctype-system = string
cdata-section-elements = qnames
indent = "yes" | "no"
media-type = string />
-->

<complexType>

<complexContent>
<extension base="xsl:anyType">
<attribute name="method">
<simpleType>
<union>
<simpleType>
<restriction base="string">
<enumeration value="xml"/>
<enumeration value="html"/>
<enumeration value="text"/>
</restriction>
</simpleType>
<simpleType>
<restriction base="xsl:QName">
<pattern value="\c*:\c*"/>
</restriction>
</simpleType>
</union>
</simpleType>
</attribute>
<attribute name="version" type="NMTOKEN"/>
<attribute name="encoding" type="string"/>
<attribute name="omit-xml-declaration" type="xsl:YesOrNo"/>
<attribute name="standalone" type="xsl:YesOrNo"/>
<attribute name="doctype-public" type="string"/>
<attribute name="doctype-system" type="string"/>
<attribute name="cdata-section-elements" type="xsl:QNames"/>
<attribute name="indent" type="xsl:YesOrNo"/>
<attribute name="media-type" type="string"/>
</extension>
</complexContent>
</complexType>

</element>

<element name="param" substitutionGroup="xsl:top-level-element"
type="xsl:variable">

<!-- ***

<xsl:param
name = qname
select = expression>
Content: template
</xsl:param>
-->

</element>

<element name="preserve-space"
substitutionGroup="xsl:top-level-element">

<!-- ***

<xsl:preserve-space
elements = tokens />
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<attribute name="elements" type="xsl:element-names"
use="required"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="strip-space"
substitutionGroup="xsl:preserve-space"/>

<element name="template"
substitutionGroup="xsl:top-level-element">

<!-- ***

<xsl:template
match = pattern
name = qname
priority = number
mode = qname>
Content: (xsl:param*, template)
</xsl:template>
-->

<complexType mixed="true">

<complexContent>
<extension base="xsl:anyType">
<sequence>
<element ref="xsl:param" minOccurs="0"
maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:top-level-element-and-char-instruction"/>
<element ref="xsl:instruction"/>
<group ref="xsl:result-element"/>
</choice>
</sequence>
<attribute name="match" type="xsl:pattern"/>
<attribute name="name" type="xsl:QName"/>
<attribute name="priority" type="decimal"/>
<attribute name="mode" type="xsl:QName"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>

</element>

<!-- *** top level elements and char instructions *** -->
<!-- *** *** -->
<element name="variable" type="xsl:variable"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:variable
name = qname
select = expression>
Content: template
</xsl:variable>
-->

</element>

<!-- *** instructions *** -->
<!-- *** *** -->
<element name="instruction" type="xsl:anyType"
abstract="true"/>

<element name="char-instruction" type="xsl:anyType"
abstract="true"
substitutionGroup="xsl:instruction"/>
<element name="apply-imports" type="xsl:anyType"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:apply-imports />

-->

</element>

<element name="apply-templates"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:apply-templates
select = node-set-expression
mode = qname>
Content: (xsl:sort | xsl:with-param)*
</xsl:apply-templates>
-->

<complexType>

<complexContent>
<extension base="xsl:anyType">
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:sort"/>
<element ref="xsl:with-param"/>
</choice>
<attribute name="select" type="xsl:expression" use="optional"
default="node()"/>
<attribute name="mode" type="xsl:QName"/>
</extension>
</complexContent>
</complexType>

</element>

<element name="attribute" type="xsl:attribute-type"
substitutionGroup="xsl:instruction"/>

<element name="call-template"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:call-template
name = qname>
Content: xsl:with-param*
</xsl:call-template>
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:with-param"/>
</sequence>
<attributeGroup ref="xsl:name"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="choose"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:choose>
Content: (xsl:when+, xsl:otherwise?)
</xsl:choose>
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<sequence>
<element ref="xsl:when" minOccurs="1" maxOccurs="unbounded"/>
<element ref="xsl:otherwise" minOccurs="0"/>
</sequence>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="comment" substitutionGroup="xsl:instruction">

<!-- ***

<xsl:comment>
Content: template
</xsl:comment>
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:char-instruction"/>
<element ref="xsl:top-level-element-and-char-instruction"/>
</choice>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="copy"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:copy
use-attribute-sets = qnames>
Content: template
</xsl:copy>
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attribute ref="xml:space"/>
<attributeGroup ref="xsl:use-attribute-sets"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="copy-of"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:copy-of
select = expression />
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<attributeGroup ref="xsl:select-required"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="element" substitutionGroup="xsl:instruction">

<!-- ***

<xsl:element
name =
namespace = { uri-reference }
use-attribute-sets = qnames>
Content: template
</xsl:element>
-->
<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attributeGroup ref="xsl:name-avt"/>
<attribute name="namespace" type="xsl:expr-avt"/>
<attributeGroup ref="xsl:use-attribute-sets"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="fallback"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:fallback>
Content: template
</xsl:fallback>
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="for-each"
substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:for-each
select = node-set-expression>
Content: (xsl:sort*, template)
</xsl:for-each>
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<sequence>
<element ref="xsl:sort" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:top-level-element-and-char-instruction"/>
<element ref="xsl:instruction"/>
<group ref="xsl:result-element"/>
</choice>
</sequence>
<attributeGroup ref="xsl:select-required"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="if" substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:if
test = boolean-expression>
Content: template
</xsl:if>
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attribute name="test" type="xsl:expression" use="required"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="message" substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:message
terminate = "yes" | "no">
Content: template
</xsl:message>
-->

<complexType mixed="true">

<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attribute ref="xml:space"/>
<attribute name="terminate" use="optional" default="no"
type="xsl:YesOrNo"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="number" substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:number
level = "single" | "multiple" | "any"
count = pattern
from = pattern
value = number-expression
format =
lang =
letter-value = { "alphabetic" | "traditional" }
grouping-separator =
grouping-size = />
-->

<complexType>

<complexContent>
<extension base="xsl:anyType">
<attribute name="level" use="optional" default="single">
<simpleType>
<restriction base="NMTOKEN">
<enumeration value="single"/>
<enumeration value="multiple"/>
<enumeration value="any"/>
</restriction>
</simpleType>
</attribute>
<attribute name="count" type="xsl:pattern"/>
<attribute name="from" type="xsl:pattern"/>
<attribute name="value" type="xsl:expression"/>
<attribute name="format" type="xsl:expr-avt" use="optional"
default="1"/>
<attribute name="lang" type="xsl:expr-avt"/>
<attribute name="letter-value" type="xsl:expr-avt"/>
<attribute name="grouping-separator" type="xsl:expr-avt"/>
<attribute name="grouping-size" type="xsl:expr-avt"/>
</extension>
</complexContent>
</complexType>

</element>

<element name="processing-instruction"
substitutionGroup="xsl:instruction">

<!-- ***

<xsl:processing-instruction
name = >
Content: template
</xsl:processing-instruction>
-->

<complexType mixed="true">

<complexContent>
<extension base="xsl:anyType">
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:char-instruction"/>
<element ref="xsl:top-level-element-and-char-instruction"/>
</choice>
<attributeGroup ref="xsl:name-avt"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="text" substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:text
disable-output-escaping = "yes" | "no">
Content: #PCDATA
</xsl:text>
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<attributeGroup ref="xsl:disable-output-escaping"/>
<attribute ref="xml:lang"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="value-of" substitutionGroup="xsl:char-instruction">

<!-- ***

<xsl:value-of
select = string-expression
disable-output-escaping = "yes" | "no" />
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<attributeGroup ref="xsl:select-required"/>
<attributeGroup ref="xsl:disable-output-escaping"/>
</extension>
</complexContent>
</complexType>
</element>

<!-- *** orphans *** -->
<!-- *** *** -->
<element name="import" type="xsl:combine-stylesheets">

<!-- ***

<xsl:import
href = uri-reference />
-->
</element>

<element name="otherwise">

<!-- ***

<xsl:otherwise>
Content: template
</xsl:otherwise>
-->

<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="sort">

<!-- ***

xsl:sort
select = string-expression
lang =
data-type = { "text" | "number" | qname-but-not-ncname }
order = { "ascending" | "descending" }
case-order = { "upper-first" | "lower-first" } />
-->

<complexType>
<complexContent>
<extension base="xsl:anyType">
<attribute name="select" type="xsl:expression" use="optional"
default="."/>
<attribute name="lang" type="xsl:expr-avt"/>
<attribute name="data-type" type="xsl:expr-avt" use="optional"
default="text"/>
<attribute name="order" type="xsl:expr-avt" use="optional"
default="ascending"/>
<attribute name="case-order" type="xsl:expr-avt"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="when">

<!-- ***
<xsl:when
test = boolean-expression>
Content: template
</xsl:when>
-->
<complexType mixed="true">
<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attribute name="test" type="xsl:expression" use="required"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>
</element>

<element name="with-param" type="xsl:variable">

<!-- ***

<xsl:with-param
name = qname
select = expression>
Content: template
</xsl:with-param>
-->
</element>

<!-- *** utils - internal types and groups *** -->
<!-- *** not for public use *** -->
<!-- *** *** -->
<complexType name="attribute-type" mixed="true">

<!-- ***

<xsl:attribute
name =
namespace = { uri-reference }>
Content: template
</xsl:attribute>
-->
<complexContent>
<extension base="xsl:anyType">
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xsl:char-instruction"/>
<element ref="xsl:top-level-element-and-char-instruction"/>
</choice>
<attributeGroup ref="xsl:name-avt"/>
<attribute name="namespace" type="xsl:expr-avt"/>
<attribute ref="xml:space"/>
</extension>
</complexContent>
</complexType>

<simpleType name="tokens">
<list itemType="token"/>
</simpleType>
<simpleType name="QNames">
<list itemType="xsl:QName"/>
</simpleType>
<attributeGroup name="name">
<attribute name="name" type="xsl:QName" use="required"/>
</attributeGroup>
<attributeGroup name="name-avt">
<attribute name="name" type="xsl:expr-avt" use="required"/>
</attributeGroup>
<attributeGroup name="select-optional">
<attribute name="select" type="xsl:expression"/>
</attributeGroup>
<attributeGroup name="select-required">
<attribute name="select" type="xsl:expression" use="required"/>
</attributeGroup>
<attributeGroup name="use-attribute-sets">
<attribute name="use-attribute-sets" type="xsl:QNames"/>
</attributeGroup>
<group name="template">
<choice>
<element ref="xsl:top-level-element-and-char-instruction"/>
<element ref="xsl:instruction"/>
<group ref="xsl:result-element"/>
</choice>
</group>
<complexType name="combine-stylesheets">
<complexContent>
<extension base="xsl:anyType">
<attribute name="href" type="anyURI" use="required"/>
</extension>
</complexContent>
</complexType>
<simpleType name="YesOrNo">
<restriction base="string">
<enumeration value="yes"/>
<enumeration value="no"/>
</restriction>
</simpleType>
<simpleType name="QName">
<union memberTypes="NCName QName"/>
</simpleType>
<simpleType name="element-names">
<list>
<simpleType>
<union memberTypes="QName">
<simpleType>
<restriction base="string">
<pattern value="\*"/>
<pattern value="\i\c*:\*"/>
</restriction>
</simpleType>
</union>
</simpleType>
</list>
</simpleType>
<attributeGroup name="disable-output-escaping">
<attribute name="disable-output-escaping" type="xsl:YesOrNo"
use="optional" default="no"/>
</attributeGroup>
<complexType name="variable" mixed="true">
<complexContent>
<extension base="xsl:anyType">
<group ref="xsl:template" minOccurs="0" maxOccurs="unbounded"/>
<attributeGroup ref="xsl:name"/>
<attributeGroup ref="xsl:select-optional"/>
</extension>
</complexContent>
</complexType>
<simpleType name="expr-avt">
<restriction base="string">
<!-- <pattern
value="(|\{\{|\}\})\{(|&quot;[^&quot;]&quot;|'[
']*')+\}(|\{\{|\}\}|\{(|&quot;[&quot;]*&quot;|'
')+\})"/>
-->
</restriction>
</simpleType>
<simpleType name="expression">
<restriction base="string">
<!-- ****
patterns go here

-->
</restriction>
</simpleType>
<simpleType name="pattern">
<restriction base="string">
<!-- ***
patterns go here

-->
</restriction>
</simpleType>
<simpleType name="prefix">
<union memberTypes="NCName">
<simpleType>
<restriction base="string">
<enumeration value="#default"/>
</restriction>
</simpleType>
</union>
</simpleType>
<complexType name="anyType">
<anyAttribute namespace="##other" processContents="skip"/>
</complexType>
</schema>



0

Please sign in to leave a comment.