快速业务通道

使用XMLBeans绑定XML-java数据 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
ong.xsd schema // file. } else {      System.out.println("Input xml document "       + "doesn''t conform to weather_latlong.xsd"); } } catch (Exception e) {    e.printStackTrace();   } } }

使用XMLBeans绑定XML-java数据(4)

时间:2011-03-07 Dev2Dev Hetal C. Shah

为了获得输入XML文档的内容,我们先检查XmlObject.Factory.parse()返回的对象的文档类型,然后把返回的对象转化为相应的文档类型,以供稍后处理。另一段有趣的代码是最后的else代码块,它将处理格式良好的XML文档不符合weather_latlong.xsd模式的情况。

创建一个新的XML文档

下面的一小段latlong_marshal.java代码阐述了如何使用XMLBeans生成的类创建一个包含经纬度信息的新xml实例文档。

LatlongDocument latLongDoc; LatlongDocument.Latlong latLongElement; XmlOptions xmlOptions; // LatlongDocument.Factory.newInstance() creates // and returns a LatlongDocument object. latLongDoc= LatlongDocument.Factory.newInstance(); // addNewLatlong() method is called on the // document object to create and add a new // LatLong Element to document. latLongElement = latLongDoc.addNewLatlong();

LatlongDocument.Factory.newInstance()创建了一个LatlongDocument对象并且返回该对象。随后对文档对象调用addNewLatlong()方法创建并向文档增加一个新的LatLong元素。

要向LatLong元素添加数据, 简单调用latLongElement的相应的Set方法即可,它将直接映射模式中定义的的元素和属性名称。

latLongElement.setZipcode("91023"); latLongElement.setLatitude("33.8792"); latLongElement.setLongitude("117.8974");

最后的代码段将LatLong元素的当前状态写到了标准的输出流中。

xmlOptions = new XmlOptions(); // Requests use of whitespace for easier reading xmlOptions.setSavePrettyPrint(); // Requests that nested levels of the xml // document to be indented by multiple of 4 // whitespace characters xmlOptions.setSavePrettyPrintIndent(4); String xmlStr = latLongDoc.xmlText(xmlOptions); // Writes the current state of the LatLong // element to a standard output stream System.out.println("XML Instance Document is : "   + " " + xmlStr );

xmlText方法用可选的xmlOptions对象控制它的行为。setSavePrettyPrint()方法要求使用空白符,以便方便阅读,而setSavePrettyPrintIndent(4)方法要求在嵌套的XML文档中首行缩进四的倍数个空白符。

输出的结果是:

XML Instance Document is : <Latlong Zipcode="91023">    <Latitude>33.8792</Latitude>    <Longitude>117.8974</Longitude> </Latlong>

性能优势

与DOM的不同之处是,XMLBeans没有采用解除封送整个xml文档和为每个xml文档结点提供一个对象的方法。使用XMLBeans,只在需要时进行封送和解除封送,因此对于你从来没有查看过的代码,它们是不会被封送和解除封送的。这提高了XMLBeans解决方案的性能。

XMLBeans也提供高效的xget版本的函数访问XML模式内置数据类型。

验证

分配给内置XMLBeans java类型的值将按照其表示的模式类型的规则进行验证。例如,如果将一个符合条件的名称分配给一个XmlQName数据类型时,如果该名称的前缀不能解析为任何URI,将会抛出XmlValueOutOfRange异常。

当xml文档第一次被解析时,将根据模式定义验证其中包含的数据。更有意思的是,无论何时通过XMLBeans生成的ja

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号