[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Sorting values that contain spaces


Subject: RE: [xsl] Sorting values that contain spaces
From: "Brook Ellingwood" <belling@xxxxxxx>
Date: Thu, 21 Jul 2005 12:30:07 -0700

>The simplest answer is probably to invoke the "codepoint collation"
which collates every character according to its numeric Unicode value.

Would that give a different output than this: <xsl:sort
select="normalize-space(@name)"/> ?


-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Sent: Thursday, July 21, 2005 12:27 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Sorting values that contain spaces


The simplest answer is probably to invoke the "codepoint collation"
which collates every character according to its numeric Unicode value.
You can invoke this using

<xsl:sort
collation="http://www.w3.org/2005/04/xpath-functions/collation/codepoint
"/>

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: JBryant@xxxxxxxxx [mailto:JBryant@xxxxxxxxx]
> Sent: 21 July 2005 19:50
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] Sorting values that contain spaces
>
> Hi, Mike,
>
> I'm using Saxon 8.4, but I tested it with Xalan-J 2.4.1 and
> got the same
> result (I guess you and the Xalan folks chose the same implementation
> scheme).
>
> Lazy bum that I am, I was hoping for a method that wouldn't
> require a Java
> extension, but I guess I'll go tinker with Java and see what
> I can do.
> I've already extended Saxon with my own Java class (to get a list of
> filenames from a directory), so it's not a total mystery.
>
> The source code for Saxon must include at least one collation class
> already, so I'll start with that and the Java API reference.
> Any advice or
> samples of collation classes that you might be able to point
> to would be
> much appreciated, of course.
>
> Thanks.
>
> Jay Bryant
> Bryant Communication Services
> (presently consulting at Synergistic Solution Technologies)
>
>
>
>
>
> "Michael Kay" <mike@xxxxxxxxxxxx>
> 07/21/2005 12:47 PM
> Please respond to
> xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>
>
> To
> <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> cc
>
> Subject
> RE: [xsl] Sorting values that contain spaces
>
>
>
>
>
>
> Collating sequences are implementation-defined, so you need
> to say which
> processor you are using.
>
> XSLT 2.0 and Saxon 8 give you control over the choice of collating
> sequence
> (though you need to understand the underlying Java mechanisms
> pretty well
> to
> exploit this).
>
> Michael Kay
> http://www.saxonica.com/
>
>
> > -----Original Message-----
> > From: JBryant@xxxxxxxxx [mailto:JBryant@xxxxxxxxx]
> > Sent: 21 July 2005 17:57
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] Sorting values that contain spaces
> >
> > Given input like this (a list of SQL table names):
> >
> > <tables>
> >   <table name="Claim"/>
> >   <table name="Claim Aggregate Queue"/>
> >   <table name="Claimant"/>
> >   <table name="Claim Association Fact"/>
> > </tables>
> >
> > And XSL like this:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsl:stylesheet version="2.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> >
> >   <xsl:template match="tables">
> >     <xsl:for-each select="table">
> >       <xsl:sort select="@name"/>
> >       <xsl:value-of select="@name"/><xsl:if test="not(position() =
> > last())"><xsl:text>, </xsl:text></xsl:if>
> >     </xsl:for-each>
> >   </xsl:template>
> >
> > </xsl:stylesheet>
> >
> > I get this:
> >
> > Claim, Claim Aggregate Queue, Claimant, Claim Association Fact
> >
> > I would like to get this:
> >
> > Claim, Claim Aggregate Queue, Claim Association Fact, Claimant
> >
> > How can I get that?
> >
> > I checked the FAQ and various archives of the list, but I
> didn't find
> > anything on target.
> >
> > Thanks.
> >
> > Jay Bryant
> > Bryant Communication Services
> > (presently consulting at Synergistic Solution Technologies)


Current Thread
Keywords