根据古老的闪族语言的字母对单词进行排序
Sorting words according to letters of an old Semitic language
我使用 XSLT 3.0、Saxon-PE 9.7。
我需要根据乌加里特语排序orth
,接近希伯来语但有额外的字符。
我试过:
<xsl:sort select="orth" data-type="text" order="ascending" lang="uga"/>
但是建议的顺序不正确。所以我想我需要描述乌加里字母顺序。我能怎么做?
提前,非常感谢。
我不确定这是否是最好的解决方案,但这是我所知道的。
您要搜索的代码是:
<xsl:sort select="((orth='character1') * 1) + ((orth='character2') * 2) + ((orth='character3') * 3) ..." data-type="text" order="ascending"/>
您需要对字母表中的每个字符执行此操作。乘法越低,它出现在结果中的时间就越早。基本上,您是在为指定值定义自己的顺序。
Saxon 允许您在其配置文件中定义自己的排序规则,您基本上必须设置一个配置文件,其中包含
<collations>
<collation uri="http://example.com/uga-trans"
rules="< ʾa < b < g < ḫ < d < h < w < z < ḥ < ṭ < y < k < š < l < m < ḏ < n < ẓ < s < ʿ < p < ṣ < q < r < ṯ < ġ < t < ʾi < ʾu < s2"/>
</collations>
其中 uri
属性将 URI 定义为排序规则的名称,然后您可以在 xsl:sort
:
的 collation
属性中使用该名称
<xsl:perform-sort select="$input-seq">
<xsl:sort select="string()" collation="http://example.com/uga-trans"/>
</xsl:perform-sort>
rules
属性中使用的语法是为 Java class RuleBasedCollator
https://docs.oracle.com/javase/7/docs/api/java/text/RuleBasedCollator.html 定义的语法,那里有一个示例对于挪威语。唯一需要注意的是,Java 语法是纯文本,而 Saxon 配置是 XML,因此定义顺序的 <
必须在 rules
属性中转义为 <
.
我已经根据维基百科文章 https://en.wikipedia.org/wiki/Ugaritic_alphabet 中提供的转录序列设置了上面的规则。我不确定这是否是您要找的人。
您可以从命令行 运行 Saxon -config:yourconfiguationfile.xml
使用这样的配置,oXygen 在 Saxon 特定转换场景对话框中有一个字段到 select 配置文件。
我使用 XSLT 3.0、Saxon-PE 9.7。
我需要根据乌加里特语排序orth
,接近希伯来语但有额外的字符。
我试过:
<xsl:sort select="orth" data-type="text" order="ascending" lang="uga"/>
但是建议的顺序不正确。所以我想我需要描述乌加里字母顺序。我能怎么做?
提前,非常感谢。
我不确定这是否是最好的解决方案,但这是我所知道的。
您要搜索的代码是:
<xsl:sort select="((orth='character1') * 1) + ((orth='character2') * 2) + ((orth='character3') * 3) ..." data-type="text" order="ascending"/>
您需要对字母表中的每个字符执行此操作。乘法越低,它出现在结果中的时间就越早。基本上,您是在为指定值定义自己的顺序。
Saxon 允许您在其配置文件中定义自己的排序规则,您基本上必须设置一个配置文件,其中包含
<collations>
<collation uri="http://example.com/uga-trans"
rules="< ʾa < b < g < ḫ < d < h < w < z < ḥ < ṭ < y < k < š < l < m < ḏ < n < ẓ < s < ʿ < p < ṣ < q < r < ṯ < ġ < t < ʾi < ʾu < s2"/>
</collations>
其中 uri
属性将 URI 定义为排序规则的名称,然后您可以在 xsl:sort
:
collation
属性中使用该名称
<xsl:perform-sort select="$input-seq">
<xsl:sort select="string()" collation="http://example.com/uga-trans"/>
</xsl:perform-sort>
rules
属性中使用的语法是为 Java class RuleBasedCollator
https://docs.oracle.com/javase/7/docs/api/java/text/RuleBasedCollator.html 定义的语法,那里有一个示例对于挪威语。唯一需要注意的是,Java 语法是纯文本,而 Saxon 配置是 XML,因此定义顺序的 <
必须在 rules
属性中转义为 <
.
我已经根据维基百科文章 https://en.wikipedia.org/wiki/Ugaritic_alphabet 中提供的转录序列设置了上面的规则。我不确定这是否是您要找的人。
您可以从命令行 运行 Saxon -config:yourconfiguationfile.xml
使用这样的配置,oXygen 在 Saxon 特定转换场景对话框中有一个字段到 select 配置文件。