如果这是你的班级:
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;
}
}
那么根元素上有一个前缀是有道理的,因为你已经指定“root”元素是命名空间限定的,“id”元素不是.
123
如果您将一个package-info类添加到模型中,则可以使用@XmlSchema注释:
@XmlSchema(
namespace = "urn:report",elementFormDefault = XmlNsForm.QUALIFIED)
package example;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
然后,JAXB实现可以选择利用默认命名空间,但是现在注意所有元素都是命名空间限定的,它们可能与您的XML模式匹配或不匹配:
123
有关JAXB和命名空间的更多信息,请参见: