Как обрабатывать разные версии файлов 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 ...