Сопоставить структуру XML со схемой базы данных - PullRequest
1 голос
/ 13 февраля 2009

Существует ли инструмент, который напрямую отображает структуру XML на схему базы данных?

Причина, по которой я спрашиваю это, состоит в том, что мои данные лучше всего описываются с точки зрения структуры XML. Однако я хочу сохранить их в базе данных для быстрого результата запроса и других преимуществ.

Ответы [ 3 ]

3 голосов
/ 13 февраля 2009

Я работал над проектом Java, который имел некоторые требования, и мы обнаружили, что HyperJAXB хорошо подходит. Он использует JAXB для перехода от схемы XML к объектам Java, а затем использует Hibernate для сохранения объектов Java. Последняя версия работает со всем, что поддерживает EJB3 / JPA.

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

Если вы не используете Java, но хотите использовать что-то похожее на HQL (Hibernate Query Language) для доступа к базе данных, вы можете использовать ее для преобразования XSD в DDL, поскольку сгенерированная схема создается с помощью Операции в стиле HQL. Если это не звучит достаточно уродливо, вы можете включить ведение журнала гибернации и посмотреть, какой SQL он генерирует для различных запросов HQL, и использовать его, чтобы убедиться, что вы получаете правильные шаблоны доступа.

Так что, в принципе, это не подходит ни для чего, кроме Java:)

1 голос
/ 25 марта 2011

Попробуйте продукт Altova MapForce. Он специально разработан для этого, и, похоже, является одним из немногих эффективных коммерческих продуктов, которые могут выполнять преобразования xml в db, db в xml и огромное количество других преобразований.

Боб.

1 голос
/ 13 февраля 2009

взгляните на xmlspy от altova www.Altova.com / XMLSpy Я верю, что этот инструмент может помочь вам. (это не реклама !!)

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