[英]Jaxb: namespace unmarshalling issue
所有,我都有一个完整的软件包,其中包含使用Jaxb
从xsd
生成的Bean。 我想使用其中一些到另一个Bean中来封送/解组这样的XML:
<WrongDocument>
<test>test label</test>
<CBISDDReqLogMsg xmlns="urn:CBI:xsd:CBISDDReqLogMsg.00.01.00">
<GrpHdr>
....
</GrpHdr>
<PmtInf>
</PmtInf>
</CBISDDReqLogMsg>
</WrongDocument>
根豆是
@XmlRootElement(name="WrongDocument")
@XmlType(name = "", propOrder = {
"test",
"CBISDDReqLogMsg"
})
@XmlAccessorType(XmlAccessType.FIELD)
public class WrongDocumentDTO implements Serializable {
private static final long serialVersionUID = 8545918230166653233L;
@XmlElement(required = true, type = String.class, nillable = true)
protected String test;
@XmlElement(required = true)
protected CBISDDReqLogMsg000100 CBISDDReqLogMsg;
....
}
并且CBISDDReqLogMsg000100
是
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CBISDDReqLogMsg.00.01.00", propOrder = {
"grpHdr",
"pmtInf"
})
public class CBISDDReqLogMsg000100
implements Serializable
{
private final static long serialVersionUID = 1L;
@XmlElement(name = "GrpHdr", required = true)
protected CBIGroupHeader2 grpHdr;
@XmlElement(name = "PmtInf", required = true)
protected List<PaymentInstructionInformation2> pmtInf;
....
}
对于CBISDDReqLogMsg000100
名称空间是使用package-info
文件定义的。
这是解组的代码:
jc = JAXBContext.newInstance(WrongDocumentDTO.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
WrongDocumentDTO wrongDocumentDTO = unmarshaller.unmarshal(source, WrongDocumentDTO.class).getValue();
不幸的是,在我的wrongDocumentDTO
内部,我用正确的值填充了测试字段,但是CBISDDReqLogMsg
为空。
我该如何解决这个问题?
先感谢您
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.