本節說明用來從 XML 綱目產生 Bean 的規則。這些規則僅適用於 DOM 型的 XSD Bean 產生器(已棄用)。
XML 綱目檔層次的複式類型會對映至 ComplexType 子類別的 Bean。 複式類型的每一個子元素都會依照元素區段中說明的方式來對映。
元素會產生 set、get 和 remove 方法。set 方法會將元素設為指定的值。如果元素仍不存在,它會建立這個元素。get 方法會傳回元素值。remove 方法會移除母項中的元素。set 方法的參數和 get 方法的傳回結果會視元素類型而定。請考量下列複式類型 Items:
<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 屬性設為 unbounded,就會產生另一個 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:
<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 所用的若干組織架構類別。如下所示: