WEB开发网
开发学院软件开发Java Java 中的 XML: 数据绑定,第 1 部分:代码生成方... 阅读

Java 中的 XML: 数据绑定,第 1 部分:代码生成方法 — JAXB 及其它

 2010-03-25 00:00:00 来源:WEB开发网   
核心提示: 相对于我在以前文章中所描述的映射绑定方法,根据 Schema 或 DTD 文法生成 Java 语言代码具有一些突出的优点,Java 中的 XML: 数据绑定,第 1 部分:代码生成方法 — JAXB 及其它(3),使用生成的代码,您可以确定数据对象被正确地链接到 XML 文档,我用每一种数据绑定

相对于我在以前文章中所描述的映射绑定方法,根据 Schema 或 DTD 文法生成 Java 语言代码具有一些突出的优点。使用生成的代码,您可以确定数据对象被正确地链接到 XML 文档,不象映射绑定方法,需要直接指定链接,并确保正确地涵盖了所有的结构变体。在使用 Schema 时,甚至可以利用文法所提供的类型信息,用合适的数据类型来生成代码。

代码生成方法也有一些不足之处。这种方法造成应用程序数据结构与 XML 文档结构之间紧密耦合。另外,它还可能限定您使用简单的数据类(没有关联行为的被动数据容器),而不是真正的对象类,在编组和数据分解过程中,还可能限制应用数据的定制转换的灵活性。在本文后面,我会权衡代码生成和映射绑定这两种方法。

数据和代码

对于将在第 2 部分中讨论的性能测试,我用每一种数据绑定框架来生成代码。用于性能测试的文档包含模拟航班时刻表的信息。下面是一个样本文档,您可以感受一下其中的结构:

清单 1. 样本文档

<?xml version="1.0"?> 
<timetable> 
  <carrier ident="AR"> 
    <rating>9</rating> 
    <URL>http://www.arcticairlines.com</URL> 
    <name>Arctic Airlines</name> 
  </carrier> 
  <carrier ident="CA"> 
     <rating>7</rating> 
    <URL>http://www.combinedlines.com</URL> 
    <name>Combined Airlines</name> 
  </carrier> 
  <airport ident="SEA"> 
    <location>Seattle, WA</location> 
    <name>Seattle-Tacoma International Airport</name> 
  </airport> 
  <airport ident="LAX"> 
    <location>Los Angeles, CA</location> 
    <name>Los Angeles International Airport</name> 
  </airport> 
  <route from="SEA" to="LAX"> 
    <flight carrier="AR"> 
     <number>426</number> 
     <depart>6:23a</depart> 
     <arrive>8:42a</arrive> 
    </flight> 
    <flight carrier="CA"> 
     <number>833</number> 
     <depart>8:10a</depart> 
     <arrive>10:52a</arrive> 
    </flight> 
    <flight carrier="AR"> 
     <number>433</number> 
     <depart>9:00a</depart> 
     <arrive>11:36a</arrive> 
    </flight> 
  </route> 
  <route from="LAX" to="SEA"> 
    <flight carrier="CA"> 
     <number>311</number> 
     <depart>7:45a</depart> 
     <arrive>10:20a</arrive> 
    </flight> 
    <flight carrier="AR"> 
     <number>593</number> 
     <depart>9:27a</depart> 
     <arrive>12:04p</arrive> 
    </flight> 
    <flight carrier="AR"> 
     <number>102</number> 
     <depart>12:30p</depart> 
     <arrive>3:07p</arrive> 
    </flight> 
  </route> 
</timetable>

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Java XML 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接