[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: How do I not ignore whitespace when sorting?

Subject: RE: How do I not ignore whitespace when sorting?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 18 Dec 2005 15:37:19 -0000
sort ignore periods
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
"adieu".

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:  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 

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.