Re: [xsl] Comparing possibly empty string sequences

Subject: Re: [xsl] Comparing possibly empty string sequences
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 23 Mar 2010 15:57:01 +0100
Ouch! Of course I should have written:

as="xsd:string*"

and not select= as I was thinking about the constraints but typing out of habit. Too distracted today.

. . . . . . . . . . Ken

At 2010-03-23 15:51 +0100, G. Ken Holman wrote:
At 2010-03-23 15:47 +0100, Martynas Jusevicius wrote:
a question somewhat related to my previous one.
Say I have $classes, a sequence of classnames (strings), possibly empty.

Fine ... cardinality 0 to many.


Now I want to select elements which @class attribute contains any of
the classnames from $class:
h:*[@class/tokenize(., '\s+') = $break-classes)]

In other words, select elements where tokenized @class intersects with $class.

It works fine unless $classes is an empty sequence, in which case I
get an error:
"XTTE0570: An empty sequence is not allowed as the value of variable $classes"

That is a declaration problem, not an executon problem. You don't show your declaration for $classes, but I'm assuming the declaration does not accommodate a cardinality of zero.


If it is:

<xsl:variable name="classes" select="xsd:string+"...

... then change it to:

<xsl:variable name="classes" select="xsd:string*"...

I hope this helps.

. . . . . . . . . Ken


--
XSLT/XQuery training:         San Carlos, California 2010-04-26/30
Principles of XSLT for XQuery Writers: San Francisco,CA 2010-05-03
XSLT/XQuery training:                 Ottawa, Canada 2010-05-10/14
XSLT/XQuery/UBL/Code List training: Trondheim,Norway 2010-06-02/11
Vote for your XML training:   http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread