如果这是你的类:
package example;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="report",namespace="urn:report")
public class Root {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
然后,它是有道理的,还有就是根元素的前缀,因为你指定的“根”元素的名称空间限定和“ID”元素不是。
<ns2:report xmlns:ns2="urn:report">
<id>123</id>
</ns2:report>
如果添加了一个包,信息类模型,您可以leverate的@XmlSchema注释:
@XmlSchema(
namespace = "urn:report",
elementFormDefault = XmlNsForm.QUALIFIED)
package example;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
然后JAXB实现可以选择利用默认的命名空间,但要注意,现在所有元素都是合格的命名空间可能会或可能不会匹配您的XML模式:
<report xmlns="urn:report">
<id>123</id>
</report>
有关JAXB和命名空间的更多信息,请参阅:
如果对象中有两个名称空间,它会变成'`,那么有些部分将使用`
navins
2014-08-26 11:26:38