根據xml生成相應的對象類


根據xml生成相應的class對象,聽起來很難其實很簡單,用xsd.exe就能辦到

打開vs 命令行運行xsd.exe 你的xml文件地址 空格/outputdir:存放xsd的地址 

ok,這是生成了xsd文件

然后再運行xsd.exe xsd文件地址 空格/classes /outputdir:class地址

具體參數

xsd file.xdr [/outputdir:directory][/parameters:file.xml]
xsd file.xml [/outputdir:directory] [/parameters:file.xml]
xsd file.xsd {/classes | /dataset} [/element:element] 
             [/enableLinqDataSet] [/language:language] 
                          [/namespace:namespace] [/outputdir:directory] [URI:uri] 
                          [/parameters:file.xml]
xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename [...]][/parameters:file.xml]


這個不是重點,重點是生成的calss能不也能用,也就是能不能序列化和反序列化並且與原數據沒任何差錯

如果你的xml很簡單,那么反序列或序列化肯定不會出什么錯,但是如果是特別復雜的xml那一定會報錯,一般報的都是無法將類型a[]轉換為類型類型a,或者反過來!
解決方案

不講什么原理之類的,只講怎么操作,其實原理我也不太懂,只是一個感覺。估計這就是只可意會不可言傳吧!
這里講的是反序列化,如果這個對象能反序列了,那序列就不用說了吧
錯誤無法將類型a[]轉換位類型a
這個就是說你的本類(它應該說是描述xml的類)也就是你生成的類與xml數據不一致,是生成類的數組不對了(具體也說不清,改的時候在對照xml的結構就能悟出一二了),把它改成類型a就行了
錯誤無法將類型a轉換位類型a[]
這個就是說xml映射的類與你
(它應該說是描述xml的類)生成的類的屬性描述不一致所以它識別不了(具體也說不清,改的時候在對照xml的結構就能悟出一二了)
,所以你要將typeof里的改成a[]
這樣就ok了
歡迎指導---------------------------------------------------------------------

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM