使用附加的xml-attribute name = propertyName将字段/属性编组为xml元素

时间:2010-10-06 12:47:47

标签: java xml jaxb marshalling

我有一个java对象:

public class Person {
    private String firstName = "Harry";
    private String lastName = "Hacker";
    private int age = 30;
}

我想编组成以下xml:

<attribute xsi:type="someType" name="Person">
  <attribute xsi:type="CustomStringType" name="firstName">
    <value>Harry</value>
  </attribute>
  <attribute xsi:type="CustomStringType" name="lastName">
    <value>Hacker</value>
  </attribute> 
  <attribute xsi:type="CustomIntType" name="age">
    <value>30</value>
  </attribute>
</attribute>

所以我想要做的是,我希望Person(和person本身)中的所有对象都是xml-element“attribute”,并且这个xml-element的属性为“name”,表示名称字段(假设Person用作此处未显示的类中的字段)。另外,我想编组“原始类型”以使“value”元素具有适当的值。 可以使用JaxB完成吗?如果有,怎么样?当需求变得容易(即只是向新字段添加一些注释)以向xml /类结构添加新的“属性”(即字段(例如人的地址))时,您会看到其他什么解决方案? ?

1 个答案:

答案 0 :(得分:2)

您是否检查过实施自己的自定义XmlAdapter,并使用@XmlJavaTypeAdapter注释注释您的人员类型?

它允许您定义自己的自定义序列化策略。