Я работаю над созданием объектов Java из файла XSD с использованием JAXB 2.1. Файл XSD содержит несколько элементов, представляющих сущности бизнес-модели, с общими именами, такими как Account и т. Д. Система, использующая сгенерированные файлы для разархивирования XML, имеет несколько конфликтующих имен классов в своей доменной модели. Хотя мы можем использовать разные имена пакетов, чтобы обойти конфликты имен классов, я думаю, что будет более читабельным / поддерживаемым иметь объекты с разными именами.
Из-за этого я хотел бы изменить компиляцию XJC, чтобы она производила объекты вроде: DataTransferAccount.java и т. Д. Вместо Account.java. Супер, я буду использовать один из двух вариантов, которые JAXB предоставляет при привязке схемы (http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXBUsing4.html):
- Встроенные настройки - аннотируйте сам XSD, используя пространство имен jaxb для указания имен классов
- Файл внешних привязок - Предоставьте дополнительный файл в XJC, в котором есть правила о том, как сопоставить элементы схемы с классами Java
Есть ли хороший аргумент для использования варианта 1, кроме простоты использования? Наивно, я испытываю желание использовать его, потому что это легко, но в будущем я могу увидеть проблемы с обслуживанием, если мы решим отойти от JAXB XML unmarshalling.