在Java 6中,整个xerces XML解析器/序列化实现已经在Java运行时(rt.jar)中。这些包已被移动到com.sun.*命名空间下,从而使它们在客户端代码中不能显式引用。当使用javax API定义的工厂来实例化解析器时,这不是问题。
然而,我们的代码还使用了xerces序列化(org.apache.xml.serialize.*)。据我所知,没有javax.xml API定义的创建Serializer和OutputFormat实例的工厂。这似乎意味着唯一的获取方式是显式调用com.sun.org.apache.xml.serialize.* API。
我在javax.xml.stream中找到了序列化类,但它们似乎没有像xerces OutputFormat类那样提供任何输出格式控制。
问题:
是否有一种通过javax标准API访问xerces序列化功能(它确实在rt.jar中)的方法,而无需包含xerces.jar并且也不需要显式实例化com.sun.*类?
如果没有,是否有一种符合javax API的方法来实现同样的效果?
然而,我们的代码还使用了xerces序列化(org.apache.xml.serialize.*)。据我所知,没有javax.xml API定义的创建Serializer和OutputFormat实例的工厂。这似乎意味着唯一的获取方式是显式调用com.sun.org.apache.xml.serialize.* API。
我在javax.xml.stream中找到了序列化类,但它们似乎没有像xerces OutputFormat类那样提供任何输出格式控制。
问题:
是否有一种通过javax标准API访问xerces序列化功能(它确实在rt.jar中)的方法,而无需包含xerces.jar并且也不需要显式实例化com.sun.*类?
如果没有,是否有一种符合javax API的方法来实现同样的效果?