如果这是你的班级:

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和命名空间的更多信息,请参见:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐