Java JAXB Marshaller-如何抑制xmlns命名空间属性?

Java JAXB Marshaller-如何抑制xmlns命名空间属性?,java,xml,jaxb,maven-jaxb2-plugin,Java,Xml,Jaxb,Maven Jaxb2 Plugin,我使用JAXB2为一个独立的java应用程序生成XML,该应用程序使用maven 3、JAXB2、FIXML模式和maven-JAXB2-plugin。当我整理XML时,输出根元素中有xmlns属性。我如何删除这个 发件人: <root ... xmlns="http://www.fixprotocol.org/FIXML-4-4">...</root> <root ... >...</root> 因此,如果不希望包含名称空间信息,可以从pac

我使用JAXB2为一个独立的java应用程序生成XML,该应用程序使用maven 3、JAXB2、FIXML模式和maven-JAXB2-plugin。当我整理XML时,输出根元素中有xmlns属性。我如何删除这个

发件人:

<root ... xmlns="http://www.fixprotocol.org/FIXML-4-4">...</root>
<root ... >...</root>

因此,如果不希望包含名称空间信息,可以从
package info.java
中删除
@XmlSchema
注释

这在一定程度上破坏了您的自动构建,尽管您说过这是从maven插件自动生成的

建议您查看插件选项,看看是否可以从输出中删除这一行,或者您必须使用其他插件删除这一行,或者干脆一起删除package-info.java


问题-是否要将此XML传递给期望包含命名空间信息的服务?我想我感兴趣的是您为什么要删除名称空间信息。

现在,通过删除对名称空间的所有引用,问题得到了解决。”http://www.fixprotocol.org/FIXML-4-4“从生成的jaxb2代码。这是粗鲁的。我希望有一种更自动化的方式

为了自动化该过程,您可以从源xsd文件中删除属性targetNamespace

您的Root.java对象所在的包文件夹中是否有package.java文件,或者根对象上存在哪些JAXB注释?我有package-info.java。我已经更新了问题,将其包括在内。maven-jaxb2插件生成这些代码。java有XmlAccessorType、XmlElement和XmlAttribute注释。我们将XML发送给的外部客户端特别要求我们删除它。不知道为什么。我会研究你提到的选项或其他选择,如果有任何工作……你能想出一种自动化的方法吗?不,对我来说不值得,这是一次性的事情。所以我是手工做的。如果你能找到解决办法,请告诉我。
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.fixprotocol.org/FIXML-4-4", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.package;