XML スキーマ・ファイルからの Java Bean のためのデータ・バインディング規則

ここでは、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> 
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 が 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 のいずれかにマップされます。

例えば、次の purchaseOrder グローバル要素は PurchaseOrder 複合タイプのインスタンスです。 <element name="puchaseOrder" type="PurchaseOrderType"> A class purchaseOrder will be generated. purchaseOrder クラスは、生成された Bean PurchaseOrderType の拡張で、 この Bean は ComplexType の拡張です。

単純タイプ

XML スキーマ・ファイルのレベルの単純タイプは、SimpleType のサブクラスである Bean にマップされます。

データ・タイプ

可能な場合は、対応する Java デベロッパー・キット・クラスを使用して、XML スキーマの組み込みデータ・タイプが Java データ・タイプにマップされます。次の表に、データ・マッピングを要約します。 リストされていない XML スキーマのデータ・タイプは、string としてマップされています。

XML スキーマのタイプ Java データ・タイプ
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 日付

フレームワーク

パッケージ com.ibm.etools.xmlschema.beans には、生成される Bean によって使用されるフレームワーク・クラスがいくつか含まれています。これらは次のとおりです。

関連タスク
XML スキーマから Java Bean を生成

フィードバック