java – Jaxb生成的xml – 根元素前缀的问题
发布时间:2020-12-14 05:29:49 所属栏目:Java 来源:网络整理
导读:我正在尝试使用jaxb生成xml.我创建了xsd并生成了 java类. 但是当我生成xml时,我将ge2的??前缀标记为根标记ns2,这不是我想要的. 例如:我想要根标签 report idrep 1/id/report ,但得到 ns2:report..../ns2:report 在生成的java类中,我给了注释为@XmlRootEleme
我正在尝试使用jaxb生成xml.我创建了xsd并生成了
java类.
但是当我生成xml时,我将ge2的??前缀标记为根标记ns2,这不是我想要的. 例如:我想要根标签 <report> <id>rep 1</id> </report> ,但得到 <ns2:report> .... </ns2:report> 在生成的java类中,我给了注释为@XmlRootElement(name =“report”,namespace =“urn:report”) 有些人可以帮忙 解决方法
如果这是你的班级:
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”元素不是. <ns2:report xmlns:ns2="urn:report"> <id>123</id> </ns2:report> 如果您将一个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模式匹配或不匹配: <report xmlns="urn:report"> <id>123</id> </report> 有关JAXB和命名空间的更多信息,请参见: > http://bdoughan.blogspot.com/2010/08/jaxb-namespaces.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |