|
Subject: RE: [xsl] xslt2 complex content sequences From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 5 Sep 2005 18:51:05 +0100 |
> What's the simplest XSLT 2 equivalent of the Xquery
>
> <a>{1,2}{3}</a>
Saxon compiles this XQuery into code equivalent to:
<xsl:element name="a">
<xsl:sequence select="1,2"/>
<xsl:text/>
<xsl:sequence select="3"/>
</xsl:element>
The zero-length text node disappears when added to an element, but it stops
the 2 and 3 being considered adjacent.
You could of course convert all the values to text nodes "by hand" using
xsl:value-of, which would eliminate all automatic spacing. That would seem
more natural in XSLT.
Michael Kay
http://www.saxonica.com/
>
> Xquery (like XSLT) puts spaces between (the string value of) atomic
> values when constructing element content, but doesn't put
> spaces between
> enclosed expressions (which are like Attribute Value Templates, except
> they work in element content as well as attributes in xquery)
>
> So you get
> <a>1 23</a>
>
> In XSLT, obvious translations are things like
>
> <a>
> <xsl:sequence select="1"/>
> <xsl:sequence select="2"/>
> <xsl:sequence select="3"/>
> </a>
>
> or
>
>
> <a>
> <xsl:sequence select="(1,2)"/>
> <xsl:sequence select="3"/>
> </a>
>
> But these are equivalent and produce space separated:
> <a>1 2 3</a>
>
> I came up with putting in an element node to stop the automatic space
> addition, then removing the extra node:
>
> <a>
> <xsl:variable name="x">
> <xsl:sequence select="1"/>
> <xsl:sequence select="2"/>
> <x/>
> <xsl:sequence select="3"/>
> </xsl:variable>
> <xsl:copy-of select="$x/node()[not(self::x)]"/>
> </a>
>
> Which produces the right thing, but that seems a bit unnatural.
> I have a feeling I've missed some construction possibility
> that lets me control this spacing directly?....
>
> David
>
> ______________________________________________________________
> __________
> This e-mail has been scanned for all viruses by Star. The
> service is powered by MessageLabs. For more information on a proactive
> anti-virus service working around the clock, around the globe, visit:
> http://www.star.net.uk
> ______________________________________________________________
> __________
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] xslt2 complex content seq, David Carlisle | Thread | Re: [xsl] xslt2 complex content seq, David Carlisle |
| Re: [xsl] Testing attribute name an, Joris Gillis | Date | Re: [xsl] xslt2 complex content seq, David Carlisle |
| Month |