JAXB を使用して dtd ファイルから Java クラスを生成したいと考えています。
dtd は次のようになります。
<!--Contents-->
<!ELEMENT persons (header, content) >
<!ELEMENT groups (header, content) >
<!--Header-->
<!ELEMENT header (version) >
<!ELEMENT version(#PCDATA) >
<!--Content-->
<!ELEMENT content(person, group)* >
<!--Person-->
<!ELEMENT person(p_id, p_name) >
<!ELEMENT p_id (#PCDATA) >
<!ELEMENT p_name (#PCDATA) >
<!--Group-->
<!ELEMENT group(g_id) >
<!ELEMENT g_id(#PCDATA) >
JAXB でクラスを生成すると、次のようになります。
- ObjectFactory
- コンテンツ
- 人
- 人
- グループ
- グループ
Content クラスでは、すべての人物とグループを取得するメソッドは次のとおりです。
public List<Object> getPersonOrGroup() {
if (personOrGroup == null) {
personOrGroup = new ArrayList<Object>();
}
return this.personOrGroup;
}
dtd ファイルで変更できることはありますか?Java クラスの生成によって Java クラスでpersons
とがgroups
分離されるContent
ため、すべての個人とグループを取得するには、それぞれにContent.getPersons()
と を呼び出すことになりContent.getGroups()
ますか?