Skip to content

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