具有错误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;