2009-09-29 4 views
1

Мне нужно создать документы XML с помощью встроенных java-пакетов org.w3c.dom или jdom, соответствующих набору файлов XSD. Файлы XSD похожи, но не совпадают. В сущности, мне нужно создать XML-файл в соответствии с XSD, предоставленным мне динамически.Программирующее создание XML-документа с использованием XSD

Каков наилучший способ сделать это. Я проверил пакет Validator, у него нет каких-либо функций, таких как look-ahead или iterators для возможных элементов в данном узле контекста.

В идеале, я рассматриваю архитектуру SAX, где я реализую элемент, когда меня просят предоставить контекстно-свободный способ. Двигатель должен собраться и дать мне дом в конце.

Разве это колесо уже придумано?

Спасибо ..

ответ

1

org.w3c.dom не имеет поддержки XML-схем. Для JDom вы можете использовать схемы для . Подтвердите документ, но нет поддержки для build документов.

У вас есть два варианта:

  1. Используйте JDOM для чтения схемы, анализировать его и создать документ в соответствии с этим документом XML (схема всегда действительный документ XML, тоже).

  2. Вы можете использовать XML-карту, такую ​​как Castor. Castor может прочитать схему и создать набор классов Java, которые позволят вам создавать документы, соответствующие указанной схеме.

Последний подход может не работать так хорошо в вашем случае, поскольку Castor будет генерировать различные классы Java для подобных структур XSD, если они не определены в том же документе, так что вы не можете легко использовать общий код. Обходной путь заключается в том, чтобы позволить Castor генерировать код, а затем писать сценарий или аналогично копировать/объединять общие части XSD в один и тот же пакет Java.

+0

Спасибо за ответ. Я знаком с кастором, поэтому я совершенно уверен, что это не соответствует моим требованиям. Возможно, JDom - это путь. Мне любопытно, как редакторы XML, такие как плагин NetBeans, XMLSpy, Oxygen и т. Д., Могут предоставлять контекстно-зависимые подсказки и надежные подсказки. Я надеялся, что есть библиотека/проект с открытым исходным кодом, который может сделать это из коробки. –

+0

Нет проблем, чтобы получить источники Netbeans или редакторов XML Eclipse и посмотреть. –

1

В настоящее время я разбираю XSD и создаю не XML-документ с его частей, а нечто другое. Я обнаружил, что XSOM был очень полезен. Посмотрите на this короткий небольшой учебник, так как неясно, как его использовать сразу.

Сама библиотека не является сложной в использовании, когда вы ее повесите, и вы можете получить любую информацию, найденную в атрибутах, ограничениях и элементах XSD, которые вы можете использовать для создания XML-файла.

+0

Спасибо, это очень близко к тому, что я искал. –

Смежные вопросы