2009-11-04 4 views
1

Вы, ребята, знаете, как мы можем преобразовать XML-схему в реляционную модель? Каковы шаги? Точнее, как мы можем выяснить, какие имена таблиц, имена столбцов и отношения в этих таблицах будут похожи на реляционную модель, если посмотреть только на схему XML?Преобразование xml-схемы в реляционную модель

Если у вас есть ссылки на учебники, примеры, пожалуйста, поделитесь им со мной. Я высоко ценю вашу помощь по этому поводу.

THanks

ответ

4

Эти два по своей сути отличаются друг от друга. Реляционная модель основана на наборе; XML является иерархическим.

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

Если у детей есть не-листовые внуки, моделируйте их как отношения «один ко многим» между родительским и дочерним столом.

Есть несколько работ, которые будут иметься, если вы Google "XML-схема для реляционной схемы", в том числе это:

  1. http://www.cobase.cs.ucla.edu/tech-docs/dongwon/ecaiot02.pdf
  2. http://msdn.microsoft.com/en-us/library/aa905914(SQL.80).aspx
  3. http://msdn.microsoft.com/en-us/library/bfdchewb(VS.71).aspx
0

Насколько сложна схема? В зависимости от структуры, определенной схемой, вы можете найти удобный перевод в реляционные таблицы.

Вы не сказали, как вы собираетесь использовать свои данные, но некоторые реляционные базы данных поддерживают столбцы с xml-типом. Например, в Microsoft SQL Server 2005 и более поздних версиях вы можете хранить ваши XML-документы в столбце типа xml. Затем ваши запросы могут использовать встроенные методы, определенные для xml data type.

0

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

В общем, вы также получаете возможность использовать базу данных объектов (OODBMS) по сравнению с реляционной базой данных (СУБД). Некоторое исследование объектных баз данных может быть в порядке, но если вам нужно идти с реляционной базой данных (они более зрелые, безусловно), вам придется самому выполнять картографическую работу.

1

Это довольно просто с .NET.

Создайте DataSet.

Сделайте DataSet.ReadXML() для чтения в вашем XML-файле.

Цикл через список DataSet.Tables() и для каждого цикла таблицы через столбцы, чтобы получить имена полей.

У меня было тестовое приложение, чтобы сделать это ... Я посмотрю, смогу ли я найти код.

P.S. - не смог найти.так что я написал один на http://dot-dash-dot.com/files/wtfxml.zip

WTFXMLSetup_1_6_0.msi ... инсталлятор для окон коробки ...