2013-03-14 2 views
0

У меня есть метод: распаковатьМетод скачет вернуть заявление

public static Object unmarshalXmlTo0100(String xmlMsg, String destination, String resource) throws Exception { 
    //init unmarshaller 
    ByteArrayInputStream input = new ByteArrayInputStream(xmlMsg.getBytes()); 
    JAXBContext context = JAXBContext.newInstance(destination); 
    Unmarshaller unmarshaller = context.createUnmarshaller(); 

    //init schema 
    SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
    Schema schema = schemaFactory.newSchema(XmlParser.class.getClassLoader().getResource(resource)); 
    unmarshaller.setSchema(schema); 

    //unmarschal 
    Object data = unmarshaller.unmarshal(input); 

    //return message 
    return data; 
} 

Теперь по некоторым причинам, когда я использую следующий вызов метода:

processDataObj = MainXMLParser.unmarshalXmlTo0100(processData, "cp.jaxb.planningBericht.classes", "source/xml/cp_md_format_planningBericht.xsd"); 

Все идет нормально.

Но когда я использую следующее:

processDataObj = MainXMLParser.unmarshalXmlTo0100(processData, "cp.jaxb.beschikbaarheidBericht.classes", "source/xml/cp_md_format_beschikbaarheidBericht.xsd"); 

unmarshaller не возвращает ничего, но это продолжать при работающем, так proccesDataObj пуст ...

я не имею ключ не то, что происходит не так ...

+0

Вы отлаживали код, чтобы увидеть, в какой строке он идет не так? –

+0

Да, кажется, что это не так, если вы создаете данные объекта – Luc

+0

Не могли бы вы опубликовать ресурсы или каким-то образом получить к ним доступ? Ваш код выглядит нормально, поэтому, вероятно, это проблема с вводом. –

ответ

0

Вы уверены, что другой XSD-файл присутствует в указанном месте? Вы уверены, что эта схема XSD на самом деле «правильная» (например, ожидаемые пространства имен и другие типы)?

+0

Да, проверено несколько раз ... – Luc

Смежные вопросы