【问题标题】:Getting hold of FastInfoset readers and writers掌握 FastInfoset 读者和作家
【发布时间】:2010-01-22 15:18:16
【问题描述】:

JDK 1.6 包括通过 JAX-WS API 使用 FastInfoset Web 服务的功能。这些的实现隐藏在com.sun.xml.internal 的深处,其包名旨在让任何明智的Java 开发人员对上帝的恐惧(例如com.sun.xml.internal.fastinfoset.stax.StAXDocumentParser(实现XMLStreamReader)和com.sun.xml.internal.fastinfoset.stax.StAXDocumentSerializer(实现XMLStreamWriter) .

我的理解是,这些 FastInfoset 实现的使用是内部 JAX-WS 内容协商逻辑的一部分,因此不会暴露给公共 API。但是,我想显式使用 FastInfoset 实现,使用它们的公共 STAX 接口,并通过公共工厂类进行引用,而不是直接引用这些内部包。

有谁知道这个设施是否可用,也许是通过标准的 STAX 工厂?

【问题讨论】:

    标签: java xml fastinfoset


    【解决方案1】:

    XMLInputFactory 和 XMLOutputFactory 似乎是合理的。

    在我的环境中每个都有三个实现,一个是cxf(排除),一个来自codehaus(排除),另一个来自你指的fast infoset包。

    我使用 Eclipse“参考”找到了这个,因为 javadoc 不包含“使用”部分。

    【讨论】:

    • 但是那些工厂只会给你他们认为最好的实现,你不能说“我想要一个 FastInfoset 实现”......或者你可以吗?
    • 我认为你不能 - 他们使用静态 FactoryFinder.find 方法。但我认为默认情况下他们应该返回你需要的东西。
    • 看起来我在使用XMLInputFactory.newFactory() 时需要传入 FastInfoset 实现的类名。这并不比直接实例化好多少,但这是朝着正确方向迈出的一步。
    • Java6 中似乎有一个有趣的错误...XmlOutputFactory.newFactory() 的返回类型是XmlInputFactory。 API 规范的质量控制很好。
    猜你喜欢
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多