接下来的步骤将生成一组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();
对于46种java类型中的任何一种,XMLBeans 都提供了两种访问数据的方法。在此,一种方法为xsd:float返回了XmlFloat类型,而另一种方法为xsd:float返回了一个普通的java类型如float类型。
Xget形式的函数在性能上要优于get形式的函数,因为get形式的函数必须要把数据转化成为最合适的java类型。
当模式被编译后,模式类型的名称将会变得符合java的命名规则。换句话说,stock-quote这样的名称将变为StockQuote。另外,模式名称空间的URIs变成了模式生成的XMLBeans类型的包名。如果包含的模式没有声明目标名称空间,那么所有的java类都将放在noNamespace这个包中。当出现了类命名冲突时,生成的类名字后面将加上相应的数字——例如, timeStamp3。
(编辑:aniston)
|