处于 XML 模式文件级别的复杂类型被映射至作为 ComplexType 子类的 bean。如元素部分中所述映射复杂类型的每个子元素。
元素将导致生成 set、get 和 remove 方法。set 方法将元素设置为指定的值。如果元素不存在的话,它将创建元素。get 方法将返回元素值。remove 方法将从元素的父代中除去元素。set 方法的参数和 get 方法的返回结果将取决于元素类型。考虑下列复杂类型项:
<complexType name="Items"> <sequence> <element name="PartNum" type="string"> <element name="address" type="Address"> <element name="item"> <complexType> <sequence> <element name="productName" type="String"> </sequence> </complexType> </element> <element name="price"> <simpleType base="float"> <restriction> <maxExclusive="1000"/> </restriction> </simpleType> </element> </sequence> </complexType>
public void setPartNum(String partNum); public String getPartNum(); public boolean removePartNum();
public void setAddress(Address address) public Address getAddress(); public boolean removeAddress();
后面的“数据类型”表显示内置 XML 模式数据类型与 Java™ 数据类型之间的映射。
如果元素的类型是匿名复杂类型,则匿名复杂类型是作为内部类生成的。
内部类将包含其内容的相应 get、set 和 remove 方法。在前面的示例中,将生成内部类 Items.item。item 的 get、set 和 remove 方法看起来如下所示:
public void setItem(Items.item item); public Items.item getItem(); public boolean removeItem();
如果对一个元素将属性 maxOccurs 设置为不受限制,则将生成另外一个方法 getXXXCount()。get、set 和 remove 方法将具有额外的索引参数,用来指定想要对其执行操作的特定元素。如果按如下所示修改前面的 item 元素以添加 maxOccursattribute:
<element name="item" minOccurs="1" maxOccurs="unbounded">
将生成下列方法:
public void setItem(int index, Items.item item);
public Items.item getItem(int index);
public int getItemCount();
public boolean removeItem(int index);
attribute 元素将导致生成 set、get 和 remove 方法。set 方法将属性设置为指定的值。如果属性尚不存在的话,则它将创建属性。get 方法返回属性值。remove 方法从属性的父元素中除去属性。set 方法的参数和 get 方法的返回结果将取决于属性类型。
处于 XML 模式文件级别的全局元素被映射至下列其中一种 bean 类型:
处于 XML 模式文件级别的简单类型被映射至成为 SimpleType 的子类的 bean。
如果可能的话,将使用相应的 Java developer kit 类把 XML 模式内置数据类型映射至 Java 数据类型。下表总结了数据映射。未列示的任何 XML 模式数据类型都将作为 string 来映射。
XML 模式类型 | Java 数据类型 |
---|---|
string | String |
integer、int、nonPositiveInteger、nonNegativeInteger、positiveInteger、negativeInteger、unsignedLong 和 unsignedInt | int |
boolean | boolean |
float | float |
double | double |
long | long |
short 和 unsignedShort | short |
byte 和 unsignedByte | byte |
date | Date |
com.ibm.etools.xmlschema.beans 包中包含由生成的 bean 使用的许多框架类。它们是: