首页 > 解决方案 > Saxon PE 和 EE 从 format-date 返回不同的结果

问题描述

以下 xpath 表达式似乎在 Saxon 的不同版本中产生不同的结果:

format-date(xs:date('-0800-01-01'), '[Y]')

具体来说,Saxon- E E 9.9.1.5 产生“799”,而 Saxon- P E 9.9.1.5 产生“800”。我正在通过 oXygen v22.0 中的 XSLT 调用此代码。

有谁知道这可能是为什么?

标签: xpathsaxon

解决方案


处理负年份可能有不同的配置设置。从 XSD 1.0 到 XSD 1.1 发生了变化 - XSD 1.1 与 ISO 8601 一致,通过使用天文学家的惯例(有 0 年)而不是历史学家的惯例(没有)。Saxon 有一个配置开关来选择 XSD 1.0 或 XSD 1.1 规则,这会影响到基督教时代之前的几年的处理。


推荐阅读