快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
数据的方法。在此,一种方法为xsd:float返回了XmlFloat类型,而另一种方法为xsd:float返回了一个普通的java类型如float类型。

Xget形式的函数在性能上要优于get形式的函数,因为get形式的函数必须要把数据转化成为最合适的java类型。

当模式被编译后,模式类型的名称将会变得符合java的命名规则。换句话说,stock-quote这样的名称将变为StockQuote。另外,模式名称空间的URIs变成了模式生成的XMLBeans类型的包名。如果包含的模式没有声明目标名称空间,那么所有的java类都将放在noNamespace这个包中。当出现了类命名冲突时,生成的类名字后面将加上相应的数字——例如, timeStamp3。

对于全局元素和属性,XMLBeans 模式编译器将分别生成名称以Document和Attribute结尾的接口。

对于在另一个元素或类型的声明中局部声明的命名类型,XMLBeans会在元素或类型接口中生成一个内部接口,形成嵌套结构。

考虑下面的employee.xsd 模式列表。

<?xml version="1.0" encoding="UTF-8"?> <!-- This XML Schema describes Employee''s    Jobstatus --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="Employee">   <xsd:sequence>   <xsd:element name="Jobstatus">    <xsd:simpleType>    <xsd:restriction base="xsd:NMTOKEN">     <xsd:enumeration value="fullTime"/>     <xsd:enumeration value="hourly"/>    </xsd:restriction>    </xsd:simpleType>   </xsd:element>   </xsd:sequence> </xsd:complexType> </xsd:schema>

因此,XMLBeans在元素Employee的接口中生成了一个内部接口Jobstatus,嵌套在了Employee接口中。

public interface Employee   extends org.apache.xmlbeans.XmlObject { ... public interface Jobstatus   extends org.apache.xmlbeans.XmlNMTOKEN   {   } }

Employee类在这里扩展了org.apache.xmlbeans.XmlObject,这是所有XMLBeans类型的基础接口。所有的内置模式类型,用户定义类型和派生的模式类型都从XmlObject中继承而来。

使用XMLBeans类解除封送XML文件

下面的一小段weather_unmarshal.java代码阐明了怎样使用XMLBeans类从weatherInput.xml.文件的XML文档中获取天气信息。

String filePath = "weatherInput.xml"; java.io.File inputXMLFile = new java.io.File(filePath); // Parse XML Document. WeatherDocument weatherDoc = WeatherDocument.Factory.parse(inputXMLFile); // Get object reference of root element Weather. WeatherDocument.Weather weatherElement = weatherDoc.getWeather();

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

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

通过调用WeatherDocument.Factory.parse(File)方法来解析XML文件,该方法返回一个WeatherDocument对象。随后对weatherDocument对象调用getWeather()方法来获取根元素Weather的对象引用。

要获得Weather元素的内容,简单调用weatherElement的相应的get方法,它将直接映射模式定义的元素和属性名称:

// Call the appropriate ''get'' methods of // weatherElement that // directly map to the element and attribute names // defined in the schema. Calendar timeStamp = weatherElement.getDatetime(); System.out.println("Weather details of zipcode " + weatherElement.getZipcode() + " at " + time

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号