JEP 255: Merge Selected Xerces 2.11.0 Updates into JAXP | 将选定的 Xerces 2.11.0 更新合并到 JAXP 中
摘要
升级 JDK 中包含的 Xerces XML 解析器的版本,采用 Xerces 2.11.0 的重要更改。
非目标
JDK 的 Xerces 副本包含许多 JDK 特定的更改和改进。完全与 Apache Xerces 项目的 JDK 代码库同步不是一个目标。
成功指标
所选类别中的类完全更新。
不引入不兼容性。解决与现有 JDK 代码的任何冲突时,优先选择现有的 JDK 代码。
不发生回归。
动机
JDK 包含较旧的 Xerces 2.7.1 解析器。在开发 JDK 7 期间,它使用了来自 Xerces 2.10.0 的所有关键和许多重要更改进行了更新。此后,Xerces 2.11.0 发布了。将升级到最新版本将有助于提高 JDK 实现的质量。
描述
从 Xerces 2.11.0 中更新 JDK 中的以下类别的更改:
- 数据类型
- DOM L3 序列化器
- XPointer
- 目录解析器
- XML 模式验证(包括错误修复,但不包括 XML 模式 1.1 开发代码)
JAXP 公共 API 不会发生改变。
此更新将分批进行。不会对每个修订版进行单独测试。
测试
可以将 Xerces 中的相关测试合并到现有的测试套件中。
将开发新的测试以确保充分覆盖更改。
需要进行大量测试以确保更新不会引入相对于现有实现的回归。
风险和假设
自从将 Xerces 2.7.1 集成到 JDK 6 以来,许多特定于 JDK 的错误修复、改进和功能添加是独立于 Apache Xerces 项目实现的。这包括了 StAX 解析器的整合,它共享并修改了源自 Xerces 的扫描器实现。因此,可能需要修改某些 Xerces 补丁以解决冲突。