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

时间:2014-12-03 22:03:56

标签: java xml jaxb

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

可以在元素级别完成吗? 还有一个名称空间可以有多个前缀吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

我也能想象:

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