gpt4 book ai didi

xml - Castor - 解码一个简单的重复组

转载 作者:数据小太阳 更新时间:2023-10-29 02:58:39 29 4
gpt4 key购买 nike

我正在慢慢地为这个发疯。我正在尝试像这样解码 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>

问题似乎围绕着 是容器元素而 是可重复元素这一事实。上面的映射告诉 Castor 是可重复的。

这几天我一直在尝试各种映射组合,我想我已经走到尽头了!

谁能看出我做错了什么?

我正在使用 Castor XML 1.3.2。

最佳答案

我已经通过以下映射取得了一些成功:

<class name="myPkg.GetDeadlineOffsetRequest">
<map-to xml="GetDeadlineOffset"/>
<field name="DeadlineCode">
<bind-xml name="deadlineCode" />
</field>
<field name="parameters" type="myPkg.Parameter" collection="collection">
<bind-xml name="parameter" location="parameters">
<class name="myPkg.Parameter">
<field name="Name">
<bind-xml name="name" node="attribute" />
</field>
<field name="Value">
<bind-xml node="text"/>
</field>
</class>
</bind-xml>
</field>
</class>

技巧是在几个 bind-xml 元素上使用 location="parameters"node="text"。我已使用此映射成功编码和解码。

关于xml - Castor - 解码一个简单的重复组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8398372/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com