我的目标是使用普通的旧java对象创建一个有效的xml请求字符串。我遇到的问题是,我不能创建多个 Package 元素,也不能正确地分配名称空间。我现在的代码是:
package test_ground;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import java.util.List;
@JacksonXmlRootElement(localName = "Envelope", namespace =
"http://schemas.xmlsoap.org/soap/envelope/" )
public class RateReqModel {
@JacksonXmlProperty(namespace = "http://schemas.xmlsoap.org/soap/envelope/")
private String Header;
@JacksonXmlElementWrapper(localName = "GetCurrencyRates", namespace = "http://tempuri.org/")
private List<String> RateDate;
public RateReqModel(List<String> RateDate){
this.RateDate = RateDate;
}
}
我从上面的脚本得到了什么:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Header/>
<wstxns1:GetCurrencyRates xmlns:wstxns1="http://tempuri.org/">
<RateDate xmlns="">2021-03-29</RateDate>
</wstxns1:GetCurrencyRates>
</Envelope>
我需要的是:
<ns1:Envelope xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://tempuri.org/">
<ns1:Header/>
<ns1:Body>
<ns2:GetCurrencyRates>
<ns2:RateDate>2021-03-29</ns2:RateDate>
</ns2:GetCurrencyRates>
</ns1:Body>
</ns1:Envelope>
如您所见,所需的xml结构有两个名称空间,并且在ratedate元素周围有双 Package ,这正是我所寻求的。
暂无答案!
目前还没有任何答案,快来回答吧!