来自 XML 模式文件的 Java bean 的数据绑定规则

本节描述用来从 XML 模式生成 bean 的规则。它们仅适用于基于 DOM 的 XSD Bean 生成器(建议不要使用该生成器)。

复杂类型

处于 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> 
对于其类型为 string 的 PartNum 元素,get、set 和 remove 方法看起来如下所示:
public void setPartNum(String partNum);
 public String getPartNum();
 public boolean removePartNum();
对于其类型为 Address 的 address 元素,get、set 和 remove 方法看起来如下所示:
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 类型:

例如,以下 purchaseOrder 全局元素是 PurchaseOrder 复杂类型的一个实例。<element name="puchaseOrder" type="PurchaseOrderType"> 将生成 purchaseOrder 类。purchaseOrder 类将扩展生成的 bean PurchaseOrderType,该 bean 将扩展 ComplexType。

简单类型

处于 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 使用的许多框架类。它们是:

相关任务
从 XML 模式生成 Java bean

反馈