Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
Jaxb 生成的XML名称空间前缀_Jaxb_Jaxb2 Maven Plugin - Fatal编程技术网

Jaxb 生成的XML名称空间前缀

Jaxb 生成的XML名称空间前缀,jaxb,jaxb2-maven-plugin,Jaxb,Jaxb2 Maven Plugin,目前,我已经从大量的模式文件(.xsd)中创建了Java类。生成的类正在工作(通过jaxb2 maven插件生成)。但现在我尝试从对象结构生成XML。第一件事是,我不完全理解为什么我需要在创建JAXB上下文期间提供所有可用的名称空间 String[] context = { "Namespace1", "Namespace2", ...}; JAXBContext jc = JAXBContext.newInstance(Joiner.on(":").join(context)); 通过封送

目前,我已经从大量的模式文件(.xsd)中创建了Java类。生成的类正在工作(通过jaxb2 maven插件生成)。但现在我尝试从对象结构生成XML。第一件事是,我不完全理解为什么我需要在创建JAXB上下文期间提供所有可用的名称空间

String[] context = { "Namespace1", "Namespace2", ...};

JAXBContext jc = JAXBContext.newInstance(Joiner.on(":").join(context));
通过封送拆收器,我可以生成XML文档,但问题如下:

<StartTag xmlns="Basenamespace" xmlns:ns1="Namespace1" xmlns:ns2="Namespace2" ...>
   <...>
     <ns1:T1>...</ns1:T1>
     <ns2:TX>...</ns2:TX>
     ...
</StartTag>

...
...
...
我希望生成如下内容:

<StartTag xmlns="Basenamespace">
   <...>
     <T1 xmlns="Namespace1">
     ...
     </T1>

     <TX xmlns="Namespace2">
      ...
     </TX>
     ...
</StartTag>

...
...
...
所以问题是:通过JAXB中的属性可以实现吗?
此外,是否可能影响
xmlns
元素将在哪个标记处创建?

看起来我在这个问题上运气不好。我发现了以下几点:

<StartTag xmlns="Basenamespace" xmlns:ns1="Namespace1" xmlns:ns2="Namespace2" ...>
   <...>
     <ns1:T1>...</ns1:T1>
     <ns2:TX>...</ns2:TX>
     ...
</StartTag>