JEP 255:将选定的 Xerces 2.11.0 更新合并到 JAXP 中
概括
升级 JDK 中包含的 Xerces XML 解析器的版本,并对Xerces 2.11.0进行了重要更改。
非目标
JDK 的 Xerces 副本包含许多特定于 JDK 的更改和改进。 JDK 代码库与 Apache Xerces 项目的代码库完全同步并不是我们的目标。
成功指标
-
所选类别中的课程已完全更新。
-
不兼容之处不予介绍。解决与现有 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 串行器,
- X指针,
- 目录解析器,以及
- XML 模式验证(包括错误修复,但不包括 XML 模式 1.1 开发代码)。
JAXP 公共 API 不会发生任何变化。
本次更新将分批进行。并非每个修订版都可以单独测试。
测试
-
Xerces 中的相关测试可以合并到现有的测试套件中。
-
将开发新的测试以确保足够的变化覆盖范围。
-
需要进行大量测试以确保更新不会引入相对于现有实现的回归。
风险和假设
自从 Xerces 2.7.1 集成到 JDK 6 中以来,许多特定于 JDK 的错误修复、改进和功能添加都是独立于 Apache Xerces 项目实现的。这包括合并 StAX 解析器,它共享并修改了 Xerces 的扫描器实现。因此,可能需要修改某些 Xerces 补丁才能解决冲突。