The starts-with() function tests whether the sequence of collation units derived from the second argument is a leading subsequence of the sequence of collation units derived from the first argument.

If you want e,E,é to compare equal (that is, to have the same collation unit allocated) you need to write e=E=é . The "," separates two characters having a tertiary difference (case); semicolon separates two characters having a secondary difference (accent), "<" separates characters with a primary difference, and "=" separates characters with no difference. For substring() to treat the characters as equal, there must be no difference.

Michael Kay

On 05/10/2010 12:54 PM, Scholte, Hans wrote:



I’ve written a class for our own collation with xslt and it works nicely. I tried the same syntax for the starts-with() function but without success.

The sort is called like:


<xsl:sort select="." order="ascending" data-type="text" collation=";"/>


In the RulesString I defined the ‘é’ (u00E9) to be sorted like ‘e’


How do I select, say authors, starting with ‘e’, ‘é’, etc.. ??

Like: //author[starts-with(., ‘e’, ‘’)]


The DutchCollation class extends a java.text.RuleBasedCollator (public class DutchCollation extends RuleBasedCollator), the rulesstring is a string like “< a,A < b,B < c,C < d,D < e,E,é”






Hans Scholte
Digital Production Centre
University Library
University of Amsterdam
Singel 425, 1012 WP Amsterdam
The Netherlands
+31 (20) 525 3528




------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today.
_______________________________________________ saxon-help mailing list archived at