Есть ли декларативный способ разобрать XML в Java -объекты?
-
29-09-2019 - |
Вопрос
Я пишу функцию импорта XML -файлов в свое приложение Java. Я использую Сознание Проанализировать файлы XML. Код для анализа XML нелегко понять, это некоторые жесткие кодировки .getChild(3)
и так далее. Трудно следовать коду по сравнению с декларативным XML-документом.
Разве не более удобный способ разбирать документы XML к объектам Java? Я хотел бы получить его более декларативным способом, где я могу указать, какие теги соответствуют классам Java.
Решение 7
Я наконец нашел Xstream. Это было легко в использовании и разбирается XML декларативным образом.
Другие советы
Посмотрите на JAX / B - довольно простой подход на основе аннотации. Это стандартная Java API.
Существуют инструменты для генерации аннотированных классов Java из XSDS или пример XML -файлов. Я описываю свое использование этого в мой блог
мне действительно нравится Простой Для преобразования XML в Java.
Посмотри на Apache commons dipester..
Согласованный JAXB (JSR-222) лучшее решение. Обратите внимание, что JAXB - это спецификация, означающая, что у вас есть выбор реализаций:
Стандартный JAXB позволяет указать отображения с помощью аннотаций, Moxy Jaxb. Также позволяет указать ваши метаданные через XML:
Если вы хотите удостоверение решения, вам необходимо нарушить отношение к одному на один между элементами XML, найденным практически во всех растворах связывания XML, и использовать сопоставление на основе XPath, используемое в MOXY:
То Простой XML Framework использует аннотации на полевых и методах объявления, а также в определениях класса для картирования XML на Java и обратно. Это много раз более легкие, чем JAXB (который тянет в тонне зависимостей). На самом деле он вообще не имеет внешних зависимостей. И это тоже быстрее. Я много раз пробовал JAXB, но обнаружил, что аннотации и функциональность неловко и громоздко. Проверьте Руководство.
Проверять Кастор XML Картирование
Вот документация для того же: http://www.castor.org/xml-mapping.html.