私はこれについてゆっくりと怒っています。次のような XML ドキュメントを非整列化しようとしています。
<GetDeadlineOffset>
<deadlineCode>DC1</deadlineCode>
<parameters>
<parameter name="P1">Param 1</parameter>
<parameter name="P2">Param 2</parameter>
</parameters>
</GetDeadlineOffset>
次のような単純な POJO、GetDeadlineOffsetRequest および Parameter のペアがあります。
public class GetDeadlineOffsetRequest {
private String deadlineCode = null;
private List<Parameter> parmList = new ArrayList<Parameter>();
public GetDeadlineOffsetRequest() {
// Do nothing
}
public String getDeadlineCode(){
return this.deadlineCode;
}
public void setDeadlineCode(String deadlineCode){
this.deadlineCode = deadlineCode;
}
public List<Parameter> getParameters() {
return parmList;
}
public void setParameters(List<Parameter> parmList) {
this.parmList = parmList;
}
}
と
public class Parameter {
private String name = null;
private String value = null;
public Parameter() {
// Do Nothing
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
public void setName(String name) {
this.name = name;
}
public void setValue(String value) {
this.value = value;
}
}
マッピング ファイルを使用していますが、これらのタグをパラメータ リストにアンマーシャリングできないようです。
これは、マッピングでの私の最新の試みです。
<class name="mypkg.GetDeadlineOffsetRequest">
<map-to xml="GetDeadlineOffset"/>
<field name="DeadlineCode" type="java.lang.String">
<bind-xml name="deadlineCode" node="element" />
</field>
<field name="Parameters" type="mypkg.Parameter" collection="collection">
<bind-xml name="parameters" node="element" />
</field>
</class>
<class name="mypkg.Parameter">
<map-to ns-uri="http://services.blah.com/AMM/Deadline/v1"/>
<field name="Value" type="java.lang.String">
<bind-xml name="parameter" node="element" />
</field>
<field name="Name" type="java.lang.String">
<bind-xml name="name" node="attribute" location="parameter" />
</field>
</class>
問題は、 <parameters> がコンテナー要素であり、 <parameter> が繰り返し可能な要素であるという事実に関係しているようです。上記のマッピングは、<parameters> が反復可能であることを Castor に伝えています。
ここ数日、あらゆる種類のマッピングの組み合わせを試してきましたが、限界に達したと思います!
誰かが私が間違っていることを見ることができますか?
Castor XML 1.3.2 を使用しています。