文档

Java™教程
隐藏目录
JAXB架构
教程:Java XML绑定架构(JAXB)
课程:JAXB简介

JAXB架构

本节介绍了JAXB处理模型中的组件和交互。

架构概述

下图显示了组成JAXB实现的组件。

图:JAXB架构概述


JAXB架构概述


JAXB实现包括以下架构组件:

JAXB绑定过程

下图显示了JAXB绑定过程中的发生情况。

图:JAXB绑定过程的步骤


JAXB绑定过程


JAXB数据绑定过程的一般步骤如下:

  1. 生成类:使用XML模式作为输入,使用JAXB绑定编译器生成基于该模式的JAXB类。
  2. 编译类:必须编译所有生成的类、源文件和应用程序代码。
  3. 反序列化:按照源模式中的约束编写的XML文档由JAXB绑定框架进行反序列化。注意,JAXB还支持从文件和文档以外的源(如DOM节点、字符串缓冲区、SAX源等)解组XML数据。
  4. 生成内容树:反序列化过程根据生成的JAXB类实例化数据对象的内容树;这个内容树表示源XML文档的结构和内容。
  5. 验证(可选):在生成内容树之前,反序列化过程涉及源XML文档的验证。注意,如果您在第6步中修改了内容树,您还可以使用JAXB Validate操作在将内容重新组合为XML文档之前验证这些更改。
  6. 处理内容:客户端应用程序可以使用绑定编译器生成的接口修改Java内容树所表示的XML数据。
  7. 序列化:经过处理的内容树被序列化为一个或多个XML输出文档。在序列化之前,可以对内容进行验证。

更多关于反序列化的信息

反序列化提供了将XML数据转换为基于JAXB派生的Java对象的能力。

更多关于序列化的信息

Marshalling提供给客户端应用程序将一个基于JAXB的Java对象树转换为XML数据的能力。

默认情况下,Marshaller在生成XML数据时使用UTF-8编码。

在进行marshalling之前,客户端应用程序不需要验证Java内容树。也没有要求将Java内容树与其原始模式相匹配以将其marshal为XML数据。

关于验证的更多信息

验证是验证XML文档是否符合模式中表达的所有约束的过程。JAXB 1.0在unmarshal时提供了验证,并且还允许在JAXB内容树上进行按需验证。JAXB 2.0只允许在unmarshal和marshal时进行验证。一个Web服务处理模型是在读取数据时宽松,但在写入数据时严格。为了满足该模型,在marshal时添加了验证,这样用户可以确认在修改JAXB形式的文档时是否使其无效。


上一页: JAXB简介
下一页: 表示XML内容