2010-11-02 18 views
1

ressemble à l'différents types de schéma pour le même élément XML en fonction de l'attribut xml

<root> 
<service name="product" /> 
<service name="sim" /> 
<service name="blub" /> 
</root> 

le schéma doit ressembler à

<xs:element name="root"> 
<xs:complexeType> 
<xs:element type='serviceProduct' name='service' /> 
<xs:element type='serviceSim' name='service' /> 
<xs:element type='serviceBlub' name='service' /> 
</xs:complexeType> 
</xs:element> 

Est-il possible avec JAXB Manchettes de le faire? Je ne peux pas changer le xml mais je voudrais t avoir différentes classes java pour le produit, sim, blub mais c'est tout le même élément xml.

Avec les reliures de liaison de classe, il est possible de changer le nom de classe, mais comment faire pour le même élément mais avec des attributs différents?

Merci, Ralph

Répondre

0

Une autre solution serait ici ... Java/JAXB: Unmarshall XML attributes to specific Java object attributes

mais je préfère une solution dans le schéma. Cela pourrait fonctionner comme décrit dans l'exemple 'Bind Choice' qui montre comment lier un groupe de modèles de choix à une interface Java ... http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html#wp155808

Le problème avec cette solution est que l'attribut @bindingStyle n'est plus autorisé à partir de JAXB 2.0.

Des idées?