【发布时间】:2012-03-29 18:46:43
【问题描述】:
我正在编写一个脚本来使用 JAXB 和 MOXy 解析 KML 文件,但我很难让 @XmlPath 使用提供的命名空间。
如果我的 KML 看起来像这样:-
<kml>
<Document>
<name>Test</name>
</Document>
</kml>
...我的 bean 看起来像这样:-
@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>
...我的 bean 看起来像这样:-
@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;
}
}
...然后,kml.getName() 返回null。
我在正确的包级别确实有jaxb.properties,并且我正在使用以下 MOXy 的依赖项:-
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
<version>2.3.2</version>
</dependency>
我到底错过了什么?谢谢。
【问题讨论】:
标签: java xml jaxb eclipselink moxy