Я пишу скрипт для анализа KML-файла с использованием JAXB и MOXy, но у меня возникают трудности при работе @XmlPath для работы с предоставленным пространством имен.
Если мой KML выглядит следующим образом: -
<kml>
<Document>
<name>Test</name>
</Document>
</kml>
... и мой бин выглядит так: -
@XmlRootElement(name = "kml")
public class Kml {
@XmlPath("Document/name/text()")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
... тогда kml.getName()
возвращает Test
, что работает как должно.
Однако, если мой KML содержит пространство имен, подобное этому: -
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Test</name>
</Document>
</kml>
... и мой компонент выглядит так: -
@XmlRootElement(name = "kml", namespace = "http://www.opengis.net/kml/2.2")
public class Kml {
@XmlPath("Document/name/text()")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
... then, kml.getName()
возвращает null
.
У меня действительно jaxb.properties
на правильном уровне пакета, и я использую следующую зависимость MOXy: -
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
<version>2.3.2</version>
</dependency>
Чего именно мне здесь не хватает?Спасибо.