我正在使用 JAXB 从 Java 对象生成 XML,它是一个实时的、消息速率相当高的应用程序,大部分时间都运行良好。然而,有时我会在生成的 XML 中得到重复的 namespace 声明,而且没有任何明显的线索来说明原因。例如:
<UpdateRequest xmlns="http://xml.mycomp.com/ns/myservice"
xmlns="http://xml.mycomp.com/ns/myservice">
<field1>value</field1>
...
</UpdateRequest>
有没有人见过这种行为?
最佳答案
检查此类的 xsd 代码是否允许创建超过 1 个重复属性的实例。如果是这样,您可以避免重复设置每个 UpdateRequest 对象的 xmlns 属性的实例数。
如果问题出在你的代码上(也许这个属性被创建了两次)并且你限制了该属性的实例数量(正如我上面所说的),程序将在运行时显示一个错误,提示你正在尝试插入一个已经定义的属性。
关于java - JAXB 生成的 XML 中重复的命名空间声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2131376/