[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: A sequence of more than one item is not allowed as
> > <xsl:variable name="foo" as="xs:string"> > > <xsl:text/>abc<xsl:value-of select="'def'"/> </xsl:variable> > > > > <xsl:value-of select="$foo"/> > > > > Gives the error message: "A sequence of more than one item is not > > allowed as the value of item $foo" > > > > This is because variable $foo contains two strings, > > beware of the difference between a text node and a string. > The content of your variable constructs a sequence of two > text nodes. It then tries to cast these to a string as that's > what you specified in the as attribute and that fails. > > This would work: > > <xsl:variable name="foo" as="xs:string"> > <xsl:value-of>abc<xsl:value-of > select="'def'"/></xsl:value-of> </xsl:variable> Ahh ok, I will have to read up on <xsl:value-of/> - the only place I've seen this before is wd-xsl, looks odd now. [snip] > > > > Is it really the case that we will have to be very aware of > how many > > items we are creating > > Welcome to the wonderful world of strict type checking:-) > Often as not the only reason for using an as attribute is to > generate an error on code that would otherwise work as you > want to trap user-errors earlier rather than rely on implicit > conversions. So if you say as="xs:string" you are saying that > you want exactly one string, so if you give it a sequence of > two things you error. This is either a good thing or a bad > thing, depending on whether, at heart, you are a lisp > programmer or a pascal one:-) The goal of specifying as="xs:string" is to prevent the unnecessary contruction of a document node. I'm trying to remove all implicit type conversions and keep the types as restrictive as possible, mainly because it's good practice but also for the performance benefits. I think because it's type
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|