JiBX: Как создать XML-схему (xsd) на основе XML-документов с помощью JiBX? - PullRequest
0 голосов
/ 06 сентября 2011

В настоящее время у меня есть куча файлов XML.К сожалению, нет XSD или какого-либо другого файла схемы.В моей программе (Java) я использую JiBX для (не) маршалирования файлов XML из / в POJO.Следовательно, мой вопрос: существует ли способ (с помощью JiBX) создать XSD на основе структуры, полученной из образца XML-файла?Мне нужно сделать это автоматически, потому что структура этих файлов XML очень сложна.Кстати: мне нужен XSD для автоматического создания POJO.Это требование также связано со сложностью.

Почему бы не использовать любое другое решение, отличное от JiBX?Как правило, я буду принимать разные решения, но было бы здорово сделать это с JiBX.Это потому, что следующим шагом было бы сделать это, основываясь на некотором автоматизме (например, работе с муравьями).

Тем не менее, просто для тренировки я уже попробовал кислород.Он создает некоторую схему XSD на основе одного образца XML-файла без ошибок.Результат этой процедуры (некоторые как) не так, как ожидалось.Например, когда внутри тега элемента есть строка, Oxygen создает дополнительные правила для подэлементов XSD.В результате этого при удалении файла XML эти строки исчезают.

Может быть, я нахожусь на неверном пути к решению?Пожалуйста, дайте мне помощь / идеи, помогающие решить проблему.

Большое спасибо.

1 Ответ

1 голос
/ 06 сентября 2011

Вы не можете сгенерировать XSD-документ из образца XML-файла с JIBX. Вы можете сгенерировать XSD из кода (если у вас есть POJO) с помощью затем инструмента Jibx2Wsdl , или вы можете сгенерировать код из XSD с помощью инструмента CodeGen .

Чтобы сгенерировать XSD из XML, вы должны использовать другие инструменты, как рекомендуется здесь . Инструмент inst2xsd из проекта Apache XMLBeans , кажется, работает хорошо.

Кстати - не ожидайте, что инструменты работают на сложных структурах очень хорошо. Я полагаю, чем проще структура - тем лучше инструмент может работать. Чем сложнее это становится, тем больше вы будете вовлечены лично.

...