默认情况下,jaxb 2在编组期间列出根元素中的所有(所有可能需要的)名称空间:
<rootElement xmlns="default_ns" xmlns:ns1="ns1" xmlns:ns2="ns2"> <ns1:element/> </rootElement>
有没有办法在每个元素中描述名称空间而不是根元素?:
<rootElement xmlns="default_ns"> <element xmlns="ns1"/> </rootElement>
它还解决了“不必要的命名空间”问题,这在我的案例中也很重要。 任何建议表示赞赏。
答案 0 :(得分:0)
答案是否定的,JAXB不支持这种低级别的定制。考虑使用XSLT对已编组的XML进行后处理。
答案 1 :(得分:0)
另外,我倾向于同意他在另一个帖子中提供的回复中的@Anton。 我真的不应该重要。如果你必须强迫某种方式,你应该总是更喜欢顶级上下文,特别是如果你有可能重复的元素。在兄弟元素中重复命名空间声明是浪费空间,也不是接收端解析器的次优。