3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
很簡(jiǎn)單 只需運(yùn)行(在vs命令提示符下)
xsd your.xsd /classes
(將創(chuàng)建your.cs)。但是請(qǐng)注意,自2.0以來(lái),此處的大多數(shù)內(nèi)在選項(xiàng)都沒(méi)有太大變化
有關(guān)選項(xiàng),請(qǐng)使用xsd /?或參閱MSDN。例如/enableDataBinding可能是有用的。

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
當(dāng)您有循環(huán)引用時(shí)(即,一個(gè)類型可以直接或間接擁有其自己類型的元素),xsd.exe不能很好地工作。
當(dāng)存在循環(huán)引用時(shí),我使用Xsd2Code。Xsd2Code可以很好地處理循環(huán)引用,并且可以在VS IDE中工作,這是一個(gè)很大的優(yōu)點(diǎn)。它還具有許多可使用的功能,例如生成序列化/反序列化代碼。但是,如果要生成序列化,請(qǐng)確保打開GenerateXMLAttributes(否則,如果未在所有元素上都定義,則會(huì)獲得排序異常)。
兩者都不適合使用選擇功能。您最終將得到對(duì)象的列表/集合,而不是所需的類型。如果可能,我建議避免在xsd中進(jìn)行選擇,因?yàn)檫@樣做不會(huì)很好地序列化/反序列化為強(qiáng)類型類。但是,如果您對(duì)此不關(guān)心,那么這不是問(wèn)題。
xsd2code中的any功能反序列化為System.Xml.XmlElement,我覺得這很方便,但是如果您要使用強(qiáng)類型對(duì)象,則可能會(huì)遇到問(wèn)題。在允許自定義配置數(shù)據(jù)時(shí),我經(jīng)常使用any,因此XmlElement可以方便地傳遞到在其他地方自定義定義的另一個(gè)XML反序列化器。
- 3 回答
- 0 關(guān)注
- 499 瀏覽
添加回答
舉報(bào)