Un type complexe au niveau du fichier de schéma XML est mappé vers un bean qui sous-classe à partir d'un ComplexType. Chaque sous-élément du type complexe est mappé comme indiqué dans la section Elément.
Un élément résulte de la génération de méthodes set, get et remove. La méthode set définit l'élément sur la valeur spécifiée. Elle créera l'élément s'il n'existe pas déjà. La méthode get renvoie la valeur de l'élément. La méthode remove supprime l'élément de son parent. Le paramètre de la méthode set et le résultat du retour de la méthode get seront basés sur le type d'élément. Considérez les éléments de type complexe suivants :
<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();
La table Type de données, abordée ultérieurement dans cette section, affiche le mappage des types de données de schéma XML intégrés vers les types de données Java.
Si le type d'un élément est un type complexe anonyme, alors le type complexe anonyme est généré en tant que classe interne.
La classe interne contiendra les méthodes get, set et remove correspondantes à son contenu. Dans l'exemple précédent, une classe interne Items.item sera générée. Les méthodes get, set et remove pour l'élément ressembleront à ceci :
public void setItem(Items.item item); public Items.item getItem(); public boolean removeItem();
Si l'attribut maxOccurs est défini sur unbounded pour un élément, alors une méthode supplémentaire est générée, getXXXCount(). Les méthodes get, set et remove auront un paramètre d'index supplémentaire pour la spécification de l'élément particulier sur lequel l'opération est effectuée. Si nous modifions l'élément item précédent pour ajouter maxOccursattribute comme suit :
<element name="item" minOccurs="1" maxOccurs="unbounded">
Les méthodes suivantes seront générées :
public void setItem(int index, Items.item item);
public Items.item getItem(int index);
public int getItemCount();
public boolean removeItem(int index);
Un élément d'attribut résulte de la génération d'une méthode set, get et remove. La méthode set définit l'attribut sur la valeur spécifiée. Elle créera l'attribut s'il n'existe pas déjà. La méthode get renvoie la valeur de l'attribut. La méthode remove supprime l'attribut de son élément parent. Le paramètre de la méthode set et le résultat du retour de la méthode get seront basés sur le type d'attribut.
Un élément global au niveau du fichier de schéma XML est mappé vers l'un des types de beans suivants :
Un type simple au niveau du fichier de schéma XML est mappé vers un bean qui sous-classe à partir d'un SimpleType.
Lorsque cela est possible, les types de données intégrés au schéma XML sont mappés vers un type de données Java à l'aide de la classe du kit du développeur Java correspondant. Le tableau suivant récapitule le mappage des données. Tout type de données de schéma XML non répertorié est mappé en tant que string.
Type de schéma XML | Type de données Java |
---|---|
string | Chaîne |
integer, int, nonPositiveInteger, nonNegativeInteger positiveInteger, negativeInteger, unsignedLong, unsignedInt, | ent |
booléen | boolean |
flottant | flottant |
double | double |
long | long |
short, unsignedShort | court |
byte, unsignedByte | octet |
date | Date |
Le package com.ibm.etools.xmlschema.beans contient un certain nombre de classes d'infrastructure préfabriquée utilisées par les beans générés. Il s'agit de :