【发布时间】:2011-06-22 20:02:22
【问题描述】:
到目前为止,我对 JAXB 所做的阅读表明,它的使用仅限于序列化可以正确注释的类(即具有类的源)。
有没有办法使用 JAXB 使用反射序列化 3rd-party 类(即没有源)?
此时,我正在手动执行此操作。
【问题讨论】:
标签: java xml-serialization jaxb marshalling
到目前为止,我对 JAXB 所做的阅读表明,它的使用仅限于序列化可以正确注释的类(即具有类的源)。
有没有办法使用 JAXB 使用反射序列化 3rd-party 类(即没有源)?
此时,我正在手动执行此操作。
【问题讨论】:
标签: java xml-serialization jaxb marshalling
注意:我是 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>
更多信息
【讨论】:
我不确定,但如果您只是尝试将对象序列化和反序列化为 XML 并返回,您可能想查看 xstream (http://x-stream.github.io/)。
问候 -萨沙-
【讨论】: