1 つのプロパティに JAXB アノテーションを持つクラスがあります。次に、残りの重要なデータに注釈を付けるいくつかのサブクラスがあります。ただし、マーシャリングされないように、親クラスのアノテーションを無視したいサブクラスが 1 つあります。コード例を次に示します。
親クラス:
@XmlType(name="Request")
@XmlAccessorType(XmlAccessorType.NONE)
public abstract class Request {
@XmlElement(required=true)
private UUID uuid;
... setter/getter
}
サブクラスの場合:
@Xsd(name="concreteRequest")
@XmlRootElement("ConcreteRequest")
@XmlType(name="ConcreteRequest")
@XmlAccessorType(XmlAccessorType.FIELD)
public class ConcreteClass {
@XmlElement(required=true)
private String data1;
@XmlElement(required=true)
private String data1;
... setters/getters ...
}
ConcreteClass のインスタンスを masrhall すると、次の XML が得られます。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConcreteRequest>
<uuid>uuid</uuid>
<data1>data</data1>
<data2>data</data3>
</ConcreteRequest>
次のような XML が必要な場合:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConcreteRequest>
<data1>data</data1>
<data2>data</data3>
</ConcreteRequest>
Request の他の実装がありますが、UUID が必要です。これは単なる特殊なケースです。ConcreteRequest の UUID フィールドを無視する方法はありますか?