Автоматическое создание модели класса на основе XML в Java - PullRequest
1 голос
/ 18 мая 2011

У меня есть формат файла xml, и с помощью этого xml я хочу создать каркасные классы, необходимые для сериализации и десериализации этого xml. Для этого я использую Java и XStream.

В мире .net существует инструмент, который создает классы с использованием xml. Есть ли что-нибудь подобное в мире Java?

1 Ответ

2 голосов
/ 18 мая 2011

Я не использовал XStream сам, поэтому это решение может не работать на 100% для вас. Однако самый простой подход в Java - это использование API и инструментов Java Architectural Binding for XML (JAXB). JAXB был включен как часть JDK с выпуском Java 6. Чтобы сгенерировать код Java из XML-схемы, вы должны использовать команду xjc , которая поставляется с JDK. Вот пример:

> xjc schemas\my-schema.xsd -d src\java -p com.company.model

Этот метод генерации кода создаст объекты Java, которые включают аннотации, специфичные для JAXB, которые используются Marshaller для сопоставления объекта Java с его форматом XML и наоборот. Он также будет содержать количество предупреждений о том, что код был сгенерирован автоматически и не должен изменяться. Пока вы не пытаетесь автоматически синхронизировать код с вашим XML, вы можете игнорировать эти сообщения.

Теперь, как я уже упоминал, этот метод генерирует аннотированные классы JAXB, однако сгенерированный код все еще может быть совместим с XStream, так как я считаю, что XStream использует простое имя атрибута -> логика преобразования имени узла xml.

...