Question

Quelle est la meilleure façon de représenter en java une balise d'espace de noms « choix »? par exemple.

<xs:complexType name="MyType">
  <xs:sequence>
    <!-- common elements here -->
    <xs:element type="xs:string" name="name" ... />
  </xs:sequence>
  <xs:choice>
    <xs:element name="stringValue" type="xs:string"></xs:element>
    <xs:element name="intValue" type="xs:int"></xs:element>
  </xs:choice>
</xs:complexType>

Comment puis-je modéliser cela en Java? Je pensais à quelque chose comme:

public class MyType
  String name;

  String stringValue;
  int intValue;
...

mais cela est sûr de ne pas la meilleure façon, ou je me trompe? De plus, si je veux exposer les services avec Axis2 qui utilisent ce type, dois-je mettre en œuvre un certain récepteur de message personnalisé?

Était-ce utile?

La solution

Nous traduisons le xsd à des objets Java avec JAXB ou un autre mécanisme de liaison (dont vous avez plusieurs dans axis2). Les objets génèrent exactement comme vous ont montré: que voir est, tous les attributs dans les choix sont là et vous ne rien qui indique que seul un d'entre eux peuvent être présents. Si vous traduisez les choses en XML, ce ne serait remarqué si vous allumez la validation. Il n'y a pas de problème avec des choix si vous conscient que vous ne devez pas définir les deux variantes simultanément en Java -. Le résultat peut parfois même être qu'aucun d'entre eux fait dans le XML généré

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top