xsl:item-type
Experimental: proposed new XSLT 4.0 declaration. Used to declare a name (or alias) for an item type.
Category: declaration
Content: none
Permitted parent elements:
xsl:package
; xsl:stylesheet
; xsl:transform
Attributes
|
|
A QName used to identify the item type uniquely within the stylesheet package. |
|
|
The definition of the item type. |
|
|
The visibility of the item type. Saxon 11 only allows the value "private", which means the item type name is available only within the containing package. |
Saxon availability
Available in the XSLT 4.0 proposal. Requires Saxon-PE or Saxon-EE. Implemented experimentally since Saxon 11. Available for all platforms.
Notes on the Saxon implementation
Available from Saxon 11; requires syntax extensions to be enabled. Also available in
earlier releases under the synonym
saxon:item-type.
In the current implementation item type names must be unique within the stylesheet;
import precedences for multiple declarations are not implemented, and item types
are not visible in other stylesheet packages. The visibility
attribute,
if present, must have the value "private"
.
Saxon 11 requires the type name to be referenced in the form as="type(typename)"
,
whereas the current XPath 4.0 proposal suggests allowing the simpler as="typename"
(which requires type alias names to be distinct from the names of atomic and union types).
For more information, see The xsl:item-type
declaration and Type aliases.
Details
The xsl:item-type
element is always used at the top level of the
stylesheet.
Examples
Declare and use a named item type as a synonym for a record type:
<xsl:item-type name="complex" as="record(r as xs:double, i as xs:double)"/> <xsl:param name="location" select="0.00" as="type(complex)"/> <xsl:variable name="location-real-part" select="$location?r" as="xs:double"/> <xsl:variable name="location-imaginary-part" select="$location?i" as="xs:double"/>