在 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 的方式来实现相同的效果?