gpt4 book ai didi

java - Java 6 中的 xerces 序列化

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:36 24 4
gpt4 key购买 nike

在 Java 6 中,整个 xerces XML 解析器/序列化器实现现在位于 Java 运行时 (rt.jar) 中。这些包已移至 com.sun.* 命名空间下,这使得它们禁止在客户端代码中显式引用。这在使用解析器时不是问题,解析器是通过 javax API 定义的工厂实例化的。

但是,我们的代码还使用了 xerces 序列化 (org.apache.xml.serialize.* )。 AFAICT,没有用于创建 Serializer 和 OutputFormat 实例的 javax.xml API 定义工厂。这似乎暗示获得一个的唯一方法是显式调用 com.sun.org.apache.xml.serialize.* API。

我在 javax.xml.stream 中找到了序列化类,但它们似乎没有像 xerces OutputFormat 类那样提供任何输出格式控制。

问题:

有没有一种方法可以通过 javax 标准 API 访问 xerces 序列化功能( 在 rt.jar 中),而不包括 xerces.jar 也没有显式实例化 com.sun.* 类?

如果没有,是否有符合 javax API 的方法来实现相同的效果?

最佳答案

如果您想使用未通过官方 java.*javax.* API 公开的 Xerces 功能,那么您唯一真正的解决方案是将 Xerces 作为第三方库。以任何方式访问 Xerces 的 JRE 内部版本都是一件危险的事情,因为没有任何东西可以保证有效的 JRE 甚至具有这些类(替代 JRE 甚至同一 JRE 的其他版本可能使用不同的实现甚至实现 JAXP API只需将其移至另一个包即可)。

关于java - Java 6 中的 xerces 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2898793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com