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