Маршал поле / свойство для xml-элемента с дополнительным атрибутом xml name = propertyName - PullRequest
1 голос
/ 06 октября 2010

У меня есть объект 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 (и сам человек) имели атрибут "xml" элемента и имели этот элемент xml с атрибутом "name", который представляет имя поле (допустим, что Person используется как поле в классе, который здесь не показан). Кроме того, я хочу выполнить маршализацию «примитивных типов», чтобы иметь элемент «value» с соответствующим значением. Можно ли это сделать с помощью JaxB? Если да, то как? Какие другие решения вы видите, когда требуется, чтобы было легко (т.е. просто добавьте несколько аннотаций к новому полю), чтобы добавить новые «атрибуты» (то есть поля (например, адрес человека) в структуру xml / class

1 Ответ

2 голосов
/ 07 октября 2010

Вы проверили реализацию собственного пользовательского XmlAdapter и аннотировали свой тип Person с помощью @ XmlJavaTypeAdapter анотации?

Это позволяет вам определять свою собственную настроенную сериализациюстратегия.

...