Jaxb生成了xml - 删除命名空间前缀

时间:2014-08-27 02:58:36

标签: java xml namespaces jaxb

使用JAXB,当对象中有两个命名空间时,我在pakage中添加了package-info.java,它删除了一个命名空间前缀,如Jaxb generated xml - problem with root element prefix

我的对象是这样的:

@XmlRootElement(name="Message",namespace="http://404story.com/Order")
public class Root {
    private String id;

    private Codes codes;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

@XmlRootElement(name="Codes")
public class Codes {
    @XmlElement(name = "Code", namespace = "http://404story.com/Code")
    protected List<String> Code;
....
}

package-info.java:

@XmlSchema(namespace = "http://404story.com/Order", elementFormDefault = XmlNsForm.QUALIFIED)
package com.xxxx;

import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;

但是当有两个名称空间时,它会变成这样: <Message xmlns:ns2="http://404story.com/Code" xmlns="http://404story.com/Order">

部分将使用<ns2:Code>xxx</ns2:Code>。你能告诉我如何删除ns2前缀吗?并将命名空间如下:

<Message xmlns="http://404story.com/Order">
  <Codes>
    <Code xmlns="http://404story.com/Code">xxxx</Code>
    <Code xmlns="http://404story.com/Code">xxxx</Code>
  </Codes>
</Message>

0 个答案:

没有答案