2009-11-04 100 views
1

您知道嗎,我們如何將XML架構轉換爲關係模型?涉及的步驟是什麼? 更確切地說,我們如何通過僅查看XML Schema來了解表名,列名和這些表上的關係,就像關係模型一樣?將xml架構轉換爲關係模型

如果您有任何教程鏈接,請舉例與我分享。 我非常感謝你對此的幫助。

THanks

回答

4

這兩者本質上不同。關係模型是基於集合的; XML是分層的。

一種方法可能是將標記名稱作爲表格名稱如果標記具有多個具有葉子孫子的子元素。子標籤名稱將作爲列,而孫子將文本作爲值。

如果孩子有非葉子孫子,將它們建模爲父子表之間的一對多關係。

有幾篇論文,如果你谷歌 「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)與關係數據庫(RDBMS)的對話。一些關於對象數據庫的研究可能是有序的,但是如果你必須使用關係數據庫(到目前爲止它們已經比較成熟),那麼你必須自己完成映射工作。

1

這對於.NET非常簡單。

創建數據集。

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

循環遍歷DataSet.Tables()的列表併爲每個表循環通過列來獲取字段名稱。

我有一個測試應用程序來做到這一點...我會看看我是否可以找到代碼。

P.S. - 找不到它..所以我寫了一個在http://dot-dash-dot.com/files/wtfxml.zip

WTFXMLSetup_1_6_0.msi ... windows的安裝程序...