Re: [xsl] normalize-space and sequence

Subject: Re: [xsl] normalize-space and sequence
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 25 Sep 2007 23:56:01 +0100
> normalize-space() even if I am dealing with a sequence of string. If I
> do call normalize-space, the transformation implicitly convert my
> sequence of string into string (saxon 8.9).

It's helpful if you post actual code, rather than a description of it,
as I'm not sure whic case you are in It _sounds_ like you are doing

normalize-space(("aaa","bbb","ccc"))

applying the function to a sequence.
In XPath 2 (native mode) that is an error as normalize-space expects a
single string
If you are in backward compatibility mode (ie have version="1.0" in
scope) then the effect is to discard all but the first item of the
sequnce and normalize that, so you'd get "aaa".

the function for converting a sequence to a strng is string-join

string-join(("aaa","bbb","ccc"),"=")

produces the string

"aaa=bbb=ccc"


>   As a side note, there is no way to globally say 'all my xml
> attribute/elements should have normalize space'.

not on input, but on output, you can have templates such as

<xsl:template match="@*">
<xsl:attribute name="name()" select="normalize-space(.)"/>
</xsl:template>

<xsl:template match="text()">
  <xsl:value-of select=""normalize-space(.)"/>
</xsl:template>


which will make the default templates on attributes and text normalize
space.


David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread