将xml架构转换为关系模型

时间:2009-11-04 00:55:55

标签: database-design relational-database datamodel

你们知道吗,我们如何将XML Schema转换为关系模型?涉及的步骤是什么? 更确切地说,我们如何才能通过仅查看XML Schema来确定表名,列名和这些表上的关系,就像关系模型一样?

如果您有任何教程链接,示例请与我分享。 我非常感谢你对此的帮助。

感谢

4 个答案:

答案 0 :(得分:5)

这两者本质上是不同的。关系模型是基于集合的; 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

答案 1 :(得分:1)

架构有多复杂?根据模式定义的结构,您可能会发现没有方便的转换到关系表。

您尚未说明打算如何使用数据,但某些关系数据库支持xml类型的列。例如,在Microsoft SQL Server 2005及更高版本中,您可以将xml文档存储在xml类型的列中。然后,您的查询可以使用为xml data type定义的内置方法。

答案 2 :(得分:1)

如果没有XML格式的示例,很难给出答案。一个非常简单的XML格式很容易转换,但更复杂的结构或层次结构并不容易,需要一些思考。因此,一个工具真的不适合你。

通常,您还要进行使用对象数据库(OODBMS)与关系数据库(RDBMS)的对话。对对象数据库的一些研究可能是有序的,但如果你必须使用关系数据库(它们到目前为止更成熟),你将不得不自己进行映射工作。

答案 3 :(得分:1)

使用.NET非常简单。

创建数据集。

使用DataSet.ReadXML()读取XML文件。

遍历DataSet.Tables()列表,并通过列遍历每个Table循环以获取字段名称。

我有一个测试应用程序来做那个...我会看看能否找到代码。

P.S。 - 找不到..所以我在http://dot-dash-dot.com/files/wtfxml.zip

写了一个

WTFXMLSetup_1_6_0.msi ... Windows框的安装程序......