Ho due codici, in due diversi progetti java, che eseguono quasi la stessa cosa, (annullando il richiamo dell'input di un webservice in base a un file xsd).quando JAXB unmarshaller.unmarshal restituisce un JAXBElement <MySchemaObject> o un MySchemaObject?
Ma in un caso dovrei scrivere questo: (Input è un nome segnaposto) (elemento è entrata OMElement)
ClassLoader clInput = input.ObjectFactory.class.getClassLoader();
JAXBContext jc = JAXBContext.newInstance("input", clInput);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Input input = (Input)unmarshaller.unmarshal(element.getXMLStreamReader());
e nell'altra lib devo usare JAXBElement.getValue(), perché è un JAXBElement che viene restituito, e una semplice (Input) gettano semplicemente si blocca:
Input input = (Input)unmarshaller.unmarshal(element.getXMLStreamReader()).getValue();
sai cosa porta ad una tale differenza?
penso guardando XSD ha un senso perché dipende dal fatto che si unmarshalling ad un SimpleType o ComplexType. – Phani