CFD v2.2 http://www.sat.gob.mx/cfd/2/cfdv22.xsd
CFD v3.2 http://www.sat.gob.mx/cfd/3/cfdv32.xsd
Ahora ve a Inicio-->Todos los Programas-->Microsoft Visual Studio-->Visual Studio Tools y dentro de esta carpeta esta el Archivo "Developer Command Prompt for VS2012" (es una ventana de cmd) ejecutalo, ve a la Carpeta donde bajaste los XSD (cd RutaCompletaDeCarpeta) y estando ahi, escribe lo siguiente:
Para Visual Basic
xsd cfdv22.xsd /classes /language:vb
Para C#
xsd cfdv22.xsd /classes /language:cs
Se creará 1 Archivo tipo vb o cs, crea un nuevo proyecto y agrégalo, no lo verás en Solution Explorer a menos que tengas activado Show All Files, pero está un nivel abajo del cfdv22.xsd, es la Classe Comprobante con todas las SubClasses, Propiedades, etc que necesitarás para crear el XML.
Agrega una nueva Classe:
Código: Seleccionar todo
Imports System.Text
Public Class clsCFD
Public Shared Sub CreaXML(ByVal Comp As Comprobante, _
Optional ByVal xmlFile As String = "", _
Optional ByVal Guardar As Boolean = True)
Dim serializer As New Xml.Serialization.XmlSerializer(GetType(Comprobante))
Dim ws As New IO.StreamWriter(xmlFile, False, New UTF8Encoding)
serializer.Serialize(ws, Comp)
ws.Flush()
ws.Close()
ws.Dispose()
serializer = Nothing
End Sub
End Class
Código: Seleccionar todo
Dim xmlFile As String = IO.Path.Combine(Application.StartupPath, "CFDv22 " & Today.ToString("yyyy-MMM-dd ss") & ".xml")
Sub CreaXmlCFD()
Dim cfd As New Comprobante
With cfd
.version = "2.2"
.anoAprobacion = "2012"
.noAprobacion = "10020020202102"
.fecha = Now.ToString("s")
.folio = "1"
.metodoDePago = "TRANSFERENCIA"
.NumCtaPago = "6722"
.noCertificado = "01234567890123456789"
.tipoDeComprobante = ComprobanteTipoDeComprobante.ingreso
.Emisor = New ComprobanteEmisor With _
{.nombre = "NOMBRE EMISOR",
.rfc = "RFCEMISOR",
.DomicilioFiscal = New t_UbicacionFiscal With _
{.calle = "Calle",
.noExterior = "123",
.codigoPostal = "44150",
.municipio = "GUADALAJARA"}}
.Receptor = New ComprobanteReceptor With _
{.nombre = "NOMBRE EMISOR",
.rfc = "RFCEMISOR",
.Domicilio = New t_Ubicacion With _
{.calle = "Calle",
.noExterior = "123",
.codigoPostal = "44150",
.municipio = "GUADALAJARA"}}
.Conceptos = {New ComprobanteConcepto With _
{.cantidad = 3,
.unidad = "PZA",
.descripcion = "PRODUCTO 1",
.valorUnitario = 150,
.importe = CDec(CDbl(.cantidad * .valorUnitario))}}
.Impuestos = New ComprobanteImpuestos With _
{.Traslados = {New ComprobanteImpuestosTraslado With _
{.impuesto = ComprobanteImpuestosTrasladoImpuesto.IVA,
.tasa = 16,
.importe = CDec(cfd.Conceptos.Sum(Function(con) con.importe)) * CDec("." & .tasa)}}}
.subTotal = CDec(cfd.Conceptos.Sum(Function(con) con.importe))
.total = CDec(.subTotal * 1.16)
End With
clsCFD.CreaXML(cfd, xmlFile)
WebBrowser1.Navigate(xmlFile)
End Sub
Código: Seleccionar todo
Public Shared Function GetCadenaOriginal(ByVal xmlDoc As String, ByVal fileXSLT As String) As String
Dim strCadenaOriginal As String
Dim newFile = Path.GetTempFileName()
Dim Xsl = New Xml.Xsl.XslCompiledTransform()
Xsl.Load(fileXSLT)
Xsl.Transform(xmlDoc, newFile)
Xsl = Nothing
Dim sr = New IO.StreamReader(newFile)
strCadenaOriginal = sr.ReadToEnd
sr.Close()
'Eliminamos el archivo Temporal
System.IO.File.Delete(newFile)
fileXSLT = Nothing
newFile = Nothing
Xsl = Nothing
sr.Dispose()
Return strCadenaOriginal
End Function
Saludos