Re: [xsl] Use the xml:lang attribute to set the collation?

Subject: Re: [xsl] Use the xml:lang attribute to set the collation?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 07 Jan 2013 15:36:15 +0000
On 07/01/2013 15:28, Costello, Roger L. wrote:
Hi Folks,

Michael Kay wrote this response to a StackOverflow question [1]:

Saxon's default collation is Unicode codepoint, which is fast but not
smart. Setting lang="en" will immediately give you a smarter
natural-language collation. There are then many options to refine it

QUESTIONS 1. Does Michael's response mean that, to set the collation,
I can use the xml:lang attribute instead of the default-collation

No, lang not xml:lang as an attribute of xsl:sort

2. Would you please give an example of a comparison where the result of the comparison is true when xml:lang="A" but false when xml:lang="B"? That is, what values would you place in here:

in the default unicode code point order A-Z come before a-z so Zebra comes before apple

If lang="en" then a and A are before z and Z (in the collation that saxon uses in that case)

so Zebra comes after apple

<Test xml:lang="__"> <xsl:value-of select=" '__' lt '__' " /> </Test>

If you are using lt rather than xsl:sort I think you need to set the collation URI explicitly rather than use lang.


Current Thread