0

默认情况下,jaxb 2 在编组期间列出根元素中的所有(所有可能需要的)命名空间:

<rootElement xmlns="default_ns" xmlns:ns1="ns1" xmlns:ns2="ns2"> <ns1:element/> </rootElement>

有没有办法在每个元素中描述命名空间而不是根元素?:

<rootElement xmlns="default_ns"> <element xmlns="ns1"/> </rootElement>

它还解决了“不必要的命名空间”的问题,这对我来说也很重要。任何建议表示赞赏。

4

2 回答 2

0

此外,我倾向于同意@Anton 在他在另一个线程中提供的回复。我真的应该无所谓。如果你必须强制使用一种或另一种方式,你应该总是更喜欢顶级上下文,特别是如果你有可能重复的元素。在同级元素中重复命名空间声明是浪费空间,并且对于接收端的解析器来说是次优的。

于 2012-05-04T01:13:39.790 回答
0

答案是否定的,JAXB 不支持这种低级定制。考虑使用 XSLT 对编组的 XML 进行后处理。

于 2010-03-29T02:55:27.910 回答