2012-03-23 14 views
8

È così che lo strumento svcutil è consigliato su xsd tool? Non l'ho visto come una dichiarazione confermata, ma sembrava così. La ragione per cui sono confuso su questo è che ho generato una classe usando entrambi gli strumenti. Ma, ho ottenuto una classe migliore usando xsd. Lo schema XSD è costituito solo da DataContracts.Xsd.exe o Svcutil.exe per convertire lo schema XSD in una classe

Ho usato il seguente comando per svcutil:

svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs 

Questo genera le classi desiderate. Ma conteneva solo oggetti XmlNode [] per i campi.

Poi, ho usato il seguente comando per xsd:

xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs 

Ha generato classi molto meglio di svcutil fatto. La maggior parte dei campi è stata convertita come desiderato.

Dovrei avere qualche ragione per credere che dovrei usare svcutil su xsd allora?

risposta

5

Per quanto ne so, esistono alcune limitazioni con XSD.exe; per esempio quando c'è un Dictionary<,> nella classe, XSD.exe non può generare un XSD corretto; come Dictionary non implementa IXmlSerializable.

+0

ok. Ho diversi altri schemi, che vorrei convertire usando gli strumenti, e vedere cosa è meglio per il mio utilizzo. Selezionerò lo strumento appropriato di conseguenza. –

2

svcutil non supporta gli attributi xml. Se hai bisogno di usarli nello schema, probabilmente stai meglio con xsd.exe.

Personalmente preferisco usare svcutil su xsd e ho imparato come creare i miei schemi per produrre la struttura di classe che desidero, ma sto anche lavorando principalmente con gli schemi che sto sviluppando da zero, al contrario del consumo quelli predefiniti.