Использование аннотаций XML - PullRequest
1 голос
/ 26 января 2011

У меня есть (унаследованное) приложение, настроенное с помощью файла XML. Когда приложение запускается, оно создает свою конфигурацию из файла с кучей аннотированных объектов.

Итак, у меня есть сценарий ...

@XmlRootElement(name = "script")
@XmlAccessorType(XmlAccessType.NONE)
public class Script {...

с полями ...

@XmlElementWrapper(name = "fields", required = true)
@XmlElementRef(type = Field.class)
private List<Field> fields;

и т.д.

Что все очень мило и мило. Теперь написание файлов конфигурации XML вручную утомительно и подвержено ошибкам, поэтому я подумываю написать какой-нибудь графический интерфейс для этого. Этот графический интерфейс должен знать разрешенную структуру, чтобы он мог предлагать правильные типы объектов в правильных типах объектов. Вся эта информация встроена в эти объекты конфигурации, и было бы неправильно дублировать всю эту информацию, чтобы GUI знал, что делать.

Таким образом, извлечение информации из аннотаций кажется правильным. Кто-нибудь знает, с чего начать что-то подобное? В идеале, учитывая, что он включает в себя такие вещи, как @XmlSeeAlso({...}), было бы неплохо иметь возможность запросить информацию у javax.xml, потому что он может уже понимать все свои собственные аннотации, в противном случае мне придется закодировать понимание тех, кто в моем собственный код Я понятия не имею, насколько это возможно или сколько мне придется сделать самому.

Очень рад изучить и альтернативные подходы, если у кого-то есть опыт чего-то подобного.

Ответы [ 2 ]

0 голосов
/ 26 января 2011

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

Использование JAXB для генерации схемы XML

Создание пользовательского интерфейса на основе схемы XML

Объекты служебных данных (SDO) - это стандарт Java (JSR-235), который предоставляет динамическую объектную модель с метаданными, которые можно загрузить из схемы XML. Объекты метаданных могут подвергаться интроспекции для формирования динамического пользовательского интерфейса.

EclipseLink MOXy (я технический руководитель) обеспечивает реализацию JAXB и SDO на основе одного и того же ядра объект-XML.

0 голосов
/ 26 января 2011

Очень рад изучить и альтернативные подходы, если у кого-то есть что-то подобное.

Вы можете проверить, можете ли вы использовать Spring (конфигурация xml) для настройки своего приложения.Normaly Spring используется для внедрения зависимостей, но, возможно, вы могли бы немного злоупотребить этим.

Но это только идея, которую вы должны проверить, соответствует ли она вашему варианту использования!

...