JAXB技术的研究与应用

来源 :光盘技术 | 被引量 : 0次 | 上传用户:congrorm
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:XML绑定的框架提供了一个功能强大而又实用的方法去在JAVA程序中处理XML内容。JAXB提供了很多新的特性,包括对所有XML Schema模型特性的支持,产生更少的类,并且更容易对这些生成的类进行操作,同时提供了一个更方便的验证机制。
  关键词:XML绑定;框架;JAXB;schema
  中图分类号:TP311.52文献标识码:A
  
  Research and Application of JAXB
  WANG Yang,XU Su-jin
  (School of Computer and Information Engineering,Henan University,Henan Kaifeng 475004)
  Key words: XML binding; content; JAXB; schema
  
  1 引言
  
  JAXB(Java Architecture for XML Binding, Java XML绑定架构)是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该技术可以提供将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便加载XML数据,并以XML文件作为数据存储方式。
  
  2 JAXB技术研究
  
  2.1JAXB技术的优势
  (1)简单易用:JAXB技术中XML绑定的JAVA框架提供了一种简单而且方便的方法映射XML模型到JAVA类,所以开发人员不用深入了解XML就可以在他们的JAVA程序就处理XML数据。
  (2)维护性好:当产品需要更新,或是数据模型需要改变时,只需要重新定义Schema,然后让JAXB重新生成对XML文档进行操纵的类,使得应用程序具有很好的维护性。
  (3)数据兼容性:进行版本更新时,往往要考虑兼容性问题。由于使用了XML作为数据交换的格式,只需要提供XSLT的模板就能将原有的数据格式自动转换成新版本的格式。除此以外,还可以将XML表示的图形数据文件任意转换成其他标准的CAD数据格式。
  (4)较好的性能:JAXB在运行时在大部分时间中都是直接操纵内存中的Java对象,只有在读取和存储文件的时候才会与XML文件进行IO操作。
  2.2JAXB技术核心组件
  JAXB技术主要包含下列核心组件:
  (1)XML Schema:XML模式使用XML语法描述XML文档中元素、属性和实体之间的关系。XML模式的目标是定义一个XML文档类,该类必须坚持特定的结构规则和数据约束。例如,你可能希望给面向章的书、在线采购系统或个人数据库定义不同的模式。在JAXB上下文中,将包含数据的受到XML模式约束的XML文档叫做文档实例,并且将文档实例中的结构和数据叫做内容树。
  (2)Binding Compiler:JAXB绑定编译器是JAXB处理模型的核心。它的功能是将源XML模式转换或绑定到Java编程语言中的一组JAXB内容类。基本上,可以通过将一个XML模式 (可以选择使用自定义绑定声明)用作输入来运行JAXB绑定编译器。绑定编译器产生Java类,这些Java类映射到了源XML 模式中的约束条件。JAXB绑定编译器可以让你从一个指定的XML模型生成JAVA类。JAXB绑定编译器把XML模型转换成一个符合XML模型里所描述的结构的JAVA类。这些类使用特殊的JAXB注释符进行注释,给运行时框架提供所需要的映射功能用于处理相应的XML文档。
  (3)Schema-Derived Classes & Interfaces:这些是JAXB编译器产生的模式派生类。根据输入的模式将采用不同的类。
  (4)Application:在JAXB上下文中,Java应用程序是客户端应用程序,它使用JAXB绑定框架来反编组XML数据,验证并修改Java内容对象,并将Java内容编组成XML数据。特别是,JAXB绑定框架包装在一个能提供UI功能、XML转换功能、数据处理或其他所需要的功能的大型Java应用程序中。
  (5)JAXB API:提供了反编组、编组和验证Java应用程序中的XML内容的接口。
  (6)XML Document:这是反编组出来用作JAXB绑定框架输入的XML内容——即XML实例文档,从这里将产生内容树形式的Java表示。实际上,术语"文档"不再是传统意义上的文档了,因为XML实例文档不一定要是形式完整的、自立的文档文件;相反它具有流的形式,这些流可以是应用程序之间传递的数据、数据库字段集合、XML信息集合,其中信息块包含了描述它们在模式结构中的位置的足够信息。
  在JAXB中,反编组过程支持根据源模式定义的约束验证XML输入文档。然而该验证过程是可选的,在某些情况下你可能通过其他途径知道输入文档是有效的,出于对性能的考虑你可能选择在反编组过程中跳过验证。但是,无论在哪种情况下,反编组之前(通过第三方应用程序)或之后验证都很重要,这是因为它确保了关于源模式编组过程中产生的XML文档也是有效的。
  (7)Content Objects:这是编组到XML文档的XML内容。在JAXB中,编组包括解析XML内容对象树并写出一个XML文档,该文档是原始XML文档的精确表示并且相对于原始模式来说是有效的。JAXB能够将XML数据编组成XML文档、SAX内容处理程序和DOM节点。
  
  3 JAXB技术应用
  
  3.1应用场景
  程序的自定义设置是一个重要的功能,大多数程序都会提供自定义配置的方法,提供用户根据个人喜好、运行环境来配置软件的使用方式。程序的配置方式存在多样性,一般会采用Windows格式的INI配置文件或者注册表方式,Java格式的Properties属性文件,随着XML文件在程序开放中的普及,也有越来越多的配置开始使用XML的文件方式,例如J2EE中的部署描述文件。
  在一般的程序配置方式中,使用JAXB是一个简单,方便的做法,无论是加载自定义配置、或者是保存配置。把对配置参数的处理,转化为普通Java对象的操作,对于参数的加载或者保存,则交与JAXB来实现,因此都极为轻松。
  JAXB技术允许把Java和XML绑定在一起。这意味着可以在Java程序中访问XML文档的数据。这对创建Schema驱动的用户界面特别便利。
  3.2JAXB技术应用步骤
  (1)定义XML文件的Schema,用于定义XML文件的格式规范。
  (2)运行xjc.bat或者xjc.sh脚本进行数据绑定。
  (3)使用marshal静态方法来根据Java对象生成XML文件。
  (4)使用unmarshal静态方法从XML文件装载Java对象。
  3.3用JAXB技术进行数据绑定
  JAXB编译器绑定一个XML模型到一组Java类。一个XML模型就是一个XML文档用于描述在一个特定类型XML文档中指定的元素和属性。XML模型描述是非常的严格的,可以包括诸如一列对象所允许的元素个数,可选,必选属性等等这样的细节。
  Schema用于描述和规范XML文档的逻辑结构的一种语言,它最大的作用就是验证XML文件逻辑结构的正确性。可以理解成与DTD(文档类型定义)功能差不多,但是Schema在当前的WEB开发环境下优越很多。因为它本身就是一个有效的XML文档,因而可以更直观地了解XML的结构。除此之外,Schema支持命名空间,内置多种简单和复杂的数据类型,并支持自定义数据类型。
  


  命令行工具XJC用于运行JAXB编译器。为了按照自定的模式运行JAXB编译器,运行命令时可以根据需要求改变命令的参数。例:
  xjc Schema文件 参数
  这将产生一组用JAXB注释符注释的JAVA类。一些比较有用的可选项描述如下:
  o -d :把生成的文件存入这个目录。
  o -p :把生成的文件存入这个包。
  o -nv:不要对输入模式进行严格的验证。
  o -classpath :如果有必要的话,指定classpath。
  o -readOnly:如果你的操作系统支持这个的话,生成只读源代码文件。
  3.4实现简单marshal和unmarshal静态方法
  在实现数据绑定过后,就可以根据主要绑定框架包javax.xml.bind提供的三个核心功能编组(marshal)、反编组(unmarshal)和验证(Validator)对XML文件进行操作。
  JAXBContext类是Java应用程序到JAXB框架的入口点。JAXBContext 实例为编组、反编组和验证操作使用的JAXB实现将XML元素名绑定到Java内容接口。JAXBContext提供了一个抽象,该抽象可以管理实现反编组、编组和验证操作必要的XML/Java绑定信息。客户端应用程序通过newInstance方法得到该类的新实例。代码如下:
  JAXBContext jaxbContext
  =JAXBContext.newInstance
  (“数据帮定生成Java类的位置”);
  javax.xml.bind包中的Marshaller类使得客户端应用程序能够将Java内容树转换成XML数据。编组一个使用工厂方法人为创建的内容树和反编组操作得到的内容树之间没有什么区别。客户端能够将Java内容树编组回到java.io.OutputStream 或java.io.Writer的XML数据中。
  通过已编组的数据流生成一个XML文件,代码如下:
  Marshaller marshaller=jc.createMarshaller();
  marshaller.marshal(数据流,new FileOutputStream(“文件名“);
  


  javax.xml.bind包中的Unmarshaller类使得客户端应用程序能够将XML数据转换成Java内容对象树。模式的unmarshal方法(在命名空间内)允许将模式中声明的任何全局XML元素反编组成实例文档的根。
  简单的读取一个XML文件,代码如下:
  Unmarshaller u=jc.createUnmarshaller();
  JAXBElement 数据流
  =(JAXBElement) u.unmarshal(new FileInputStream(”文件名“);
  


  4 结束语
  
  JAXB技术是一个用于集成XML到JAVA应用程序中功能强大的工具。支持所有XML模式,验证更灵活,生成的类更简单,干净。现在JAXB技术越来越多的运用到各种应用程序当中,在越来越多的开放源码的产品都能看到JAXB的影子。尤其是Web Services和XML的应用的迅速发展,JAXB技术越来越受到广大Java开发人员的重视。
  
  参考文献:
  [1]John Zukowski.Java? 6 Platform Revealed,2006,(11).
  [2]Hanser Fachbuchverlag.JAXB 2.0,2006,(11).
  [3]吴波,王华军.XML数据绑定技术探析[J].软件导刊,2008,(8).
  [4]姜力.基于Java的XML数据绑定[J].浙江万里学院学报,2004,(5).
其他文献
摘要:随着社会的不断进步,我国的经济发展步伐逐渐加快,但是,现今社会上的生活压力也逐渐增大,尤其是在一些发达城市。很多企业对于人才的需求量很大,然而企业为人才提供的福利却不是很好,而且在管理中存在着很大的问题,最终导致了企业员工的流失严重。本文主要对企业的人才流失现象进行了研究,并且分析了产生的原因,针对其中的原因,提出了控制企业员工流失的建议。  关键词:企业员工;流失现象;原因;控制对策  前
期刊
摘要:在地方和国家的经济增长中,中小企业所起到的作用是不容忽视的,同时,中小企业的大量存在又是毕业生充分就业的保障。因此,有必要提高中小企业招聘工作的有效性。但是近几年来,我国中小企业招聘工作有效性不高的问题普遍存在,不管是由哪一方面原因所导致,都将对我国中小企业的发展与壮大造成不利影响,对国民经济的增长也极其不利,所以国家应该把解决中小企业招聘工作有效性不高的问题作为今后工作的重点。  关键词:
期刊
摘 要:随着移动通信事业的不断飞速发展,如何优质、快速、并且能够更可靠地建设移动通信基站是摆在众多运营商面前的一道现实的难题。为了能够满足3G基站易于选址、优质快速的建站要求和易维护、低成本、高可靠的运行要求,本文对以方舱来实现一体化结构基站作出一番探讨。  关键词:3G;基站;探讨  中图分类号:TP393.04文献标识码:A    Exploration on 3G Communication
期刊
摘要:高校青年教师正成为教学的主力军,青年教师的教学水平直接影响着我国高等教育的水平,因此提高青年教师自身的教学水平,对高等教育起着举足轻重的作用。本文在青年教师自身教育理论学习、广泛涉猎知识,积累专业知识,参加教学实践,认真备课及授课的技巧与方式等方面进行了思考并提出相关措施,希望能对青年教师教学水平的提高贡献一些力量。  关键词:高校;青年教师;提高教学水平  一、引言  当前高校教师队伍中,
期刊
摘 要:某公司筹建了C5罐区装置,此项目选用PLC控制系统,结合本装置控制的要求,选用了SIMENS公司生产的S7-300系列的PLC,通过对其硬件电气特性的分析,明确了硬件的选用、网络结构及软件的工程的优化配置。根据项目工程要求,进行了关于流量累积算法的研究及实现; 在人机界面的组态上,使用了当今流行的面向对象的技术WinCC监控软件。实践证明,该系统安全可靠,完全达到了生产的需要,实现了该装置
期刊
摘 要:本文对C8051F121芯片的硬件电路设计,接口电路设计和软件设计进行全方面的论述和研究。实验结果证明该设备具有低功耗、低成本、功能强大的特点,充分利用了该芯片提供的资源,并且满足了智能车辆检测器的需求。  关键词:C8051F121;智能车辆检测器;应用  中图分类号:TP206+.1 文献标识码:A    The Application of C8051F121 Chipto Inte
期刊
摘 要:本文介绍用Excel解决实际工作中制作工资条、台账时遇到的问题。  关键词:Excel;工资条;台账  中图分类号:TP317文献标识码:A    Use of Excel Easily Print Salary and Account  LIU Yun-feng  (Bohai University, Liaoning Jinzhou 121013)  Key words: Excel;
期刊
摘要:博弈论是经济学中的一种标准且有效的分析工具,用博弈论方法中的市场进入阻挠博弈模型分析贸易型企业的销售策略非常有效。将在位者与进入者(竞争对手)看成是博弈的双方,结合销售中的实际案例分别用“完全信息静态博弈”和“完全信息动态博弈”两个模型分析在位者的销售策略,最终得出最优销售策略。  关键词:博弈论;进入阻挠博弈模型;最优销售策略  一、引言  以商品交易为主业的公司我们称之为贸易型企业,贸易
期刊
摘要:在我国,中小企业在国民经济体系中有着非常重要的作用。但是,我国的中小企业在管理水平方面存在着较多的问题,制约着中小企业的进一步发展。管理模式的选择是影响中小企业管理水平的关键因素。因此,企业要正确的选择适用的管理模式。  关键词:中小企业;企业生命周期;管理模式;管理要素  当前,中小企业面临着良好的发展机遇,在经济发展的过程中发挥着越来越重要的作用。但是,在其发展的过程中依旧存在着很多问题
期刊
摘 要:本论文的研究对象是网站性能优化,首先通过研究ASP.NET网站的体系结构,对优化技术做了一定的分析,然后采用了静态页面的优化,字符串转化的优化,字符串连接的优化这几种措施对Web应用程序进行了优化。  关键词:性能优化;缓存;测试  中图分类号:TP202+.7 文献标识码:A    ASP.NET Performance Optimization Design  ZHANG Yi-bo
期刊