JAXB unmarshall с несколькими пространствами имен - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть 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:

@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 всегда ноль.

[element=null, text=TEST]

Как я могу это сделать?

1 Ответ

0 голосов
/ 15 сентября 2018

This:

<cts:element xmlns:_1="entitlement:AAA">_1:Entitlement</cts:element>

Является элементом с именем element в пространстве имен cts.

Ваше отображение:

@XmlElement(name= "element", namespace="entitlement:AAA")
private String element;

Ожидаетэлемент с именем element в пространстве имен с URI entitlement:AAA.Вероятно, это не то пространство имен cts, которое вы предоставляете.

Если вы заинтересованы в получении _1:Entitlement с _1, привязанным к entitlement:AAA или entitlement:BBB, измените тип элементадо QName.

...