这可能与JAXB Marshaller 有关 - 如何抑制 xmlns 命名空间属性?
但我的问题有点不同。我进行常规的 java 编组,我的 xsd 没有命名空间。生成的 xml 也没有命名空间,除了根元素。
<?xml version="1.0" encoding="UTF-8"?><rootElement xmlns:ns2="unwanted namespace">
这unwanted namespace
是来自同一个项目的另一个模式,我不确定为什么在这个阶段被选中。
我的 jaxb2-maven-plugin 生成的 rootElement.java 看起来像:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"feed"
})
@XmlRootElement(name = "rootElement", namespace = "")
public class RootElement{
....
}
在这一点上,我想要的只是xmlns:ns2="unwanted namespace"
从生成的 xml 中删除属性,我正在努力解决它。
我查看了我的 package-info.java,它看起来像:
@javax.xml.bind.annotation.XmlSchema(namespace = "unwanted namespace", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.mypackage;
我尝试添加他,但由于某种原因-npa
它无法正常工作。jaxb2-maven-plugin
我试过了,NamespaceMapper
但这适用于更改前缀。我无法让它完全删除命名空间。这让我困扰了一天。