moxy jaxb:映射成员属性

时间:2014-04-01 14:16:42

标签: java xml jaxb moxy

我正在尝试使用xml绑定文件(jaxb-moxy)映射以下类:

public class A{
   private String name;
   private B b;
   .....
}


public class B{
   private String surname;
}

在我的绑定文件中:

....
<java-type name="A" xml-accessor-type="NONE">
      <java-attributes>
           <xml-element java-attribute="b$surname" name="surname"/>
           <xml-element java-attribute="name" name="name"/>
      </java-attributes>
</java-type>
....

不幸的是,生成的xml总是姓氏字段为空(并且我记录了这个错误消息:忽略类[A]上的属性[b $ surname],因为没有为它生成属性)。

你能否帮我解决如何映射成员属性的问题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您希望获得以下XML文档:

<a>
    <surname>Doe</surname>
    <name>Jane</name>
</a>

对于您在问题中发布的课程,您可以使用以下映射文档。在本文档中,您将b字段映射到surname元素,然后使用B@XmlValue类中的单个字段映射。

<?xml version="1.0"?>
<xml-bindings
    xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"
    package-name="forum22788599"
    xml-accessor-type="FIELD">
    <java-types>
        <java-type name="A">
            <xml-root-element/>
            <xml-type prop-order="b name"/>
            <java-attributes>
                <xml-element java-attribute="b" name="surname"/>
                <xml-element java-attribute="name"/>
            </java-attributes>
        </java-type>
        <java-type name="B">
            <java-attributes>
                <xml-value java-attribute="surname"/>
            </java-attributes>
        </java-type>
    </java-types>
</xml-bindings>