`

jaxb注解介绍

 
阅读更多

本文转载开源中国:

 

JAXB 框架提供了丰富的注解供开发者使用来完成从 Java 类开始定制 Web 服务,当然这个定制局限在数据绑定层面上。在这种编程模型中 JAXB 主要完成从 Java 类到 XML schema 的映射。JAX-WS 规范本身也定义了若干注解用于 Web 服务的基础行为定制 ( 比方说服务名称,命名空间等 )。本文我们重点关注如何利用 JAXB 来定制 Web 服务,因此下面我们主要结合 Webshpere 应用服务器 Web 服务实现来介绍一些在编程中常用的注解并介绍相应的 Web 服务行为。

@XmlRootElement

@XmlRootElement 注解用于标注类或枚举类型,用它标注的类在映射后的 schema 中会以一个全局元素的形式出现,元素的类型是一个包含 Java 类属性的 XML 复杂数据类型。我们可以通过 @XmlRootElement 注解的 name 属性来定制映射的 schema 全局元素的名称,一般来说以 @XmlRootElement 标注的类在相应的 XML 文档中会以最外层或根节点形式出现。比方说有如下标注类:

@XmlRootElement(name="RootStudent",namespace="http://service.dsw.ibm.com/")
public class Student {
...
}
这个 Java 类在映射后的 Web 服务 schema 中会表现为:
<xs:element name="RootStudent" type="tns:student"/>
<xs:complexType name="student">
<xs:sequence>
<xs:element name="id" type="xs:int"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>

 

@XmlType

@XmlType 注解用于标注类或枚举类型,用它标注的类在映射后的 schema 中中会以一个 XML 复杂数据类型的形式出现。我们可以通过 @XmlType 注解的 name 属性来定制映射的 XML 数据类型的名称,用 propOrder 属性来定制映射后的复杂数据类型的内容顺序等。比方说有如下标注类:

@XmlType(name = "CustomizedStudent", propOrder = { "name", "id", "age" })
public class Student {
private int id;
private int age;
private String name;
....
}

 

这个 Java 类在映射后的 Web 服务 schema 中会表现为:

<xs:complexType name="CustomizedStudent">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="id" type="xs:int"/>
<xs:element name="age" type="xs:int"/>
</xs:sequence>
</xs:complexType>

 

@XmlElement

@XmlElement 注解用于标注 Javabean 的属性,用它标注的属性在映射后的 schema 中以元素的形式出现,所有 Javabean 属性映射的元素组合成为 @XmlType 映射的复杂数据类型。我们可以通过 @XmlElement 注解的 name 属性定制映射后的 XML 元素的名称,用 required 属性来指定该元素是否必须出现,用 nillable 属性来指明该元素是否允许空值。比方说有如下标注类:

@XmlType(name = "CustomizedStudent", propOrder = { "name", "id", "age"})
public class Student {
@XmlElement(name="StudentID",required=true)
private int id;
@XmlElement(name="StudentAge",nillable=true)
private int age;
@XmlElement(name="StudentName")
private String name;
}

 

这个 Java 类在映射后的 Web 服务 schema 中会表现为:

<xs:complexType name="CustomizedStudent">
<xs:sequence>
<xs:element minOccurs="0" name="StudentName" type="xs:string"/>
<xs:element name="StudentID" type="xs:int"/>
<xs:element name="StudentAge" nillable="true" type="xs:int"/>
</xs:sequence>
</xs:complexType>

 

@XmlAttribute

@XmlAttribute 注解用于标注 Javabean 属性,用它标注的属性在映射后的 schema 中以元素属性形式表现。我们可以通过 @XmlAttribute 注解的 name 属性来定制映射后的名称,用 required 属性来指定是否映射后的属性为必须出现的。比方说有如下标注类:

@XmlType(name = "CustomizedStudent", propOrder={"name","id","age"})
public class Student {
@XmlElement(name="StudentID")
private int id;
@XmlAttribute(name="StudentAge")
private int age;
@XmlAttribute(name="StudentName",required=true)
private String name;
}

 

这个 Java 类在映射后的 Web 服务 schema 中会表现为:

<xs:complexType name="CustomizedStudent">
<xs:sequence>
<xs:element name="StudentID" type="xs:int"/>
</xs:sequence>
<xs:attribute name="StudentName" type="xs:string" use="required"/>
<xs:attribute name="StudentAge" type="xs:int" use="required"/>
</xs:complexType>
分享到:
评论

相关推荐

    JAXB注解相关技术

    JAXB注解相关技术JAXB注解相关技术JAXB注解相关技术JAXB注解相关技术JAXB注解相关技术JAXB注解相关技术

    JAXB注解命名空间使用到的jar包

    当使用的JDK为1.6版本的时候,JAXB注解命名空间使用到的jar包

    JAXB-XML注解

    Jaxb annotation 使用 Jaxb annotation初步使用

    JAXB-XML注解-应用

    JAXB-XML注解-应用

    JAXB 生成XML文件

    JAXB注解 java 关于xml的注解,自动生成xml文件

    jaxb2.2.jar

    JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB允许JAVA人员将JAVA类映射为XML表示方式

    jaxb-libs.jar.zip

    JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB允许JAVA人员将JAVA类映射为XML表示方式,...

    jaxb-api-2.2.jar.zip

    JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB允许JAVA人员将JAVA类映射为XML表示方式,...

    jaxb生成XML例子

    使用jaxb生成XML例子,含有例子和注解解析

    maven-jaxb2-plugin-0.14.0.jar

    JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB允许JAVA人员将JAVA类映射为XML表示方式,...

    jaxb解析xml

    教你使用jaxb解析xml,介绍了主要的注解,以及核心api

    利用jaxb实现xml和bean互转

    使用jaxb 实现xml——bean互转

    jaxb小项目

    一个jaxb小项目的源码,可以帮助理解jaxb的执行和注解。

    Jaxb简单例子

    Jaxb简单例子,学习注解及java与xml的互相转换,比较基础,大家互相学习

    jaxbRss:RSS对象的JAXB绑定

    jaxbRss RSS对象的JAXB绑定 轻松地与任何jaxb支持的序列化格式之间进行编组/取消编组。 查看完整的文档: :

    stax+jaxb进行xml解析

    使用woodstax+jaxb进行xml的流解析,包括解析类,解析文件,所需jar包,带注解的实体类。提高了解析效率,减少了内存消耗。

    JAXB开发步骤

    本人总结的jaxb详细开发步骤,结合注解

    XML JAXB入门示例

    很好的jaxb入门示例 把所有注解标签都试一遍基本就OK了

    jaxb XMl和BEAN互转实例(内含jar包)

    jaxb XMl和BEAN互转实例(内含jar包),将jaxb封装成一个Util工具类,只需要通过对BEAN进行简单的注解就可以直接实现xml和bean之间的互转

    AnnotationParseXml:jAXB 解析 Xml

    JDK 自带JAXB 注解解析xml

Global site tag (gtag.js) - Google Analytics