ここでは、XML スキーマから Bean を生成するために使用される規則について説明します。 それらは DOM Based XSD Beans Generator (これは推奨されない) のみに適用可能です。
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 に設定されている場合は、1 つの追加メソッド 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);
属性エレメントにより、set、get、および remove の各メソッドが生成されます。set メソッドは、属性を指定の値に設定します。属性がまだ存在しない場合、このメソッドは属性を作成します。 get メソッドは、属性値を戻します。remove メソッドは、属性を親エレメントから除去します。set メソッドのパラメーターと get メソッドの戻り結果は、属性のタイプに基づいています。
XML スキーマ・ファイルのレベルのグローバル・エレメントは、次の Bean のいずれかにマップされます。
XML スキーマ・ファイルのレベルの単純タイプは、SimpleType のサブクラスである Bean にマップされます。
可能な場合は、対応する Java デベロッパー・キット・クラスを使用して、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 によって使用されるフレームワーク・クラスがいくつか含まれています。これらは次のとおりです。