无法让 ICU4J 与 Saxon HE 10.3 一起使用

Posted

技术标签:

【中文标题】无法让 ICU4J 与 Saxon HE 10.3 一起使用【英文标题】:Can't get ICU4J working with Saxon HE 10.3 【发布时间】:2021-05-30 00:14:11 【问题描述】:

我正在尝试让国际化插件 ICU4J 与 Saxon HE 10.3 一起使用。 我在 Classpath 上有 ICU4J,但 Saxon HE 10.3 没有使用它。

在样式表中格式化日期时,例如使用...

<xsl:value-of select="format-dateTime(current-dateTime(), '[h1]:[m01] [P] on [MNn] [D].', 'de', 'AD', 'DE')"/>

...ICU4J 没有被调用来格式化日期。 如何在 Saxon HE 10.3 中注册/安装 ICU4J?

【问题讨论】:

我不认为 ICU4J 只是你放在类路径上的一个插件,然后任何 Java 程序都神奇地拥有更好的国际化支持。因此,无论是 BaseX 还是 Saxon HE,仅将 ICU4J 放在类路径上并不会提高日期格式化能力,而是在 BaseX 的情况下,在 Unicode 排序方面有所改进,因为 BaseX 代码设置为使用例如,ICU 可用,但不适用于日期格式。我对 Saxon 的理解是商业版 PE 和 EE 带有 ICU 支持,但由于商业 com.saxonica 类中的代码。 【参考方案1】:

ICU4J 集成需要 Saxon-PE 或 -EE。

见https://saxonica.com/products/feature-matrix-10.xml

【讨论】:

以上是关于无法让 ICU4J 与 Saxon HE 10.3 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

从 Saxon 9.4he 中的嵌入式资源加载 xml 和 xslt

Saxon-HE 9.3 的 javax.xml.xpath.XPathFactory 提供程序配置文件中的语法错误

XSLT 函数返回不同的结果 [Saxon-EE vs Saxon-HE/PE]

Saxon-HE 集成扩展功能 |如何以及在哪里?

Saxon-HE Java 扩展函数(问题配置)

如何在 .NET 中使用 Saxon-HE 9.8 使用 XSLT 3.0