martes, 13 de noviembre de 2012

Generar classes (.cs/.vb) a partir de un documento XML o plantilla XSD

El siguiente artículo resume los pasos sobre como obtener las clases .cs o .vb a partir de un esquema

Xsd

o documento

Xml

.

Usaremos la herramienta

xsd.exe

que viene con Visual Studio o si no lo tenemos podríamos obtenerla descargando el SDK del framework 2.0. Como alternativa se podría llegar a hacer lo mismo usando svcutil.exe.

En caso de tener Visual Studio instalado vamos al menú de inicio, Visual Studio, Visual Studio Tools y pulsamos en "Símbolo de sistema de Visual Studio". Veremos que nos abre una pantalla MS-DOS. En caso de no tener visual studio podríamos usar

Xsd

si vamos a la línea de comando (cmd) y nos situamos manualmente en el directorio que esté el ejecutable xsd.exe.

Una vez situado en el directorio que toca, ejecutamos el siguiente comando para convertir de

Xml

a

Xsd

:
C:\Program Files\Microsoft Visual Studio 10.0\VC>xsd.exe /c /l:CS c:\archivo.xml /o:c:\

Utilidad de compatibilidad para esquemas Xml y DataTypes de Microsoft (R)
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Escribiendo el archivo 'C:\archivo.xsd'.
Ejecutamos posteriormente el siguiente comando. Si partimos de un

Xsd

en vez de un

Xml

podríamos obviar el paso anterior lo cual sería la situación ideal porque una plantilla

Xsd

contiene más información sobre los tipos que se han de generar en la clase que un documento

Xml

.
C:\Program Files\Microsoft Visual Studio 10.0\VC>xsd.exe /c /l:CS c:\archivo.xsd /o:c:\

Utilidad de compatibilidad para esquemas Xml y DataTypes de Microsoft (R)
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Escribiendo el archivo 'C:\archivo.cs'.
Con esto ya podríamos agregar la clase 'archivo.cs' a nuestro proyecto .NET y usar los objetos generados automáticamente a partir del

Xsd

. Para volverlos a pasar a formato

Xml

podríamos serializar el objeto en disco usando

XmlSerializer

o

DataContractSerializer

combinado con

XmlWriter

.

Espero a alguien le sea útil, son bienvenidos todo tipo de comentarios. Recuerda que puedes seguir

areaTIC

en las redes sociales!


No hay comentarios:

Publicar un comentario en la entrada