本教程适用于JDK 8。本页面描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改了解Java SE 9及后续版本中更新的语言功能的摘要。
请参阅JDK发布说明了解有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息。
本节介绍了JAXB处理模型中的组件和交互。
下图显示了组成JAXB实现的组件。
图:JAXB架构概述
JAXB实现包括以下架构组件:
下图显示了JAXB绑定过程中的发生情况。
图:JAXB绑定过程的步骤
JAXB数据绑定过程的一般步骤如下:
反序列化提供了将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形式的文档时是否使其无效。