3

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

4

1 回答 1

6

这一切都是使用 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")

例子

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

于 2010-08-10T17:26:48.470 回答