【问题标题】:How do I set the xml namespace when using Jersey, jaxb & jax-rs使用 Jersey、jaxb 和 jax-rs 时如何设置 xml 命名空间
【发布时间】:2010-08-10 17:17:37
【问题描述】:

使用 Jersey、jaxb 和 jax-rs 时如何设置 xml 命名空间

【问题讨论】:

    标签: java jaxb jersey jax-rs


    【解决方案1】:

    这一切都是使用 JAXB 注释完成的。以下几点涉及您的域模型。

    架构级别

    您可以使用@XmlSchema 包级注释指定架构级命名空间信息:

    @XmlSchema(namespace = "http://www.example.org",
               elementFormDefault = XmlNsForm.QUALIFIED)
    package org.example;
    
    import javax.xml.bind.annotation.XmlSchema;
    import javax.xml.bind.annotation.XmlNsForm;
    

    上述利用 elementFormDefault 的注解会将所有元素的命名空间默认为“http://www.example.org”。

    类型级别

    您可以使用 @XmlType 注释在类型级别覆盖命名空间:

    @XmlType(namespace="http://www.example.org/foo")
    

    属性/字段级别

    和/或您可以在注释本身上指定命名空间信息:

    • @XmlAttribute(namespace="http://www.example.org/bar")
    • @XmlElement(namespace="http://www.example.org/bar")
    • @XmlElementWrapper(namespace="http://www.example.org/bar")
    • @XmlRootElement(namespace="http://www.example.org/bar")

    示例

    我有一篇博文通过示例演示了这些概念:

    【讨论】:

      猜你喜欢
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 2016-09-21
      • 2012-06-03
      • 2015-10-12
      相关资源
      最近更新 更多