Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/10/2011, 15:13
jevangelista
 
Fecha de Ingreso: abril-2011
Ubicación: Distrito Federal
Mensajes: 112
Antigüedad: 13 años
Puntos: 17
Respuesta: Facturación electrónica 2011. Codigo vb.net 2008

Hola, yo no he manejado openssl para esto de la facturación electrónica, pero cuando tenga la necesidad tomaré de referencia tu código.

Gratuitamente te paso ejemplo de código de cómo se debe validar un XML ya terminado para ver si está correctamente estructurada la información. En este ejemplo se usan directamente los XSD del SAT y se agrega un XSD adicional para una Addenda propia. Espero te sirva.


Código VB.NET:
Ver original
  1. Private Sub ValidarEsquema()
  2.         Dim va As XmlReader
  3.         Dim sc As XmlSchemaSet
  4.         If Not File.Exists(strArchivoSalida) Then
  5.             strMensajeError = "Error: No se generó el archivo de salida"
  6.             Exit Sub
  7.         End If
  8.         If Not File.Exists(strPath + "cfdv3.xsd") Then
  9.             strMensajeError = "Error: No existe el archivo de esquema cfdv3.xsd"
  10.             Exit Sub
  11.         End If
  12.         If Not File.Exists(strPath + "TimbreFiscalDigital.xsd") Then
  13.             strMensajeError = "Error: No existe el archivo de esquema TimbreFiscalDigital.xsd"
  14.             Exit Sub
  15.         End If
  16.         If Not File.Exists(strPath + "miempresa.xsd") Then
  17.             strMensajeError = "Error: No existe el archivo de esquema miempresa.xsd"
  18.             Exit Sub
  19.         End If
  20.         rs = New XmlReaderSettings()
  21.         rs.ValidationType = ValidationType.Schema
  22.         sc = New XmlSchemaSet()
  23.         rs.Schemas = sc
  24.         sc.Add("http://www.sat.gob.mx/cfd/3", strPath + "cfdv3.xsd")
  25.         sc.Add("http://www.sat.gob.mx/TimbreFiscalDigital", strPath + "TimbreFiscalDigital.xsd")
  26.         sc.Add("http://www.credicam.com/XSD", strPath + "miempresa.xsd")
  27.         va = XmlReader.Create(strArchivoSalida, rs)
  28.         Try
  29.             While va.Read
  30.             End While
  31.         Catch ex As Exception
  32.             strMensajeError = "Error: (" + strSerie + " " & intFolio & ") " + ex.Message
  33.         End Try
  34.         va.Close()
  35.         sc = Nothing
  36.         rs = Nothing
  37.     End Sub