JAXB:如何注释类以使它们属于不同的命名空间?
我想要有JAXB注释类,这将是 编组/解组到不同的 XML 命名空间。
我需要的是这样的东西:
<someRootElement xmlns="urn:my:ns1"
xmlns:a="urn:my:ns2" xmlns:b="urn:my:ns3">
<someElement/>
<a:someElement/>
<b:someElement/>
</someRootElement>
如何才能做到?
可以通过编程来完成吗? (不需要 JAXB 的 .xjb 绑定文件?)
I want to have JAXB-annotated classes which would be
marshalled/unmarshalled to different XML namespaces.
What I need is something like:
<someRootElement xmlns="urn:my:ns1"
xmlns:a="urn:my:ns2" xmlns:b="urn:my:ns3">
<someElement/>
<a:someElement/>
<b:someElement/>
</someRootElement>
How can it be done?
Can it be done programatically?
(without the need for JAXB's .xjb bindings file?)
这将编组到以下 XML 中:
如果您使用 JAXB RI 并且不喜欢默认的
ns2
和ns3
命名空间前缀,则需要提供自己的NamespacePrefixMapper
。This marshals into the following XML:
If you are using JAXB RI and don't like the default
ns2
andns3
namespace prefixes, you need to provide your ownNamespacePrefixMapper
.