xsl-list
[Top] [All Lists]

RE: Sorting values that contain spaces

2005-07-21 11:50:06
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(_at_)saxonica(_dot_)com> 
07/21/2005 12:47 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com


To
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
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(_at_)s-s-t(_dot_)com [mailto:JBryant(_at_)s-s-t(_dot_)com] 
Sent: 21 July 2005 17:57
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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)

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--