Предисловие: Я работаю над анализатором docx для Java. Формат DOCX основан на XML. Когда я читаю документ, его части разбираются (с JAXB). И я получаю дерево определенных элементов на основе разметки XML.
Почти проблема : Но некоторые элементы (которые находятся на очень глубоком уровне XML) возвращаются не как определенный класс из спецификации docx (т.е. CTStyle, CTDrawing, CTInline и т. Д.), А как Object. Эти объекты действительно являются экземплярами классов Xerces, например, ElementNSImpl.
Проблема : Как мне обрабатывать объекты из ксероксов (например, ElementNSImpl)? Самый простой подход:
CTGraphicData gData = getGraphicData ();
Object obj = gData.getAny().get(0);
ElementNSImpl element = (ElementNSImpl)obj;
Но, похоже, это не хорошее решение. Я никогда не работал с Xerces напрямую. Какой лучший способ сделать это кастинг? (Если бы кто-нибудь также дал мне совет о правильном способе итерации по узлам, было бы здорово).