2011-03-11 46 views
0

我如何的不同格式的XML文件(S)映射到我的數據庫中的表比方說我有一個表稱爲Person映射(不同的)XML(格式)到數據庫表

FirstName nvarchar(50), 
LastName nvarchar(50), 
Address nvarchar(500) 

我們必須提交用戶的Person領域的XML文件,該XML文件可以在不同的格式,例如說一個用戶提交的格式如下

<Person> 

<Names> 
<FirstName>john</FirstName> 
<LastName>smith</LastName> 
</Names> 

<Names> 
<FirstName>john</FirstName> 
<LastName>smith</LastName> 
</Names> 


</Person> 

和其他用戶提交它的格式如下

<Person> 
<PersonalInfo> 

<Names> 
<FirstName>john</FirstName> 
<LastName>smith</LastName> 
</Names> 
. 
. 
. 
<PersonalInfo> 
</Person> 

如何設備將處理不同情況下(不同的XML格式)的解決方案,以便如果用戶提交一個XML格式的文件,我只需要告訴格式,我的應用程序和它的值將自動被映射到使用Visual Studio 2010作爲一個IDE和C#.NET的說表... IM,我希望已經敘述的問題不夠好......

請諮詢......

回答

1

因爲我不這應該是多麼的動態(意味着你將改變映射的頻率)或者你有多少種不同的XML,我建議你使用你喜歡的ORM和CR將表映射到一個普通的類使用LinqToXml消除類實例(這非常簡單)。每個XML結構都有一個方法或類。

這裏有一個樣本爲LinqToXml - >http://www.switchonthecode.com/tutorials/introduction-to-linq-simple-xml-parsing

另外,如果你不想將使用它,使用的是.NET 4我創建了一個簡單的庫從XML字符串產生動態對象。你可以在它這裏看看 - >https://github.com/tucaz/XmlToObjectParser

1
  1. 您可以識別您採集模式,並使用合適的XSLT文件將其轉換爲最新版本。 注意:你應該做一些通用的識別模式(例如)

  2. (我喜歡1越好)創建一個軟件適配器接口改變的映射(像插件工作)