使用 Jersey、jaxb 和 jax-rs 时如何设置 xml 命名空间
问问题
8439 次
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 回答