когда JAXB unmarshaller.unmarshal возвращает JAXBElement или MySchemaObject?

У меня есть два кода в двух разных java-проектах, делающих почти одно и то же, (разупорядочение ввода веб-сервиса в соответствии с xsd -файл ).

Но в одном случае я должен написать это:(Input — это имя-заполнитель)(element — это ввод OMElement )

ClassLoader clInput = input.ObjectFactory.class.getClassLoader();
JAXBContext jc = JAXBContext.newInstance("input", clInput);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Input input = (Input)unmarshaller.unmarshal( element.getXMLStreamReader() );

, а в другом lib я должен использовать JAXBElement.getValue (), потому что это JAXBEElement, который возвращается, а простое (Input )приведение просто вылетает:

Input input = (Input)unmarshaller.unmarshal( element.getXMLStreamReader() ).getValue();

Знаете ли вы, что приводит к такой разнице?

27
задан Cheeso 11 April 2013 в 19:31
поделиться