JAXB使用多命名空间解组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAXB使用多命名空间解组相关的知识,希望对你有一定的参考价值。
我有第三部分的xml。
<cts:element-value-query weight="0">
<cts:element xmlns:_1="entitlement:AAA">_1:Entitlement</cts:element>
<cts:text xml:lang="en">TEST</cts:text>
</cts:element-value-query>
要么 :
<cts:element-value-query weight="0">
<cts:element xmlns:_1="entitlement:BBB">_1:Entitlement</cts:element>
<cts:text xml:lang="en">CASE</cts:text>
</cts:element-value-query>
我想将xml解组为Java bean:
@XmlRootElement(name = "element-value-query", namespace= "http://marklogic.com/cts")
@XmlAccessorType(XmlAccessType.FIELD)
public class Query4ElementValue {
@XmlElement(name= "element", namespace="entitlement:AAA")
private String element;
private String text;
}
我可以得到正确的文本值,但对于element
,始终为null。
[element=null, text=TEST]
那我该怎么办?
答案
这个:
<cts:element xmlns:_1="entitlement:AAA">_1:Entitlement</cts:element>
是element
命名空间中名为cts
的元素。
你的映射:
@XmlElement(name= "element", namespace="entitlement:AAA")
private String element;
期望名称为element
的元素在URI中使用URI entitlement:AAA
。这可能不是您提供的cts
命名空间。
如果你有兴趣让_1:Entitlement
与_1
绑定到entitlement:AAA
或entitlement:BBB
,请将元素的类型更改为QName
。
以上是关于JAXB使用多命名空间解组的主要内容,如果未能解决你的问题,请参考以下文章