|
Subject: Re: [xsl] Type of a variable containing values of mixed types From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 13 Apr 2015 11:59:11 -0000 |
The XQuery/XSLT type system treats sequences as homogenous, so you can only
constrain the item type and the cardinality (except where you're dealing with
elements validated against a schema, in which case the item type of the parent
can constrain the sequence of children according to the content model of an
XSD complex type).
In XQuery 3.0/XSLT 3.0 you can make greater use of union types:
<xsl:import-schema>
<xs:schema>
<xs:simpleType name="integer-or-date">
<xs:union memberTypes="xs:integer xs:date"/>
</xs:simpleType>
</xs:schema>
</xsl:import-schema>
<xsl:variable name="var" as="int-or-date*" select="...."/>
but in 2.0 you have to declare such a sequence with as="xs:anyAtomicType*"/>
Michael Kay
Saxonica
mike@xxxxxxxxxxxx
+44 (0) 118 946 5893
On 13 Apr 2015, at 11:39, Jorge . chocolate.camera@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi,
>
> I only seldom write XSLT (and specifically only 2.0) so there are many
> aspects of it that I am still not familiar with. After reading
> <http://www.ibm.com/developerworks/library/x-schemaawarexslt/index.html>
> I am forcing myself to declare the type of variables, parameters and,
> sometimes, templates. I have immediately seen the benefit of it as
> transformations I thought were simple and bug-free fail all over the
> place revealing cases I did not account for.
>
> How can I enforce that a variable contains a particular bunch of mixed
> types? Say:
>
> <xsl:variable name="MY_VAR" as="">
> <xsl:value-of select="42"/>
> <xsl:value-of select="13"/>
> <xsl:value-of select="hello"/>
> </xsl:variable>
>
> Is there a way to enforce, with the attribute `as`, that the variable
> contains a series of integers and a string (or, even, particularly 2
> integers and 1 string) or else have the transformation fail?
>
> I am using Saxon-HE 9.2.1.2J.
>
>
> Jorge
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Type of a variable contai, Justin Johansson pro | Thread | [xsl] Sorting things on two levels, Michele R Combs mrro |
| Re: [xsl] Type of a variable contai, Martin Honnen martin | Date | Re: [xsl] Type of a variable contai, Justin Johansson pro |
| Month |