2010-04-13 65 views
5

我有一個複雜的XSD模式和數百個符合模式的XML文件。如何從XSD模式構建數據庫並導入XML數據

如何自動創建相關的SQL Server表來存儲XML數據?

我已經考慮過使用XSD.EXE工具,讓類似亞音速計算出如何使一個閃亮的數據庫出來的,但不知道這是否是進場的最佳方式從XSD架構創建C#類它。

有沒有人設法將XSD文件優雅地導入到SQL Server中?

具有很好的答案類似的問題:How can I create database tables from XSD files?

回答

9

我建議你使用SQL Server集成服務,來與SQL Server 2008或2005(如果或數據轉換服務的堅持與2000年)。

不幸的是,它並沒有提供免費的「快速」版本的SQL Server,但是SQL Server Developer版本可以有< $ 100,它具有完整的SQL Server標準功能並且可以滿足您的需求。

SSIS是一個很大的話題,我不打算去了所有的鐘聲和口哨聲在這裏,但基本上你:

  • 創建使用BIDS(商業智能開發套件,一個新的SSIS項目修改Visual Studio附帶的SSIS)
  • 將新數據流任務拖放到控制流表面上,然後單擊數據流選項卡。
  • 將工具箱中的「XML源」拖到數據流面板中,然後配置XSD和XML文件位置。
  • 將ADO.NET數據目標從工具箱拖放到數據流上,並將其中一個輸出從XML源連接到ADO.NET目標的輸入。如果您希望根據xml架構的數據輸出創建一個新表,而不是在ADO.NET目標中指定連接管理器設置時使用現有的單擊「新建」,並生成並執行相應的創建表聲明。對來自XML源的任何其他輸出重複此操作(從模式生成的每個邏輯平面表將會有一個輸出)。

在加載到SQL Server之前,您可能需要首先使用其他數據轉換對象來轉換數據,但這是它的一般要領。如果您需要爲大量XML文件運行進程,則可以將任務置於控制循環中並使用變量來設置XML文件的位置。

上使用SSIS XML源的MS文檔是在這裏:http://msdn.microsoft.com/en-us/library/ms140277(v=SQL.100).aspx

+0

謝謝。我有一個SQL Server 2008開發人員許可證,但不是BIDS。我會研究SSIS。 – 2010-04-13 11:49:15

+0

BIDS附帶SQL Server Developer,並應與SQL Server Management Studio和其他客戶端工具一起安裝。這是您用於創作報告服務報告的相同工具。 – 2010-04-13 12:05:31

+0

SSIS將創建表格,但這只是該作業的1/2。它並沒有在它們之間創建任何引用。它也會對數據做出一些瘋狂的假設,例如'int(數字)(20,0)'。 – ajeh 2016-07-06 18:59:36

5

剛剛發現XSD2DB on Sourceforge,根據現場:

XSD2DB是在C#編寫 一個命令行工具,這將閱讀Microsoft ADO.NET兼容數據集架構文件 (XSD)並生成數據庫的Microsoft 。

檢出它。

+1

它爲你工作,因爲它在一個大的模式文件上失敗了。 – IEnumerator 2010-04-23 15:37:35