4

環境: EclipseLink MOXyを使用するJAXB 2.1.2

要件:

マーシャリング時にそのような XML を取得したいと思います。

<?xml version="1.0" encoding="UTF-8"?>
<root id="id123">
   <email>test@gmail.com</email>
   <address type="short">...</address>
</root>

これを次の 2 つのクラスでモデル化します。

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="root")
public class ClassA {

    @XmlAttribute(name="id")
    private String id = null;

    @XmlElement(name="address")
    private Address addr = new Address();

    // and some getters setters
}

@XmlAccessorType(XmlAccessType.FIELD)
public class Address {

    @XmlElement(name="address")
    private String address = null;

    @XmlAttribute(name="type")
    private String type = null;

}

私が得たのはこれで、アドレスが2回ネストされています:

<?xml version="1.0" encoding="UTF-8"?>
<root id="id123">
   <email>test@gmail.com</email>
   <address type="short">
      <address>...</address>
   </address>
</root>

1 つの階層を削除するにはどうすればよいですか?

4

1 に答える 1

7

次の活用を行うことができます@XmlValue

@XmlAccessorType(XmlAccessType.FIELD)
public class Address {

    @XmlValue
    private String address = null;

    @XmlAttribute(name="type")
    private String type = null;

}

詳細については

于 2013-01-09T15:01:48.700 に答える