1

可能重复:
JAXB 编组 XMPP 节

我在 stackoverflow 上做了一些搜索,并没有真正找到我需要的答案。

我在尝试使用 JAXB 操作命名空间时遇到了一些麻烦。让我们开始吧。

我需要以下格式的 XML

<root xmlns="http://namespace/root">

    <item xmlns="http://namespace/item">
        <id>1</id>
        <name>First</name>
    </item>

    <item xmlns="http://namespace/item">
        <id>2</id>
        <name>Second</name>
    </item>
</root>

如您所见,我基本上需要在每个标签上复制名称空间。当我尝试使用 JAXB 创建它时,我得到以下 XML 输出:

<root xmlns="http://namespace/root"
      xmlns:ns2="http://namespace/item">

    <ns2:item>
        <ns2:id>1</ns:id>
        <ns2:name>First</ns2:name>
    </ns2:item>

    <ns2:item>
        <ns2:id>2</ns:id>
        <ns2:name>Second</ns2:name>
    </ns2:item>
</root>

显然它是这样生成的,它使用前缀所以这里不应该有任何问题,

但是我发送这个 XML 的消费者要求它是那种格式,我必须为文件中的每个项目复制名称空间。

有人知道该怎么做吗?我想到了一个字符串模板,但由于这一切都已经用 JAXB 完成了,我想知道是否没有更简单的方法可以做到这一点。

谢谢大家!

4

0 回答 0