在 JAXB 绑定文件中配置命名空间前缀

Cla*_*ude 6 java jaxb xml-serialization xml-namespaces jaxb2

我使用命名空间从 XSD 生成 Java 文件。当相应的Java对象被序列化为XML时,名称空间前缀是ns1ns2...似乎有三种方法可以控制前缀

  1. 如果使用 Oracle 的 Java,可以将内部类的实现 com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper添加到编组器中。
  2. 如果该文件package-info.java在您的控制之下,那么您可以向其中添加注释。 javax.xml.bind.annotation.XmlNs当 Java 文件是从 XSD 生成时,这不起作用。
  3. 您可以添加第三方工具javax.xml.bind.annotation.XmlNs在 JAXB 绑定文件中配置注释。

第三个选项是非标准选项,其最后一个版本是 2012 年。同时是否有等效的标准选项可用,例如标准命名空间中的元素或属性http://java.sun.com/xml/ns/jaxbhttp://java.sun.com/xml/ns/jaxb/xjc

And*_*i_N -3

有最新版本的第三个选项Maven Central

  • 序列化的 xml 已经有命名空间。这是我要配置的命名空间**前缀**。 (3认同)