图 9-1 jaxb体系结构概述
如图9-1所示,jaxb实现包含下列八个核心组件: 表 9-1 jaxb实现中的核心组件 组件 描述 xml schema xml模式使用xml语法描述xml文档中元素.属性与实体之间的关系.xml模式的目标是定义一个xml文档类,该类必须坚持特定的结构规则与数据约束.例如,你可能希望给面向章的书.在线采购系统或个人数据库定义不同的模式.在jaxb上下文中,将包含数据的受到xml模式约束的xml文档叫做文档实例,并且将文档实例中的结构与数据叫做内容树 binding declarations 默认情况下,jaxb绑定编译器根据jaxb规范第5节“将xml schema绑定到java表示”中定义的规则将java类与包绑定到原始xml模式.多数情况下,利用默认的规则已经能够从大量的模式中产生一组强壮的模式派生类.但是,有的时候,默认的绑定规则就不够用了.jaxb支持通过绑定声明自定义或覆盖默认的绑定规则.这些绑定声明或者是内部源模式的注释或者是传递给jaxb绑定编译器的外部绑定自定义文件中的语句.注意,自定义的jaxb绑定声明也允许摆脱xml模式中特定于xml的束缚,来自定义生成的jaxb类,以包含特定于java的改进,如类与包名映射 binding compiler jaxb绑定编译器是jaxb处理模型的核心.它的功能是将源xml模式转换或绑定到java编程语言中的一组jaxb内容类.基本上,可以通过将一个xml模式 (可以选择使用自定义绑定声明)用作输入来运行jaxb绑定编译器.绑定编译器产生java类,这些java类映射到了源xml 模式中的约束条件 binding framework implementation jaxb绑定框架实现是运行时api,它提供了反编组.编组与验证java应用程序中的xml内容的接口.绑定框架包括javax.xml.bind 包中的接口 schema-derived classes 这些是jaxb编译器产生的模式派生类.根据输入的模式将采用不同的类 java application 在jaxb上下文中,java应用程序是客户端应用程序,它使用jaxb绑定框架来反编组xml数据,验证并修改java内容对象,并将java内容编组成xml数据.特别是,jaxb绑定框架包装在一个能提供ui功能.xml转换功能.数据处理或其他所需要的功能的大型java应用程序中 xml input documents 这是反编组出来用作jaxb绑定框架输入的xml内容——即xml实例文档,从这里将产生内容树形式的java表示.实际上, 术语“文档”不再是传统意义上的文档了,因为xml实例文档不一定要是形式完整的.自立的文档文件;相反它具有流的形式,这些流可以是应用程序之间传递的数据.数据库字段集合.xml信息集合,其中信息块包含了描述它们在模式结构中的位置的足够信息. 在jaxb中,反编组过程支持根据源模式定义的约束验证xml输入文档.然而该验证过程是可选的,在某些情况下你可能通过其他途径知道输入文档是有效的,出于对性能的考虑你可能选择在反编组过程中跳过验证.但是,无论在哪种情况下,反编组之前(通过第三方应用程序)或之后验证都很重要,这是因为它确保了关于源模式编组过程中产生的xml文档也是有效的.在本章的后面部分将详细介绍验证 xml output documents 这是编组到xml文档的xml内容.在jaxb中,编组包括解析xml内容对象树并写出一个xml文档,该文档是原始xml文档的精确表示并且相对于原始模式来说是有效的.jaxb能够将xml数据编组成xml 文档.sax内容处理程序与dom节点. jaxb绑定过程 图9-2显示了jaxb的绑定过程.图 9-2 jaxb绑定过程步骤
jaxb数据绑定过程的常用步骤是: 1. 生成类.将xml模式放入jaxb绑定编译器,以产生基于该模式的jaxb类. 2. 编译类. 必须编译所有生成的类.源文件与应用程序代码. 3. 反编组.jaxb绑定框架反编组根据原始模式中的约束编写的xml文档.... 下一页