Существует несколько причин, некоторые будут более применимыми, чем другие
Эта статья может вам помочь ... она требует только знания xpath http://onjava.com/onjava/2007/09/07/schema-less-java-xml-data-binding-with-vtd-xml.html
Jakarta Commons Digester должен делать то, что вы хотите.
В качестве альтернативы я бы рекомендовал написать класс преобразования, который использует XPath для извлечения элементов из XML.
Я считаю JiBX лучшим из множества (JAXB, Castor, XMLBeans и т. Д.), Особенно потому, что я предпочитаю сопоставление файлов аннотациям. По общему признанию, у него приличная кривая обучения, но на сайте есть много хороших примеров. Вы, должно быть, пропустили учебник .
Если вы идете только в одну сторону (XML -> POJO), вы можете использовать Digester .
Дополнительный комментарий: я предпочитаю отображение файлы над аннотациями, потому что аннотации:
EclipseLink JAXB (MOXy) позволяет вам выполнять сопоставление на основе пути, которое вы ищете:
@XmlRootElement
class Animal
{
@XmlPath("standardName/Name/text()")
private String name;
@XmlPath("standardVersion/VersionIdentifier/text()");
private String versionIdentifier;
}
Для получения дополнительной информации см .:
EclipseLink также позволяет указывать метаданные с помощью внешнего файла конфигурации: