【问题标题】:XmlSerialize 3rd-party class using JAXB使用 JAXB 的 XmlSerialize 3rd-party 类
【发布时间】:2011-06-22 20:02:22
【问题描述】:

到目前为止,我对 JAXB 所做的阅读表明,它的使用仅限于序列化可以正确注释的类(即具有类的源)。

有没有办法使用 JAXB 使用反射序列化 3rd-party 类(即没有源)?

此时,我正在手动执行此操作。

【问题讨论】:

    标签: java xml-serialization jaxb marshalling


    【解决方案1】:

    注意:我是 EclipseLink JAXB (MOXy) 负责人,也是 JAXB 2 (JSR-222) 专家组的成员。

    EclipseLink JAXB (MOXy) 提供了一个扩展,使您能够将元数据表示为 XML 允许,这在映射第三方类时是必需的:

    示例

    <?xml version="1.0"?>
    <xml-bindings
        xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
        package-name="blog.bindingfile">
        <xml-schema
            namespace="http://www.example.com/customer"
            element-form-default="QUALIFIED"/>
        <java-types>
            <java-type name="Customer">
                <xml-root-element/>
                <xml-type prop-order="firstName lastName address phoneNumbers"/>
                <java-attributes>
                    <xml-element java-attribute="firstName" name="first-name"/>
                    <xml-element java-attribute="lastName" name="last-name"/>
                    <xml-element java-attribute="phoneNumbers" name="phone-number"/>
                </java-attributes>
            </java-type>
            <java-type name="PhoneNumber">
                <java-attributes>
                    <xml-attribute java-attribute="type"/>
                    <xml-value java-attribute="number"/>
                </java-attributes>
            </java-type>
        </java-types>
    </xml-bindings>
    

    更多信息

    【讨论】:

      【解决方案2】:

      我不确定,但如果您只是尝试将对象序列化和反序列化为 XML 并返回,您可能想查看 xstream (http://x-stream.github.io/)。

      问候 -萨沙-

      【讨论】:

        猜你喜欢
        • 2017-01-04
        • 1970-01-01
        • 1970-01-01
        • 2017-11-02
        • 1970-01-01
        • 2019-04-21
        • 1970-01-01
        • 2018-06-19
        • 2021-11-18
        相关资源
        最近更新 更多