2010-10-06 6 views
4

J'ai un xsd qui contient les groupes de substitution. Lorsque j'essaie de générer des classes Java en utilisant Cxf wsdl2java JAXB générant List> plutôt que la liste. Comment puis-je éviter le JAXBElement? J'ai essayé avec binding.xml mais ca marche pas me aider à .Please résoudre ceÉviter JAXBElement pour les groupes de substitution

Merci

Répondre

1

Vous ne pouvez pas éviter le JAXBElement lors de l'utilisation des groupes de substitution. La raison pour laquelle le JAXBElement est créé est qu'il n'y a pas assez d'informations pour dire quel type mettre dans le schéma parce que plusieurs types pourraient être substitués à l'élément.

0

Vous pouvez toujours vérifier la sécurité du type lors de l'exécution à l'aide de getDeclaredType. Par exemple

JAXBContext jc = JAXBContext.newInstance("com.foo"); 
Unmarshaller u = jc.createUnmarshaller(); 

File f = new File("src/Sample.xml"); 
SomeObject d = (SomeObject) u.unmarshal(f); 
AnyTypeContainerObject c = d.getBody(); 
JAXBElement<?> any = (JAXBElement<?>) c.getAny(); 
if ((AnyTypeObject.class.equals(any.getDeclaredType()))) { 
    AnyTypeObject value = (AnyTypeObject) any.getValue(); 
    ... 
} 
Questions connexes