使用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>