Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 根据古闪族语言的字母排列单词_Sorting_Xslt_Saxon_Xslt 3.0 - Fatal编程技术网

Sorting 根据古闪族语言的字母排列单词

Sorting 根据古闪族语言的字母排列单词,sorting,xslt,saxon,xslt-3.0,Sorting,Xslt,Saxon,Xslt 3.0,我使用XSLT3.0,萨克森PE9.7 我需要根据乌加里特语对orth进行排序,接近希伯来语,但带有附加字符 我试过: <xsl:sort select="orth" data-type="text" order="ascending" lang="uga"/> 但提议的命令是不正确的。所以我想我需要描述一下乌加里特语的字母顺序。我该怎么办 提前,非常感谢。我不确定这是否是最好的解决方案,但这是我知道的 您正在搜索的代码是: <xsl:sort select

我使用XSLT3.0,萨克森PE9.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="&lt; ʾa &lt; b &lt; g &lt; ḫ &lt; d &lt; h &lt; w &lt; z &lt; ḥ &lt; ṭ &lt; y &lt; k &lt; š &lt; l &lt; m &lt; ḏ &lt; n &lt; ẓ &lt; s &lt; ʿ &lt; p &lt; ṣ &lt; q &lt; r &lt; ṯ &lt; ġ &lt; t &lt; ʾi &lt; ʾu &lt; s2"/>
 </collations>

rules
属性中使用的语法是为Java类
rulebasedcolator
定义的语法,这里有一个挪威语的示例。唯一需要注意的是,Java语法是纯文本,而Saxon配置是XML,因此我认为Saxon 9.7文档中的
部分是相关的。谢谢@Martin。我试图查看
CollationURIResolver
。我想你说的是
startsWith
(.我测试了一个字母(
),但它不起作用。我认为您还不了解该配置是关于什么的,您需要在实现Java.util.Comparator或Saxon配置文件的Java类中声明您的排序规则。完成后,您可以使用
collation
属性
xsl:sort
,例如
collation="http://saxon.sf.net/collation?class=yourFullClassHere“
select
属性将保留为
select=“orth"
。因此,这项任务将在XSLT代码之外通过编写该字母表的排序规则来解决。那么,哪些字符构成了该语言,是吗?这些字符不是按Unicode代码点排序的吗?谢谢@Martin。关于Ugaritic,我使用的是转录,而不是楔形符号。关于Saxon链接,对不起如果我不懂,这对新手来说并不容易,尤其是当英语不是第一语言时。我确实看了看,但这对我来说太复杂了。我不知道
java
。在
XSLT
中没有其他方法可以做到这一点?谢谢@Christian。我试过了,但我有以下信息没有为类型(xs:boolean,xs:integer)的参数定义算术运算符。"因此,我试图定义
参数
,并用
替换
,但它也不起作用。这不是正确的方法。我将亲自回来回答这个问题,但正确的方法是要么在ICU库中找到做这项工作的正确排序规则,要么实现一个新的排序规则是的。可能有必要使用xsl:sort的collation参数而不是lang参数。Michael可能是对的。正如我所写的,我非常确定有更好的解决方案。这对我获得字母表的自己排序的任务很有用。非常感谢@Martin!对于新手(我也是这样)来说,只是一些额外的信息:特别是对于那些使用Oxygen 19.1的人,配置文件名为“Saxon configuration.xml”。默认设置为
Edition=EE
。由于我使用的是Saxon PE,所以我改为
Edition=PE
。之后,在transformation editor场景中,我添加了可以从“Transformer”窗口添加的配置文件(上述“参数”)。然后在xslt文件中:
感谢Martin的回答。我只想添加一些观察结果,主要是为了稍后来到这里的其他人。Saxon实际上为您提供了两种选择Ugaritic排序规则的方法:在
xsl:sort
上,您可以指定
lang='uga'
或'collation=''。目前,第一种方法选择Ugaritic的JDK语言环境,而第二个选择ICU-J版本。我不知道它们是否不同。但是,这两个版本当然都不能处理音译输入。
            <xsl:perform-sort select="$input-seq">
                <xsl:sort select="string()" collation="http://example.com/uga-trans"/>
            </xsl:perform-sort>