ビジネス・オブジェクト内のエレメントに配列を定義して、エレメントに複数のデータ・インスタンスを含めることができます。
<xsd:element name="telephone" type="xsd:string" maxOccurs="3"/>これは、最大 3 つのデータ・インスタンスを保持できるエレメント telephone のリスト指標を作成します。項目が 1 つだけの配列を計画している場合は、値 minOccurs も使用できます。
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Customer"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="ArrayOfTelephone" type="ArrayOfTelephone"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="ArrayOfTelephone"> <xsd:sequence maxOccurs="3"> <xsd:element name="telephone" type="xsd:string" nillable="true"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
telephone エレメントは、ArrayOfTelephone ラッパー・オブジェクトの子として表現されています。
<Customer> <name>Bob</name> <ArrayOfTelephone> <telephone>111-1111</telephone> <telephone xsi:nil="true"/> <telephone>333-3333</telephone> </ArrayOfTelephone> </Customer>このケースでは、telephone エレメントの配列指標の 1 番目と 3 番目の項目にはデータが格納されていますが、2 番目の項目にはデータが格納されていません。nillable プロパティーを telephone エレメントで使用しなかった場合、最初の 2 つのエレメントにデータを格納する必要があります。
DataObject customer = ... customer.setString("name", "Bob"); DataObject tele_array = customer.createDataObject("ArrayOfTelephone"); Sequence seq = tele_array.getSequence(); // 配列は順序付けされます seq.add("telephone", "111-1111"); seq.add("telephone", null); seq.add("telephone", "333-3333");以下の例のようなコードを使用して、特定のエレメント配列指標のデータを戻すことができます。
String tele3 = tele_array.get("telephone[3]"); // tele3 = "333-3333"この例では、tele3 という名前のストリングによって、データ「333-3333」が戻されます。
リスト指標の配列のデータ項目には、JMS または MQ メッセージ・キュー内に配置されている固定幅または区切り文字で区切られているデータを使用して入力できます。また、適切にフォーマット設定されたデータが格納されているフラット・テキスト・ファイルを使用して、このタスクを行うこともできます。