c# - Xsd.exe o Svcutil.exe para convertir el esquema XSD a una clase
xml (2)
¿Es así que se recomienda la herramienta svcutil sobre la herramienta xsd? No lo vi como una declaración confirmada, pero parecía ser así. La razón por la que estoy confundido sobre esto es que generé una clase usando ambas herramientas. Pero obtuve una mejor clase usando xsd. El esquema XSD consiste en DataContracts solamente.
Usé el siguiente comando para svcutil:
svcutil path-to/xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to/class.cs
Esto generó las clases deseadas. Pero, contenía solo objetos XmlNode [] para los campos.
Luego, utilicé el siguiente comando para xsd:
xsd.exe /c path-to/xyz.xsd /out:path-to/class.cs
Generaba clases mucho mejores que las de svcutil. La mayoría de los campos se convirtieron como se deseaba.
¿Debo tener alguna razón para creer que debería usar svcutil sobre xsd?
svcutil no admite atributos xml. Si necesita usarlos en su esquema, probablemente esté mejor con xsd.exe.
Yo personalmente prefiero usar svcutil sobre xsd y he aprendido cómo formar mis esquemas para generar la estructura de clase que quiero, pero también estoy trabajando principalmente con esquemas que estoy desarrollando desde cero, en lugar de consumir predefinidos.
Hasta donde yo sé, hay algunas limitaciones con XSD.exe; por ejemplo, cuando hay un Dictionary<,>
en la clase, XSD.exe no puede generar un XSD apropiado; como Dictionary
no implementa IXmlSerializable
.