使用JAXB的XmlSerialize第三方类

时间:2011-06-22 20:02:23

标签: java xml-serialization jaxb marshalling

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

有没有办法使用JAXB来序列化第三方类(即一个没有源代码)使用反射?

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

2 个答案:

答案 0 :(得分: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>

了解更多信息

答案 1 :(得分:0)

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

问候 -Sascha -