Вы находитесь на странице: 1из 3

Generar clase C# desde XSD (UBL 2.

1)

Con este tema de facturación electrónica, XML y UBLs 2.0/ 2.1, se han establecido que
las facturas, boletas y demás documentos comerciales se envíen a un web service con
formato XML por ello se definieron diferentes archivos XSD que validan los XML
estos lo puede ubicar aquí

https://docs.oasis-open.org/ubl/cs1-UBL-2.1/xsd/ <-- para UBL 2.1


https://docs.oasis-open.org/ubl/cs-UBL-2.0/xsd/ <---para UBL 2.0

También partir de estos XSD se pueden generar clases de C# que facilmente se pueden
serialzar a XML, aqui te voy a mostrar como hacerlo.

Para hacerlo necesitamos los XSD descargados para este ejemplo voy a usar la version
UBL 2.1.
En una carpeta ponemos todos los archivos descargados, como se muestra a
continuación

Luego necesitamos el programa XSD.exe que viene con visual studio, este se encuentra
en C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin este archivo lo
copiamos a la carpeta donde estan nuestros XSDs descargados.

Algunas rutas alternativas donde puede estar son: C:\Program Files (x86)\Microsoft
SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools o C:\Program Files (x86)\Microsoft
SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools esto depende de la versión de visual
studio que tengan.
Luego abrimos el CMD y nos ubicamos en la carpeta y copiamos el siguiente comando,
y presionamos enter:

xsd UBL-Invoice-2.1.xsd UBL-CommonExtensionComponents-2.1.xsd UBL-


UnqualifiedDataTypes-2.1.xsd UBL-CommonBasicComponents-2.1.xsd UBL-
CommonAggregateComponents-2.1.xsd UBL-QualifiedDatatypes-2.1.xsd
CCTS_CCT_SchemaModule-2.1.xsd /c /l:cs

En nuestra carpeta se genera un archivo con extensión CS que es la clase generado a


partir del XSD.

El programa XSD recibe 4 parametros:


1) UBL-Invoice-2.1.xsd es el nombre de archivo del cual se va generar la Clase C#,
2) Los nombres de archivos que siguen desde UBL-CommonExtensionComponents-
2.1.xsd ... hasta antes de /c son los nombres de archivos que contiene los tipos que se
utilizan en el xsd principal
3) /c indica que se va a generar una clase
4) /l:cs indica que el lenguaje de la clase va a ser C# (csharp)

El archivo generado lo renombramos, en este ejemplo sera Factura_v2_1.cs y vemos el


codigo generado.
Si ha buscando ejemplo en internet y no les funcionaba era porque faltaba pasar el
nombre de los archivos que contienen los tipos que utiliza el xsd principal.

Espero que les haya funcionado no olviden en preguntar.

Actualizacion por pedido a varias personas se ha creado el post CREAR ARCHIVO


XML A PARTIR DE CLASE (UBL 2.1)

Вам также может понравиться