xpath - 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 调用此代码。
有谁知道这可能是为什么?
解决方案
处理负年份可能有不同的配置设置。从 XSD 1.0 到 XSD 1.1 发生了变化 - XSD 1.1 与 ISO 8601 一致,通过使用天文学家的惯例(有 0 年)而不是历史学家的惯例(没有)。Saxon 有一个配置开关来选择 XSD 1.0 或 XSD 1.1 规则,这会影响到基督教时代之前的几年的处理。
推荐阅读
- c# - 作为异步函数调用的结果返回 IEnumerable
- c# - 在 .NET Core 下的分层架构中自动创建 CRUD
- javascript - 根据选择值显示元素
- javascript - 为什么没有垂直滚动条时window.innerWidth不等于outerWidth?
- amazon-web-services - 堡垒和应用服务器 ec2 之间的 vpc 对等问题
- codeigniter - 在 Codeigniter 中发布表单后的 URL 更改问题
- php - 如何在 PHP 中使用 API 在不刷新页面的情况下获取更新的分数
- php - 如何用 wordpress 函数中两个字符串之间的变量替换 wp-post 内容?
- opencart - 在发票打印中添加客户电子邮件和电话号码
- c++ - CMake/MinGW 未知编译器,gcc.exe 损坏