![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.saxon.data.w3c.xslt3.xslt30.xsd Maven / Gradle / Ivy
This is an XSD 1.1 schema for XSLT 3.0 stylesheets.
It defines all the elements that appear in the XSLT namespace; it also provides hooks that
allow the inclusion of user-defined literal result elements, extension instructions, and
top-level data elements.
This schema is available for use under the conditions of the W3C
Software License published at http://www.w3.org/Consortium/Legal/copyright-software-19980720
The schema is organized as follows:
- PART A: definitions of complex types and model groups used
as the basis for element definitions
- PART B: definitions of individual XSLT elements
- PART C: definitions for literal result elements
- PART D: definitions of simple types used in attribute definitions
The schema has a number of limitations:
- The XSLT specification allows additional elements and attributes to be present
where forwards compatibility is invoked. This schema does not.
- The XSLT specification allows arbitrary content in a part of the stylesheet
that is excluded by virtue of a use-when attribute. This schema does not.
- The handling of literal result elements in this schema is imperfect; although
various options are allowed, none matches the specification exactly. For example,
the content of a literal result element uses lax validation, which permits child
elements in the XSLT namespace that have no declaration in this schema.
- The schema makes no attempt to check XPath expressions for syntactic or
semantic correctness, nor to check that component references are resolved (for example
that a template named in xsl:call-template has a declaration). Doing this in general
requires cross-document validation, which is beyond the scope of XSD.
- The schema imports the schema for XSD 1.0 schema documents. In stylesheets that contain
an inline XSD 1.1 schema, this import should be replaced with one for the schema for XSD 1.1
schema documents.
PART A: definitions of complex types and model groups used as the basis for
element definitions
This complex type provides a generic supertype for all XSLT elements; it contains the
definitions of the standard attributes that may appear on any element.
This complex type provides a generic supertype for all XSLT elements with
the exception of xsl:output
; it contains the
definitions of the version
attribute that may appear on any element.
The xsl:output
does not use this definition because, although it
has a version
attribute, the syntax and semantics of this attribute are
unrelated to the standard version
attribute allowed on other elements.
This complex type provides a generic supertype for all XSLT elements that
allow a sequence constructor as their content.
This complex type allows a sequence constructor and a select attribute.
This complex type allows a sequence constructor or a select attribute, but not both.
This complex type provides a generic supertype for all XSLT elements that
allow a sequence constructor as their content.
PART B: definitions of individual XSLT elements
Elements are listed in alphabetical order.
This element appears as a child of xsl:use-package
and defines
any variations that the containing package wishes to make to the visibility of
components made available from a library package. For example, it may indicate that
some of the public components in the library package are not to be made available
to the containing package.
It is a static error if an xsl:sort element other than the first in a
sequence of sibling xsl:sort elements has a stable attribute.
The type
and validation
attributes are mutually exclusive
(if one is present, the other must be absent).
The type
and validation
attributes are mutually exclusive
(if one is present, the other must be absent).
The type
and validation
attributes are mutually exclusive
(if one is present, the other must be absent).
The type
and validation
attributes are mutually exclusive
(if one is present, the other must be absent).
The type
and validation
attributes are mutually exclusive
(if one is present, the other must be absent).
This element appears as a child of xsl:use-package
and defines
the visibility of components that are made available (or not) by this package
to other using packages.
It is a static error if an xsl:sort element other than the first in a
sequence of sibling xsl:sort elements has a stable attribute.
It is a static error if an xsl:sort element other than the first in a
sequence of sibling xsl:sort elements has a stable attribute.
These four attributes are mutually exclusive: it is a static error
if none of these four attributes is present or if more than one of them is present.
It is an error to specify the collation attribute or the composite attribute
if neither the group-by attribute nor group-adjacent attribute is specified.
A parameter for a function must have no default value.
A parameter for a function must have no visibility
attribute.
A parameter for a function must have no required
attribute.
XTSE0215: It is a static error if an xsl:import-schema element that contains an
xs:schema element has a schema-location attribute
It is a static error if a named xsl:mode declaration specifying visibility="private"
contains an xsl:context-item element.
It is a static error if the value attribute of xsl:number is present unless the
select, level, count, and from attributes are all absent.
This element appears as a child of xsl:use-package
and defines
any overriding definitions of components that the containing package wishes to make
to the components made available from a library package.
Every component that is overridden (in particular, templates) must have a name
attribute
A template that is overridden must not have a match
attribute
Declaration of the xsl:param
element, used both defining function
parameters, template parameters, parameters to xsl:iterate
,
and global stylesheet parameters.
When the static attribute is present with the value yes,
the visibility attribute must not have a value other than private
or final.
When the attribute static="yes" is specified,
the xsl:param element must have empty content.
It is a static error if an xsl:sort element other than the first in a
sequence of sibling xsl:sort elements has a stable attribute.
The type
and validation
attributes are mutually exclusive
(if one is present, the other must be absent).
The type
and validation
attributes are mutually exclusive
(if one is present, the other must be absent).
An xsl:template element must have either a match attribute or a name attribute, or both.
An xsl:template element that has no match attribute must have no mode attribute and no priority attribute.
An xsl:template element that has no name attribute must have no visibility attribute
If the visibility attribute is present with the value abstract then (a) the sequence constructor defining
the template body must be empty: that is, the only permitted children are xsl:context-item and xsl:param
If the visibility attribute is present with the value abstract then there must be no match attribute.
A parameter for a template must have no visibility
attribute.
The version attribute indicates the version of XSLT that
the stylesheet module requires. The attribute is required,
unless the xsl:stylesheet element is a child of an xsl:package
element, in which case it is optional: the default is then
taken from the parent xsl:package element.
The static attribute must not be present on an xsl:variable or xsl:param
element unless it is a top-level element.
XTSE0808: It is a static error if a namespace prefix is used within the [xsl:]exclude-result-prefixes
attribute and there is no namespace binding in scope for that prefix.
XTSE0809: It is a static error if the value #default is used within the [xsl:]exclude-result-prefixes
attribute and the parent element of the [xsl:]exclude-result-prefixes attribute has no default namespace.
This element appears as a child of xsl:package
and defines a dependency
of the containing package on another package, identified by URI in the name
attribute. The package-version
attribute indicates which version of the
library package is required, or may indicate a range of versions.
Declaration of the xsl:variable
element, used both for local
and global variable bindings.
This definition takes advantage of the ability in XSD 1.1 for an element
to belong to more than one substitution group. A global variable
is a declaration, while a local variable can appear as an instruction
in a sequence constructor.
When the static attribute is present with the value yes,
the visibility attribute must not have a value other than private
or final.
When the attribute static="yes" is specified,
the xsl:variable element must have empty content,
and the select attribute must be present to
define the value of the variable.
PART C: definition of literal result elements There are three ways to define
the literal result elements permissible in a stylesheet. (a) do nothing. This allows any
element to be used as a literal result element, provided it is not in the XSLT namespace (b)
declare all permitted literal result elements as members of the xsl:literal-result-element
substitution group (c) redefine the model group xsl:result-elements to accommodate all
permitted literal result elements. Literal result elements are allowed to take certain
attributes in the XSLT namespace. These are defined in the attribute group
literal-result-element-attributes, which can be included in the definition of any literal
result element.
PART D: definitions of simple types used in stylesheet attributes
This type is used for all attributes that allow an attribute value
template. The general rules for the syntax of attribute value templates, and the specific
rules for each such attribute, are described in the XSLT 2.1 Recommendation.
One of the values "full", "partial", or "no".
A string containing exactly one character.
Describes a kind of component within a package.
The default-mode attribute of xsl:stylesheet, xsl:transform,
xsl:package (or any other xsl:* element): either a QName or #unnamed.
An XPath 2.0 expression.
An XPath 2.1 ItemType
Describes how type annotations in source documents are handled.
The level attribute of xsl:number: one of single, multiple, or any.
The mode attribute of xsl:apply-templates: either a QName, or #current, or
#unnamed, or #default.
The mode attribute of xsl:template: either a list, each member being either
a QName or #default or #unnamed; or the value #all
XTSE0550: It is a static error if the same token is included more than once in the list.
A list of NameTests, as defined in the XPath 2.0 Recommendation. Each
NameTest is either a QName, or "*", or "prefix:*", or "*:localname"
Describes the action to be taken when there are several template rules to match an item in a given mode.
Describes the action to be taken when there is no template rule to match an item in a given mode.
The method attribute of xsl:output: Either one of the recognized names
"xml", "xhtml", "html", "text", or a QName that must include a prefix.
A match pattern as defined in the XSLT 2.1 Recommendation. The syntax for
patterns is a restricted form of the syntax for XPath 2.0 expressions. Change since XSLT
2.0: Patterns may now match any item (not only nodes)
Either a namespace prefix, or #default. Used in the xsl:namespace-alias
element.
A list of QNames. Used in the [xsl:]use-attribute-sets attribute of various
elements, and in the cdata-section-elements attribute of xsl:output
An extended QName. This schema does not use the built-in type xs:QName, but rather
defines its own QName type. This may be either a local name, or a prefixed QName, or a name written
using the extended QName notation Q{uri}local
Although xs:QName would define the correct validation on these
attributes, a schema processor would expand unprefixed QNames incorrectly when constructing
the PSVI, because (as defined in XML Schema errata) an unprefixed xs:QName is assumed to be
in the default namespace, which is not the correct assumption for XSLT. The datatype is therefore
defined as a union of NCName and QName, so that an unprefixed name will be validated as an
NCName and will therefore not be treated as having the semantics of an unprefixed xs:QName.
A subtype of EQNames that excludes no-namespace names
The description of a datatype, conforming to the SequenceType production
defined in the XPath 2.0 Recommendation
Describes whether a mode is designed to match typed or untyped nodes.
Describes different ways of type-annotating an element or attribute.
Describes different ways of type-annotating an element or attribute.
Describes the visibility of a component within a package.
Describes the visibility of a component within a package.
One of the values "yes" or "no": the values "true" or "false", or "1" or "0" are accepted as synonyms.
One of the values "yes" or "no" or "omit".
The values "true" or "false", or "1" or "0" are accepted as synonyms of "yes" and "no" respectively.
A digit that has the numerical value zero.