创建一个XMLBean
在开始创建XMLBeans之前,需要下载并在系统中安装Apache XMLBeans 1.02。当从XMLBeans 的归档文件中提取出文件之后,将会在解压文件中看到bin目录和lib目录。随后,把bin目录放到路径中,把lib目录中的xbean.jar包放到classpath路径中。
XML 模式文件(XSD文件)创建了XMLBeans类。这些XMLBeans类能够解析所有符合XML模式的XML 实例文档。同样,通过使用这些XMLBeans类,也能够创建出实例文档。
例如,下面的weather_latlong.xsd模式列表描述了xml文档的内容,该文档包含了某个地理位置的天气、经纬度信息,这些信息全部基于zip代码。
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- This XML Schema describes xml documents
containing either weather details or latlong
details of a location based on Zipcode Two Global
elements Weather and Latlong, and one Global
Attribute Zipcode are declared.-->
<xsd:element name="Weather">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Temperature"
type="xsd:float"/>
<xsd:element name="Humidity"
type="xsd:float"/>
<xsd:element name="Visibility"
type="xsd:float"/>
<xsd:element name="Datetime"
type="xsd:dateTime"/>
</xsd:sequence>
<xsd:attribute ref="Zipcode"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Latlong">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Latitude"
type="xsd:string"/>
<xsd:element name="Longitude"
type="xsd:string"/>
</xsd:sequence>
<xsd:attribute ref="Zipcode"/>
</xsd:complexType>
</xsd:element>
<xsd:attribute name="Zipcode"
type="xsd:string"/>
</xsd:schema>
接下来的步骤将生成一组XMLBeans类,它们表示上面的XSD类型模式。在工作目录(从示例归档文件提取文件的位置)的提示符中,输入以下命令行:
scomp-outweather.jarweather_latlong.xsd
在编译完以上的模式后,XMLBeans生成如下五个接口。WeatherDocument、WeatherDocument$Weather、LatlongDocument、LatlongDocument$Latlong和ZipcodeAttribute。
在此,WeatherDocument接口表示文档元素,WeatherDocument$Weather接口表示全局元素Weather。类似地,LatlongDocument和LatlongDocument$Latlong接口表示全局元素Latlong。ZipcodeAttribute接口代表了全局属性Zipcode。
XMLBeans类
下面将详细讨论XMLBeans类。 XMLBeans提供了46种java类型,反映了XML 模式规范中定义的46种内置类型。例如,W3C定义了一个xsd:string类型,XMLBeans就提供了一个XmlString数据类型与之对应。
在weather_latlong.xsd 模式创建的Weather接口为xsd:float类型的局部元素Visibility声明了如下的两种方法:
floatgetVisibility();
和
org.apache.xmlbeans.XmlFloatxgetVisibility();