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 序列化器,
- XPointer,
- 目录解析器,以及
- XML 模式验证(包括错误修复,但不包括 XML Schema 1.1 的开发代码)。
JAXP 公共 API 将不会有任何变化。
此更新将分批进行。并非每次修订都会单独测试。
测试
-
Xerces 中的相关测试可能会合并到现有的测试套件中。
-
将开发新的测试以确保对变更的充分覆盖。
-
需要进行大量的测试,以确保更新不会相对于现有实现引入回归问题。
风险与假设
自 Xerces 2.7.1 集成到 JDK 6 以来,许多针对 JDK 的错误修复、改进和功能添加都是独立于 Apache Xerces 项目实施的。这包括 StAX 解析器的集成,它共享并修改了来自 Xerces 的扫描实现。因此,一些 Xerces 补丁可能需要进行修改以解决冲突。