Vous pouvez définir des tableaux pour un élément dans un objet métier afin que cet élément puisse contenir plus d'une instance de données.
<xsd:element name="telephone" type="xsd:string" maxOccurs="3"/>Cela va créer un index pour l'élément telephone qui peut contenir jusqu'à trois instances de données. Vous pouvez également utiliser la valeur minOccurs si vous envisagez d'avoir un élément dans le tableau.
<?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>
L'élément telephone apparaît maintenant en tant qu'enfant de l'objet encapsuleur ArrayOfTelephone.
<Customer> <name>Bob</name> <ArrayOfTelephone> <telephone>111-1111</telephone> <telephone xsi:nil="true"/> <telephone>333-3333</telephone> </ArrayOfTelephone> </Customer>Dans ce cas, le premier et le troisième éléments dans l'indice de tableau de l'élément telephone contiennent des données contrairement au deuxième. Si vous n'aviez pas utilisé la propriété nillable pour l'élément telephone, vous auriez alors les deux premiers éléments qui contiennent des données.
DataObject customer = ... customer.setString("name", "Bob"); DataObject tele_array = customer.createDataObject("ArrayOfTelephone"); Sequence seq = tele_array.getSequence(); // The array is sequenced seq.add("telephone", "111-1111"); seq.add("telephone", null); seq.add("telephone", "333-3333");Vous pouvez renvoyer les données d'un indice de tableau d'élément donné en utilisant un code semblable à l'exemple ci-dessous :
String tele3 = tele_array.get("telephone[3]"); // tele3 = "333-3333"Dans cet exemple, la chaîne tele3 va renvoyer les données "333-3333".
Vous pouvez remplir les éléments données du tableau dans l'index en utilisant une largeur fixe ou des données délimitées placées dans une file d'attente de messages JMS ou MQ. Vous pouvez également accomplir cette tâche en utilisant un fichier texte à plat contenant les données correctement formatées.