JAXB自定义命名空间前缀问题
是否有任何其他方法可以使用除包级别注释@Xmlns
之外的注释来控制自定义命名空间前缀。
可以在元素级别完成吗? 也可以有一个带有多个前缀的命名空间?
你想做什么呢? 为什么名称空间前缀对您很重要?
名称空间前缀没有标准的元素级注释。
我知道控制名称空间前缀的选项是:
-
@XmlNS
你已经提到了。 - 提供自定义
NamespacePrefixMapper
。 - XML的低级处理(例如,在StAX,SAX或DOM级别)。
我也能想象到:
-
@XmlElementRef
/@XmlElementRefs
通常使用具有带前缀的QNames的JAXBElements。 也许会使用这个前缀。 - 您可以拥有
QName
-typed属性(xs:QName
),它也可以用于添加命名空间映射。 - 可能是
@XmlAnyElement
(包含DOM元素)的方向。 - 我想我也看到了
XmlAdapter
方向的XmlAdapter
– 我认为它有一个选项,它是NamespacePrefixMapper
-aware。 (实际上需要像QName
这样的名称空间感知类型)。