具有错误xmlns属性名称的Java xml绑定
使用注释时:具有错误xmlns属性名称的Java xml绑定,java,jaxb,Java,Jaxb,使用注释时: @XmlRootElement(name="RootElement", namespace="namespace") class RootElement { 要从java创建xml文件,它将根元素创建为: <ns2:RootElement xmlns:ns2="namespace"> 但我想在没有“ns2”的情况下创建,比如: 知道怎么修吗 relitad链接(我用来创建xml的示例): JAXB在您的情况下不使用xmlns=“namespace”,因为xm
@XmlRootElement(name="RootElement", namespace="namespace")
class RootElement {
要从java创建xml文件,它将根元素创建为:
<ns2:RootElement xmlns:ns2="namespace">
但我想在没有“ns2”的情况下创建,比如:
知道怎么修吗
relitad链接(我用来创建xml的示例):
JAXB在您的情况下不使用
xmlns=“namespace”
,因为xmlns=“namespace”
也为子元素指定了名称空间,那么您的第一个和最后一个元素在默认名称空间中(因为@XmlRootElement
没有为子元素指定名称空间)。因此,您需要使用@xmlement
为第一个
和最后一个
设置名称空间:
@XmlElement(namespace = "namespace")
public String getFirst() {
return first;
}
...
@XmlElement(namespace = "namespace")
public String getLast() {
return last;
}
通过在package info.java
中使用包级别的注释,您还可以避免为每个元素编写名称空间:
@javax.xml.bind.annotation.XmlSchema(
namespace = "namespace",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package foo;
如果我的子元素来自同一名称空间,有没有办法强制jaxb使用xmlns=“”?检查我的问题。。
@javax.xml.bind.annotation.XmlSchema(
namespace = "namespace",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package foo;