Как обрабатывать разные версии файлов XSD в одном приложении Java?

Факты

В моем Java-приложении я должен обрабатывать XML-файлы с разными версиями схемы (xsd-файлы) одновременно. Содержимое файлов XML мало изменилось между различными версиями, поэтому яЯ хотел бы использовать в основном один и тот же код для обработки и просто делать некоторые различия в зависимости от версии используемой схемы.

Текущее решение

Прямо сейчас ям разбора XML-файлов с SAX-анализатором и моим собственнымContentHandler игнорирование версии схемы и просто проверка наличия тегов, которые мне нужны для обработки.

Возможная альтернатива

Я действительно хотел бы использовать JAXB для генерации классов для разбора файлов XML. Таким образом, я мог бы удалить все жестко закодированные строки (константы) из моего кода Java и обработать сгенерированные классы.

Вопросы)Как можно обрабатывать разные версии схемы унифицированным способом с помощью JAXB?Есть ли лучшее решение?Прогресс

Я скомпилировал версии схемы для разных пакетов v1, v2 и v3. Теперь я могу создатьUnmarshaller сюда:

JAXBContext jc = JAXBContext.newInstance( 
    v1.Root.class, v2.Root.class, v3.Root.class );
Unmarshaller u = jc.createUnmarshaller();

Сейчасu.unmarshal( xmlInputStream ); дает мнеRoot класс из пакета, соответствующий схеме XML-файла.

Следующий япопробую определитьinterface чтобы получить доступ к общим частям схем.Если вы сделали что-то подобное раньше, пожалуйста, дайте мне знать, В то же время яя читаю через спецификации JAXB ...

Ответы на вопрос(1)

Ваш ответ на вопрос