JAXB自定义命名空间前缀问题

是否有任何其他方法可以使用除包级别注释@Xmlns之外的注释来控制自定义命名空间前缀。

可以在元素级别完成吗? 也可以有一个带有多个前缀的命名空间?

你想做什么呢? 为什么名称空间前缀对您很重要?

名称空间前缀没有标准的元素级注释。

我知道控制名称空间前缀的选项是:

  • @XmlNS你已经提到了。
  • 提供自定义NamespacePrefixMapper
  • XML的低级处理(例如,在StAX,SAX或DOM级别)。

我也能想象到:

  • @XmlElementRef / @XmlElementRefs通常使用具有带前缀的QNames的JAXBElements。 也许会使用这个前缀。
  • 您可以拥有QName -typed属性( xs:QName ),它也可以用于添加命名空间映射。
  • 可能是@XmlAnyElement (包含DOM元素)的方向。
  • 我想我也看到了XmlAdapter方向的XmlAdapter – 我认为它有一个选项,它是NamespacePrefixMapper -aware。 (实际上需要像QName这样的名称空间感知类型)。