重複の可能性:
xjc とカスタマイズされたバインディングを使用して XMLElementWrapper アノテーションを生成する方法
この形式のXMLをJAXBで処理できるようにしたいのですが...
<configuration>
<!-- more content here -->
<things>
<thing>
<name>xx1</name>
<value>yy1</value>
</thing>
<thing>
<name>xx2</name>
<value>yy2</value>
</thing>
</things>
<!-- more content here -->
</configuration>
上記の XML をこれらの Java クラスにマーシャリングしたいと思います (簡単にするために、getter/setter だけでなく などの修飾子も残しました) public
。protected
class Configuration {
List<Thing> things;
}
class Thing {
String name;
String value;
}
現在の XSD 構造の関連部分は、おおよそ次のようになります。
<complexType name="Configuration">
<sequence>
<!-- ... -->
<element name="things" type="ns:Things" minOccurs="0" maxOccurs="unbounded"/>
<!-- ... -->
</sequence>
</complexType>
<complexType name="Things">
<sequence>
<element name="thing" type="ns:Thing" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
残念ながら、XJCThings
は、処理の Java 部分で本当に不要な場合でもクラスを生成します。だから私の出力はこれです:
class Configuration {
Things things;
}
class Things {
List<Thing> thing;
}
class Thing {
String name;
String value;
}
この不要なクラスを生成しないように XJC に指示する方法はありますか? または、その世代を回避するために XSD を言い換えることができる方法はありますか? どちらのオプションも私には問題ありません。
@XmlElementWrapper
実際、ここに記載されているように、注釈を生成する必要があると思います。