跳到主要内容

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 补丁才能解决冲突。