Я пытаюсь понять, как процессор саксона выбирает по возрастанию.XSLT - Строки и номера в порядке возрастания, Saxon processor
У меня есть XML, как следует,
<catalog>
<cd>
<title lan="en">Empire Burlesque</title>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title lan="en">Hide your heart</title>
<price> </price>
<year>1988</year>
</cd>
<cd>
<title lan="fr">Greatest Hits</title>
<price>13.90</price>
<year>1982</year>
</cd>
<cd>
<title lan="sp">Still got the blues</title>
<price>abc</price>
<year>1990</year>
</cd>
<cd>
<title lan="fr">Eros</title>
<price>24.90</price>
<year>1997</year>
</cd>
</catalog>
когда я сортировать это по цене я это дает мне следующие результаты. обратите внимание, что я поместил пустую строку в одно значение цены и строку 'abc'
нет другого значения цены.
<catalog>
<cd>
<title lan="en">Hide your heart</title>
<price> </price>
<year>1988</year>
</cd>
<cd>
<title lan="en">Empire Burlesque</title>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title lan="fr">Greatest Hits</title>
<price>13.90</price>
<year>1982</year>
</cd>
<cd>
<title lan="fr">Eros</title>
<price>24.90</price>
<year>1997</year>
</cd>
<cd>
<title lan="sp">Still got the blues</title>
<price>abc</price>
<year>1990</year>
</cd>
</catalog>
Кажется, пустая строка имеет приходит первым, то цена имеет номера, сортировали, как ожидалось, и цена имеет значение строки, имеет приходит первым,
Как этот порядок определяет процессором саксонской ??
очень четкий ответ. – sanjay
Более конкретно: XSLT 2.0 говорит, что порядок по умолчанию зависит от реализации. В реализации Saxon порядок по умолчанию определяется значениями кода Unicode. Если вам нужна цифровая сортировка, использование типа data = «number» работает хорошо. Если у вас есть смесь текстовых и числовых, то задание 'collation =" http: //saxon.sf.net/collation? Alphanumeric = yes' может дать наилучшие результаты - хотя я не уверен, обрабатывает ли он десятичные числа как целые числа. –