你们知道吗,我们如何将 XML Schema 转换为关系模型?涉及哪些步骤?更准确地说,我们如何仅通过查看 XML Schema 来确定表名、列名和这些表上的关系,在关系模型上会是什么样子?
如果您有任何教程链接,示例,请与我分享。我非常感谢您在这方面的帮助。
谢谢
你们知道吗,我们如何将 XML Schema 转换为关系模型?涉及哪些步骤?更准确地说,我们如何仅通过查看 XML Schema 来确定表名、列名和这些表上的关系,在关系模型上会是什么样子?
如果您有任何教程链接,示例,请与我分享。我非常感谢您在这方面的帮助。
谢谢
两者本质上是不同的。关系模型是基于集合的;XML 是分层的。
一种方法可能是将标签名称作为表的名称,如果标签有多个带有叶子孙子的孩子。子标签名称将是列,而孙标签名称将是值。
如果孩子有非叶孙,则将它们建模为父表和子表之间的一对多关系。
如果您在 Google 上搜索“XML 模式到关系模式”,则需要阅读几篇论文,其中包括:
架构有多复杂?根据模式定义的结构,您可能会发现没有方便的关系表转换。
你还没有说你打算如何使用你的数据,但是一些关系数据库支持 xml 类型的列。例如,在 Microsoft SQL Server 2005 及更高版本中,您可以将 xml 文档存储在 xml 类型的列中。然后,您的查询可以使用为xml 数据类型定义的内置方法。
如果没有 XML 格式的示例,就很难给出答案。一个非常简单的 XML 格式很容易转换,但更复杂的结构或层次结构并不容易,需要一些思考。因此,一个工具真的不适合你。
通常,您还会进入使用对象数据库 (OODBMS) 与关系数据库 (RDBMS) 的对话。对对象数据库的一些研究可能是有序的,但是如果您必须使用关系数据库(到目前为止它们更成熟),您将不得不自己进行映射工作。
这对于 .NET 来说非常简单。
创建一个数据集。
执行 DataSet.ReadXML() 以读取您的 XML 文件。
循环遍历 DataSet.Tables() 列表,并为每个 Table 循环遍历列以获取字段名称。
我有一个测试应用程序可以做到这一点......我会看看我是否能找到代码。
PS - 找不到它.. 所以我在http://dot-dash-dot.com/files/wtfxml.zip写了一个
WTFXMLSetup_1_6_0.msi ... Windows 框的安装程序 ...