Есть ли инструмент с открытым исходным кодом для преобразования XML-схемы в схему базы данных для Linux? - PullRequest
5 голосов
/ 16 февраля 2012

Есть ли инструмент с открытым исходным кодом, который преобразует XML-схему в схему базы данных для Linux.Все, что мне нужно, это читать XML-схему, генерировать соответствующую схему базы данных и создавать таблицы с этим.Я попытался Google, и все, что я мог найти, это xsd2db и написано на c #, но бесполезно для меня.Я использую centos и моя база данных postgresql.Любая помощь приветствуется.Заранее спасибо.

1 Ответ

4 голосов
/ 20 августа 2012

По умолчанию появляется , но я не могу найти ничего нативного.Также не найти каких-либо достойных инструментов, чтобы сделать работу.

Итак, я подумал, что это будет отличный проект выходного дня, чтобы узнать немного больше о XSD.Я создал xsd2pgsql , чтобы справиться с этим.Это все еще довольно грубо по краям, поэтому я хотел бы, чтобы вы попробовали это и сообщили мне о любых ваших проблемах.Или раскошелиться, если вы хотите помочь.

XML - не самый лучший формат для представления базы данных, так как это 3d, а БД в значительной степени 2d.Таким образом, этот сценарий делает некоторые предположения, так как все дочерние элементы root являются основной таблицей, а любой complexType после этого будет таблицей.Тем не менее, это должно работать на большинстве XML-схем (или, по крайней мере, на нескольких, которые я тестировал).

Вы можете получить все опции с опцией -h.Но, в основном, вы можете предоставить ему файлы XSD в качестве аргументов, и вы можете использовать опции, чтобы немного изменить поведение или заставить его запускать SQL непосредственно в вашей БД.Если это производственная система, я бы порекомендовал не подключаться напрямую к БД и убедиться, что вывод SQL хорош или нет, и вносить какие-либо корректировки.

Вот пример использования с примерами файлов врепозиторий: python xsd2pgsql.py -f sample-2.xsd sample.xsd

ПРИМЕЧАНИЕ : В настоящее время не обрабатываются какие-либо связи / ссылки между таблицами / сложными типами XML.Вам придется добавить эти и любые индексы, которые вы хотите после факта.Пользовательские пространства имен пока не поддерживаются.

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

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