Java 如何使用JAXB(JDK 7)设置默认名称空间
我在使用JAXB设置默认名称空间时遇到问题。我遵循了来自的提示,但问题仍然存在。以下是我的包裹信息:Java 如何使用JAXB(JDK 7)设置默认名称空间,java,xml,jaxb,Java,Xml,Jaxb,我在使用JAXB设置默认名称空间时遇到问题。我遵循了来自的提示,但问题仍然存在。以下是我的包裹信息: @XmlSchema( namespace = "my/xml/namespace", xmlns = { @XmlNs(namespaceURI="my/xml/namespace",prefix=""), }, elementFormDefault = javax.xml.bind.annotat
@XmlSchema(
namespace = "my/xml/namespace",
xmlns = {
@XmlNs(namespaceURI="my/xml/namespace",prefix=""),
},
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package my.xml.namespace;
import javax.xml.bind.annotation.XmlSchema;
import javax.xml.bind.annotation.XmlNs;
import javax.xml.XMLConstants;;
但仍然创建了如下xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:resp xmlns:ns2="my/xml/namespace">
....
</ns2:resp>
您必须使用名称空间映射器 网上有一些例子:
@Override
public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix)
{
if("amc/xml/pay03_entryresponse".equals(namespaceUri)) {
return "";
}else return suggestion;
}
};
marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", mapper);