問題
次のXML構成ファイルがあるとします。
<main>
<name>JET</name>
<maxInstances>5</maxInstances>
<parameters>
<a>1</a>
<b>
<b1>test1</b1>
<b2>test2</b2>
</b>
</parameters>
</main>
name要素とmaxInstances要素の値を抽出してから、parameters要素の内部テキスト全体を抽出する必要があります。例えば
name = "JET"
maxInstances = 5
parameters = "<a>1</a><b><b1>test1</b1><b2>test2</b2></b>"
最終的に、parametersブロックには整形式のXMLを含めることができます。
試みられた解決策
次のコードは、nameとmaxInstancesに対して機能しますが、パラメーターに対しては機能しません。
@XmlRootElement(name="main")
public class Main {
@XmlElement(name="name", required="true")
private String name;
@XmlElement(name="maxInstances", required="true")
private Integer maxInstances;
@XmlElement(name="parameters")
private String parameters;
}
以下のアイデアに基づいて解決策を検討してみましたが、適切なものが見つかりません。
文字列を生成するために解析できるXMLツリーを表すパラメーターオブジェクトに使用できる別のタイプはありますか?例えば
@XmlElement(name="parameters")
private XmlNodeObject parametersNode;
public String getParameters() {
// Collapse node to single line of text
return innerText;
}
または、別の種類の注釈を使用する必要がありますか?
@XmlSpecialAnnotation(...)
@XmlElement(name="parameters")
private String parameters;
別のスタイルのパーサーに切り替える必要がありますか?2つのスタイルのパーサーを使用するのは良い/悪い考えですか?