RE: sort

The attribute case-order="upper-first" is only supposed to control the
relative order of the upper and lower case versions of the same letter, e.g.
whether "a" comes before "A". None of your sort keys differ only in case, so
the attribute should have no effect in this case.

In XSLT 1.0 this is under-specified in two respects.

Firstly, it doesn't say whether case affects the primary ordering of the
characters or whether it is only used when strings are otherwise equal. If
case-order="upper-first", then "Ab" should sort before "ab", but should "Ac"
sort before "ab"? The spec leaves this undefined. (In fact, there is a note
pointing out that all details of collating sequence are essentially
implementation-defined).

Secondly, the interaction with "order=descending" is unspecified. XSLT 2.0
clarifies that case-order affects the choice of a collating sequence, and
order=descending causes items to be sorted in the reverse of their order
implied by the collating sequence. So if you say case-order="upper-first"
and order="descending", then "a" should appear before "A". I think this is
the intended meaning in XSLT 1.0 also, but it doesn't say so explicitly.

In XSLT 2.0, of course, sorting is based on named collations, and case-order
is now described essentially as a hint to the processor to assist in
choosing a suitable collation when no explicit collation is specified.

Michael Kay


> -----Original Message-----
> From: David.Pawson@rnib.org.uk [mailto:David.Pawson@rnib.org.uk] 
> Sent: 10 April 2003 14:58
> To: public-qt-comments@w3.org
> Subject: xsl:sort 
> 
> 
> 
> 
> <xsl:variable name="rString"
>   select="('AB','c', 'dEF', 'ghij', 'KLmno','PqrSt','uvwxy','z','123',
> '456789')"/>
> 
> <xsl:for-each select="$rString">
> <xsl:sort select="."  order="descending"   case-order ="upper-first"/>
>   <xsl:value-of select="." separator="| "/>
> </xsl:for-each>
> 
> The requirement is to sort the sequence with a conflicting 
> order, both upper case first and descending (I think that's 
> conflicting).
> 
> Saxon 7.4 gives me
> zuvwxyPqrStKLmnoghijdEFcAB456789123 
> which appears to satisfy the descending.
> 
> I can't find anything in the WD which specifies which might 
> take precedent?
> 
> 
> 
> Regards DaveP.
> 
> **** snip here *****
> 
> - 
> 
> NOTICE: The information contained in this email and any 
> attachments is 
> confidential and may be legally privileged. If you are not the 
> intended recipient you are hereby notified that you must not use, 
> disclose, distribute, copy, print or rely on this email's content. If 
> you are not the intended recipient, please notify the sender 
> immediately and then delete the email and any attachments from your 
> system.
> 
> RNIB has made strenuous efforts to ensure that emails and any 
> attachments generated by its staff are free from viruses. However, it 
> cannot accept any responsibility for any viruses which are 
> transmitted. We therefore recommend you scan all attachments.
> 
> Please note that the statements and views expressed in this email 
> and any attachments are those of the author and do not necessarily 
> represent those of RNIB.
> 
> RNIB Registered Charity Number: 226227
> 
> Website: http://www.rnib.org.uk 
> 

Received on Friday, 11 April 2003 05:39:00 UTC