Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JAXB绑定文件中配置名称空间前缀_Java_Jaxb_Xml Serialization_Xml Namespaces_Jaxb2 - Fatal编程技术网

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

Java 在JAXB绑定文件中配置名称空间前缀,java,jaxb,xml-serialization,xml-namespaces,jaxb2,Java,Jaxb,Xml Serialization,Xml Namespaces,Jaxb2,我使用名称空间从XSD生成Java文件。当相应的Java对象序列化为XML时,名称空间前缀是ns1,ns2。。。似乎有三种方式: 如果使用Oracle的Java,可以向封送器添加com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper 如果文件package info.java在您的控制下,那么您可以向其中添加javax.xml.bind.annotation.XmlNs。当Java文件是从XSD生成时,这不起作用 您可以在JAXB绑定

我使用名称空间从XSD生成Java文件。当相应的Java对象序列化为XML时,名称空间前缀是
ns1
ns2
。。。似乎有三种方式:

  • 如果使用Oracle的Java,可以向封送器添加
    com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper
  • 如果文件
    package info.java
    在您的控制下,那么您可以向其中添加
    javax.xml.bind.annotation.XmlNs
    。当Java文件是从XSD生成时,这不起作用
  • 您可以在JAXB绑定文件中添加并配置
    javax.xml.bind.annotation.XmlNs
    注释

  • 第三个选项为非标准选项,其最新版本为2012年版。同时是否有等效的标准选项可用,例如标准名称空间
    http://java.sun.com/xml/ns/jaxb
    http://java.sun.com/xml/ns/jaxb/xjc

    第三选项有最新版本

    谢谢您提供的信息。这个选项仍然依赖于Maven。但是,我正在标准名称空间
    http://java.sun.com/xml/ns/jaxb
    http://java.sun.com/xml/ns/jaxb/xjc
    。此外,Maven插件仍然依赖于扩展名
    org.jvnet.jaxb2_commons.jaxb2命名空间前缀
    ,该扩展名从2012年起生效。序列化的xml已经有了命名空间。这是我要配置的命名空间前缀。请参阅: