All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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.




© 2015 - 2025 Weber Informatics LLC | Privacy Policy