最有可能在响应中有多个名称空间。这将使用创建ns#名称空间前缀的默认约定,其中之一成为不带前缀的xmlns。如果要控制此,可以执行以下操作:
NamespacePrefixMapper mapper = new NamespacePrefixMapper() { public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) { if ("http://namespace".equals(namespaceUri) && !requirePrefix) return ""; return "ns"; } }; marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", mapper); marshaller.mashal....这将
http://namespace始终将设置为默认xmlns,并在编组时将ns#用于所有其他名称空间。如果需要,还可以给它们提供更多描述性前缀。



