Subject: Re: 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
further.
QUESTIONS 1. Does Michael's response mean that, to set the collation,
I can use the xml:lang attribute instead of the default-collation
attribute?
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.
/Roger
[1]
http://stackoverflow.com/questions/13052896/xslt-sort-edge-case-for-ascending-sort-by-element-name
|