- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章《使用JAXB处理XML数据》
9. 使用 JAXB 处理 XML 数据 对于使用面向对象语言的程序开发人员,最熟悉的莫过于内存中的各种对象了,通过调用对象的方法、设置对象属性,可以方便地对这些对象进行各种操作。 第 8 章中介绍的 XML 解析技术,包括 DOM 和 SAX,它们都非常依赖于 XML 技术的细节。 第一、这样的数据处理方式要求开发人员除了熟练地使用面向对象的编程语言之外,还必须掌握 XML 的相关技术,并在处理数据前,对数据的结构一清二楚; 第二、对于需要进行大量 XML 数据处理的应用场景(比如基于 Web 服务的 SOA 环境),这种处理方式比较麻烦,效率不高。 9.1 数据绑定 数据绑定是指从数据源获得一些数据(比如从 XML 文档、文本文件或者数据库中)、并通过程序表示这些数据的过程,也就是将源数据转换成为 Java 虚拟机能够理解并且可以直接操作的某种内存中的数据结构(即 Java 对象)。 相应地,数据绑定软件包应该能够用 VM 上修改的数据(经过更新的 Java 对象)更新底层存储媒介(XML 文档、文件或数据库表)中的数据。 数据绑定的示例 数据绑定的一般概念和 XML 数据绑定 文法(Grammar) 解组(Unmarshalling) 编组(Marshalling) 往返(Round-tripping) 语义等价(Semantic Equivalent) 映射或转换规则(Mapping/Transformation Rules) 数据类型绑定(Data Type Binding) XML 数据绑定 API 9.2 JAXB API 及其基本使用 在本章内容中,我们将以 SUN JDK 1.6 中的 JAXB 2.0 为例,介绍如何使用 XML 数据绑定功能,轻松地、灵活地对 XML 数据进行处理。 JAXB 概述 Java API for XML Binding (JAXB) 是一种与 XML 相关的 Java 技术,它使得程序开发人员可以从 XML Schema 文件生成对应的 Java 类(从程序设计的角度来看,两者都用于描述某种数据结构),以实现数据绑定的功能,并且可以容易地对数据进行操作。 使用 JAXB 基本不需要掌握任何 XML 知识。可以操作普通 Java 对象(并不特定于 XML 的对象,如 DOM 的 Node 或 Text 接口),并将这些对象直接表示为 XML,这意味着较低的入门门槛。 但实际上,对 XML 的了解越少,要想合理使用 JAXB 就愈加显得困难。 使用 JAXB 进行数据绑定的过程(1) 1. 根据 XML Schema 生成 Java 类,编译所生成的类; 2. 根据 Schema 对 XML 文档进行解组,从而将平面的文档数据映射为一些从 Schema 派生的 JAXB 类的对象,而这些对象之间相互关联,能够准确地表示 XML 文档中的层次关系。在 JAXB 中,将这些对象所表示的信息称为内容树(content tree)。 9.2.3 自动生成相应的 Java 类 9.2.4 对 XML 文档进行解组操作 TestJaxb.java * * // 绑定到数据库中的某个关系表,以便通过 Java 对象进行操作 Factory factory = DBFactory.newInstance(......); factory.connect(); ListEmployee employees = factory.unmarshal(DatabaseConstants.EMPLOYEE_TABLE); // Manipulate data in employee objects for (IteratorEmployee i = employees.iterator; i.hasNext(); ) { Employee employee = i.next(); System.out.println(First name: + employee.getFirstName()); System.out.println(Last name: + employee.getLastName()); // 修改 Java 对象中的数据,然后再写入到数据库表中 employee.setFirstName(...); employee.setLastName(...); factory.marshal(employee, DatabaseConstants.EMPLOYEE_TABLE); } short xsd:unsignedByte int xsd:u
您可能关注的文档
- 第一节电能表与电功(第2课时).doc
- 2012海淀一模完形详解.ppt
- _工程开通指导——ap侧故障排查方法.doc
- 自动控制原理第二章五六节.ppt
- 美元、美股、美资下一步.doc
- 10-1总供给.ppt
- 初中英语分类测试卷—宾语从句.doc
- 可能性(第二课时).doc
- 史上最强的市场资料成都市雕墅市场调查.doc
- 江西省数控竞赛——.ppt
- 新解读《HG_T 2723-2022胶乳彩色气球》最新解读.docx
- 新解读《HG_T 4451-2022纺织染整助剂 液体产品氧化性的测定》最新解读.docx
- 新解读《HG_T 6123 - 2022三氯乙烯行业绿色工厂评价要求》最新解读.docx
- 新解读《HG_T 6125 - 2022再生胶行业绿色工厂评价导则》最新解读.docx
- 金刚线超细线径切割机相关项目运营指导方案.docx
- 电力安全生产法律法规解读.docx
- 电力工程项目的进度管理与监控.docx
- 2025反射疗法师大赛理论考前冲刺练习及参考答案详解【轻巧夺冠】.docx
- 2025反射疗法师大赛理论检测卷含答案详解【预热题】.docx
- 2024年施工员模拟试题必考题附答案详解.docx
文档评论(0)