Subject: Re: [xsl] How do I not ignore whitespace when sorting?|
From: "Mark Wilson" <drmark@xxxxxxxxxxxxxxx>
Date: Sun, 18 Dec 2005 11:08:08 -0500
Collating sequences in XSLT 1.0 are entirely implementation-defined. There's
a strong suggestion in the spec that the system should choose a collation
appropriate to the natural language in use. Conventions for handling spaces
and punctuation within the strings to be sorted are notoriously variable,
but ignoring spaces is quite common, and certainly not incorrect: if I look
up "ad hoc" in a dictionary, I expect to find it between "adhesive" and
In 2.0 there's a more formal mechanism for identifying the collation you want to be used, but it's still essentially implementation-defined what collations are available with a particular product.
You might find that a pragmatic solution is to use translate() to modify the
characters in the string before sorting.
Michael Kay http://www.saxonica.com/
-----Original Message----- From: Mark Wilson [mailto:drmark@xxxxxxxxxxxxxxx] Sent: 18 December 2005 15:29 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] How do I not ignore whitespace when sorting?
Thanks for all the help with my previous question. This is my first week with XSLT, so please forgive my not knowing where to look. I have tracked down many comments on sorting, but failed to find one to answer the following.
I am trying to sort a library subject catalog. I finally realized that the default <xsl:sort> was ignoring whitespace within the value of the element. The order I get is: Catalogs. Austria Catalogs -- Zepplins
when I what I want is: Catalogs -- Zepplins Catalogs. Austria. ( for the *space* at the end of 'catalogs ' to file before the *period* at the end of 'catalogs.'
I was able to demonstrate to myself that white space is ignored when I inserted a *space within* the word 'cat alogs' and still got this result: Catalogs. Austria Cat alogs -- Zepplins
Since this means that everyone would have serious problems sorting things like "Art tissue" and Artisians", I assume there must be a way. Can I, and if so how do I, tell <xsl:sort> not to ignore whitespace? Do I need a special external colation? Thanks, Mark