次の xml を検討してください。
<Config>
<Paths>
<Path reference="WS_License"/>
</Paths>
<Steps>
<Step id="WS_License" title="License Agreement" />
</Steps>
</Config>
以下の JAXB クラス:
public class Path {
private String _reference;
public String getReference() {
return _reference;
}
@XmlAttribute
public void setReference( String reference ) {
_reference = reference;
}
}
と
public class Step {
private String _id;
private String _title;
public String getId() {
return _id;
}
@XmlAttribute
public void setId( String id ) {
_id = id;
}
public String getTitle() {
return _title;
}
@XmlAttribute
public void setTitle( String title ) {
_title = title;
}
}
参照を Path オブジェクトに String として格納する代わりに、Step オブジェクトとして保持したいと思います。これらのオブジェクト間のリンクは、参照属性と id 属性です。@XMLJavaTypeAdapter 属性を使用する方法はありますか? 正しい使い方の例を教えてくれる人はいますか?
ありがとう!
編集:
また、要素で同じ手法を実行したいと思います。
次の xml を検討してください。
<Config>
<Step id="WS_License" title="License Agreement">
<DetailPanelReference reference="DP_License" />
</Step>
<DetailPanels>
<DetalPanel id="DP_License" title="License Agreement" />
</DetailPanels>
</Config>
以下の JAXB クラス:
@XmlAccessorType(XmlAccessType.FIELD)
public class Step {
@XmlID
@XmlAttribute(name="id")
private String _id;
@XmlAttribute(name="title")
private String _title;
@XmlIDREF
@XmlElement(name="DetailPanelReference", type=DetailPanel.class)
private DetailPanel[] _detailPanels; //Doesn't seem to work
}
@XmlAccessorType(XmlAccessType.FIELD)
public class DetailPanel {
@XmlID
@XmlAttribute(name="id")
private String _id;
@XmlAttribute(name="title")
private String _title;
}
Step-object のプロパティ _detailPanels が空で、リンクが機能していないようです。DetailPanel への参照のみを保持する新しい JAXB オブジェクトを作成せずにリンクを作成するオプションはありますか?
再度、感謝します : )!