【问题标题】:jaxb namespaces in each element instead of root element during marshalling编组期间每个元素中的 jaxb 命名空间而不是根元素
【发布时间】:2010-03-05 08:56:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: namespaces jaxb marshalling root jaxb2


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    另外,我倾向于同意@Anton 在另一个帖子中提供的回复。 我真的不应该重要。如果你必须强制使用一种或另一种方式,你应该总是更喜欢顶级上下文,特别是如果你有可能重复的元素。在同级元素中重复命名空间声明既浪费空间,也不利于接收端的解析器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多