У меня проблема с JAXB unmarshalling. Я думаю, что он правильно закодирован, но мой объект unmarshalled возвращается с нулевыми параметрами. Следовательно, я предполагаю, что при unmarshalling JAXB не видит соответствующую структуру XML, которую он ожидает. Однако я не получаю никаких сообщений об ошибках или каких-либо исключений.
Нужно ли вообще пройти процесс unmarshalling, чтобы точно увидеть, где/почему он не заполняет мои объекты?
Фактический код unmarshalling довольно мирский:
public <T> T unmarshall(Node node, Class<T> clazz) throws JAXBException {
// Creating an unmarshaller
Unmarshaller u = JAXBContext.newInstance(clazz).createUnmarshaller();
// unmarshal an instance node into Java content
return clazz.cast(u.unmarshal(node, clazz).getValue());
}
Однако, когда я его вызываю, я получаю объект типа clazz, возвращенный (как и ожидалось), но не загруженный.
Объект DOM, который я пытаюсь развязать, генерируется сторонним API. Я уже сталкивался с некоторыми необычными поведением с помощью unmarshalling, поэтому я хотел бы иметь возможность отлаживать процесс. Например, если я попытаюсь развязать подэлемент внутри объекта DOM (то есть: doc.getByElementName( "myElement" ). Item (0)), он терпит неудачу. Однако, если я конвертирую документ в строку и reimport в новый документ, он преобразует его в тонкий.
Я начинаю разочаровываться, не зная, как отладить эту проблему.
Спасибо за любые идеи!
Эрик