Программная генерация xml из xsd, который использует другие xsd

У меня есть xsd, который, в свою очередь, использует / импортирует набор xsds. Я хотел бы программно сгенерировать образец xml из файла xsd. XML должен содержать все элементы и атрибуты, заполненные примерами данных на основе типа данных.

Как я могу сделать это с помощью классов eclipse api? Также существуют ли какие-либо другие инструменты, которые выполняют эту задачу и могут быть вызваны в java-программе или командном файле?

Любые указатели на examples / documentation / api приветствуются.

Заранее спасибо.


person joe    schedule 06.01.2011    source источник
comment
Привет, Джо, добро пожаловать в SO! Просто дружеское примечание, что нет необходимости помечать вопросы, помещая ведущие ключевые слова в заголовок, теги делают это за нас.   -  person Chadwick    schedule 06.01.2011
comment
возможный дубликат синтаксического анализа java / xsd   -  person Aravind Yarram    schedule 06.01.2011


Ответы (1)


Если я правильно читаю ваш вопрос, я считаю, что вы пытаетесь программно сгенерировать (т.е. использовать Java) XML-документы на основе документа XML-схемы (который, в свою очередь, может импортировать другие поддерживающие XSD).

Возможно, вы захотите взглянуть на Oracle / Sun JAXB (Java Architecture for Xml Binding), о котором вы можете найти больше информации здесь:

http://jaxb.java.net/

JAXB работает с J2SE-SDK и / или IDE, такими как Netbeans или Eclipse, и позволяет при необходимости демаршалировать (читать XML-документы в сопоставленные объекты Java) или маршаллировать (записывать Java-объекты как XML-документы). Стандартные сопоставления (известные как объявления привязки) предоставляются на основе действительной схемы XML, предоставленной JAXB. Вы также можете предоставить объявления привязки с помощью настраиваемых аннотаций непосредственно в файлах схемы XML или с помощью внешних объявлений JAXB.

Другой альтернативой (похожей на JAXB) являются XML-Beans от Apache.

Надеюсь это поможет!

person gto406    schedule 06.01.2011
comment
Мы решили не использовать JAXB, чтобы избежать генерации классов java и склониться к использованию eclipse API. В этих усилиях я нашел полезную информацию от Rich Seller по адресу stackoverflow.com/questions/1497064/ Я попробовал этот пример, и он генерирует xml с пустым содержимым для элементов. Таким образом, теперь я пытаюсь улучшить код для создания xml с образцами данных для ВСЕХ элементов / атрибутов (обязательных / необязательных) в соответствии с типом данных, указанным в xsd. Я не нашел подходящей ссылки на документацию по eclipse claases для достижения этой цели. - person joe; 07.01.2011
comment
Привет, Джо, ты абсолютно прав, Javadoc найти для этого непросто! Пришлось искать исходный код. Кажется (как отмечает RichS) вы запускаете мастер элементов пользовательского интерфейса «без головы» (то есть без пользовательского интерфейса). Я считаю, что ваш «единственный вариант», который, я думаю, вы уже поняли, - это максимально расширить XSD, чтобы «генерация» XML работала из вашей ContentModel. Например. указав значения «по умолчанию» для атрибутов, вы можете получить их в сгенерированном файле. Удачи в этом! - person gto406; 07.01.2011