Конвертировать xml в xsd используя java - PullRequest
2 голосов
/ 20 мая 2009

Я ищу инструмент, код Java или библиотеку классов / API, которая может генерировать XSD из файлов XML. (Что-то вроде утилиты xsd.exe в .NET Framework sdk)

Ответы [ 4 ]

4 голосов
/ 24 мая 2009

Эти инструменты могут послужить хорошей отправной точкой, но они не являются заменой для размышлений о том, какими должны быть фактические ограничения схемы. Вы получаете возможность для двух видов ошибок: (1) разрешить XML, который не должен быть разрешен, и (2) запретить XML, который должен быть в порядке.

В качестве примера представьте, что вы хотите вывести XSD из нескольких тысяч записей о пациентах, которые содержат тег «пол» (я раньше работал с программным обеспечением для медицинских карт). Инструмент, скорее всего, встретит «M» и «F» в качестве значений и может сделать вывод, что элемент является перечислением. Тем не менее, другие допустимые (хотя и редко используемые) значения: B (оба), U (неизвестно) или N (нет). Это редкость, конечно. Таким образом, если бы вы использовали свою производную схему в качестве входного валидатора, она работала бы хорошо, пока пациент с несколькими половыми органами не был бы помещен в больницу.

И наоборот, чтобы избежать этой ошибки, генератор XSD может не добавлять ограничения перечислимых типов (я не могу вспомнить, как они называются в схемах), и ваше приложение будет работать хорошо, пока не встретит ошибочную запись с полом = X.

Итак, будьте осторожны. Лучше всего использовать эти инструменты только в качестве отправной точки. Кроме того, они имеют тенденцию создавать подробные и избыточные схемы, потому что они не могут понять шаблоны так же, как люди.

3 голосов
/ 20 мая 2009

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

PS Я предлагаю вам добавить более конкретные теги в будущем: например, использование xml , xsd и java увеличит возможность получения ответов .

0 голосов
/ 31 января 2014

Попробуйте проект xsd-gen от Google.

https://code.google.com/p/xsd-gen/

0 голосов
/ 04 сентября 2012

Вы можете использовать файл xsd-gen-0.2.0-jar-with-dependencies.jar для преобразования xml в xsd. И команда для этого:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...