Ver Mensaje Individual
  #69 (permalink)  
Antiguo 26/09/2010, 07:59
Avatar de J_L_A
J_L_A
 
Fecha de Ingreso: septiembre-2010
Ubicación: México D. F
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

BenuR, hay una manera más fácil para generar el xml.

-Convertir cfdv2.xsd (está en la página del SAT) a clase de c# desde la linea de comandos ms-dos:
Código:
%:\>xsd cfdv2.xsd /c
(Devuelve cfdv2.cs)
-Integrarlo al proyecto como módulo de clase, por ejemplo con el nombre Comprobante.cs

-Ahora se declara una variable de tipo Comprobante
Código:
Comprobante comprobante = new Comprobante();
-Se le asignan valores:
Código:
comprobante.version = "2.0";
comprobante.serie = "ABCD";
.
.
.
... y así con cada clase (emisor, receptor, conceptos, impuestos, etc.) del módulo Comprobante.cs:
Código:
ComprobanteEmisor comprobanteEmisor = new ComprobanteEmisor();

comprobanteEmisor.nombre = "Juan Pérez";
comprobanteEmisor.rfc = "ABCD0102039Z0";
.
.
.
-Después se genera el xml con:
Código:
using System.xml;
using System.Xml.Serialization;
using System.Text.Encoding;

XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces();
xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
XmlTextWriter xmlTextWriter = new XmlTextWriter(RutaConNombreArchivoSinExtension + ".xml", Encoding.UTF8);
xmlTextWriter.Formatting = Formatting.Indented;
XmlSerializer xs = new XmlSerializer(typeof(Comprobante));

xs.Serialize(xmlTextWriter, comprobante, xmlNameSpace);
xmlTextWriter.Close();
Será necesario generar el xml dos veces: la segunda para insertarle el sello digital. Si quieren mas adelante los digo como se hace.

Espero sirva. A la orden para dudas, correcciones u objeciones.

Saludos!