3

你们知道吗,我们如何将 XML Schema 转换为关系模型?涉及哪些步骤?更准确地说,我们如何仅通过查看 XML Schema 来确定表名、列名和这些表上的关系,在关系模型上会是什么样子?

如果您有任何教程链接,示例,请与我分享。我非常感谢您在这方面的帮助。

谢谢

4

4 回答 4

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
于 2009-11-04T01:04:39.703 回答
1

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

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

于 2009-11-04T01:27:49.877 回答
1

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

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

于 2009-11-04T01:40:00.903 回答
1

这对于 .NET 来说非常简单。

创建一个数据集。

执行 DataSet.ReadXML() 以读取您的 XML 文件。

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

我有一个测试应用程序可以做到这一点......我会看看我是否能找到代码。

PS - 找不到它.. 所以我在http://dot-dash-dot.com/files/wtfxml.zip写了一个

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

于 2009-11-04T01:44:21.613 回答