Bonjour,

je souhaite définir un type énuméré avec un attribut de la forme:

<param>
<enum attr="attr1">valeur 1</enum>
<enum attr="attr2">valeur 2</enum>
</param>


Donc j'ai défini mon XSD comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- param -->
<xsd:complexType name="ParamType">
   <xsd:sequence>
      <!-- enumType -->
      <xsd:element name="enum" type="enumType"
                minOccurs="0" maxOccurs="unbounded">
      </xsd:element>
   </xsd:sequence>
</xsd:complexType>
 
<!-- enumType -->
<xsd:complexType name="enumType">
  <xsd:attribute name="attr" type="xsd:string" use="required" />
</xsd:complexType>
Je compile mon code et j'obtiens une classe java EnumType avec les fonctions getAttr() et setAttr(string value).

Question: comment puis-je lire la valeur de mon EnumType? La génération ne m'offre aucune fonction pour lire ce qu'il y a entre <enum> et </enum>.

Pour le moment je contourne le problème en créant un attribut "value" et je lis dedans, mais ca m'oblige à abandonner le format <enum attr="">value</enum> au profit de <enum attr="" value="value" />, ... ce qui me dérange "conceptuellement" parlant.

Merci par avance pour tout dépannage!

... et bonnes fêtes