Ver Mensaje Individual
  #1  
Antiguo 09-02-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Reputación: 22
JXJ Va por buen camino
Question ¿Delphi XML como escribir leer NameSpaces?

Hola

ando trabajando en lo que es el CFDI
para la facturacion electronica en México.

este es el XML que da el sat
Código:
<?xml version="1.0" encoding="utf-8"?>
<cfdi:Comprobante xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 cfdv3.xsd" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 version="3.0" 
 folio="123456" 
 fecha="2011-03-06T20:38:12" 
 sello="ll858RRUo3RHkdawp5Jy/TENtijth0TXEizBRwiCZhkanijbNH8Hh6C2XRk1wUsR&#xA;T0q+3HrO2bNgMS7cPr4p2ee+2N/6zVPzhjt0hfK8r3rF+VLArhGKQaBynlzMpL/A&#xA;up1Oc4fDjZA1MbtbZblLxFNG8/TeCJjQogo7+uYBMB4=&#xA;" 
 total="488.50" 
 subTotal="466.43" 
 Moneda="MXP" 
 certificado="MIIE/TCCA+WgAwIBAgIUMzAwMDEwMDAwMDAxMDAwMDA4MDAwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMDA3MzAxNjU4NDBaFw0xMjA3MjkxNjU4NDBaMIGWMRIwEAYDVQQDDAlNYXRyaXogU0ExEjAQBgNVBCkMCU1hdHJpeiBTQTESMBAGA1UECgwJTWF0cml6IFNBMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBBQUFBMDEwMTAxQUFBMR4wHAYDVQQFExUgLyBBQUFBMDEwMTAxSERGUlhYMDExETAPBgNVBAsMCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD0ltQNthUNUfzq0t1GpIyapjzOn1W5fGM5G/pQyMluCzP9YlVAgBjGgzwYp9Z0J9gadg3y2ZrYDwvv8b72goyRnhnv3bkjVRKlus6LDc00K7Jl23UYzNGlXn5+i0HxxuWonc2GYKFGsN4rFWKVy3Fnpv8Z2D7dNqsVyT5HapEqwIDAQABo4HqMIHnMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMB0GA1UdDgQWBBSYodSwRczzj5H7mcO3+mAyXz+y0DAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vcGtpLnNhdC5nb2IubXgvc2F0LmNybDAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNhdC5nb2IubXgvMB8GA1UdIwQYMBaAFOtZfQQimlONnnEaoFiWKfU54KDFMBAGA1UdIAQJMAcwBQYDKgMEMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4IBAQArHQEorApwqumSn5EqDOAjbezi8fLco1cYES/PD+LQRM1Vb1g7VLE3hR4S5NNBv0bMwwWAr0WfL9lRRj0PMKLorO8y4TJjRU8MiYXfzSuKYL5Z16kW8zlVHw7CtmjhfjoIMwjQo3prifWxFv7VpfIBstKKShU0qB6KzUUNwg2Ola4t4gg2JJcBmyIAIInHSGoeinR2V1tQ10aRqJdXkGin4WZ75yMbQH4L0NfotqY6bpF2CqIY3aogQyJGhUJji4gYnS2DvHcyoICwgawshjSaX8Y0Xlwnuh6EusqhqlhTgwPNAPrKIXCmOWtqjlDhho/lhkHJMzuTn8AoVapbBUnj" 
 formaDePago="PAGO EN UNA SOLA EXHIBICION" 
 noCertificado="30001000000100000800" 
 tipoDeComprobante="ingreso">
  <cfdi:Emisor rfc="PPL961114GZ1" nombre="PHARMA PLUS SA DE CV">
    <cfdi:DomicilioFiscal pais="Mexico" calle="AV. RIO MIXCOAC" estado="MEXICO, D.F." colonia="ACACIAS" municipio="BENITO JUAREZ" noExterior="No. 140" codigoPostal="03240" />
    <cfdi:ExpedidoEn pais="Mexico" calle="AV. UNIVERSIDAD" estado="DISTRITO FEDERAL" colonia="OXTOPULCO" noExterior="1858" codigoPostal="03910" />
  </cfdi:Emisor>
  <cfdi:Receptor rfc="PEPJ8001019Q8" nombre="JUAN PEREZ PEREZ">
    <cfdi:Domicilio pais="Mexico" calle="AV UNIVERSIDAD" estado="DISTRITO FEDERAL" colonia="COPILCO UNIVERSIDAD" municipio="COYOACAN" noExterior="16 EDF 3" noInterior="DPTO 101" codigoPostal="04360" />
  </cfdi:Receptor>
  <cfdi:Conceptos>
    <cfdi:Concepto unidad="CAPSULAS" importe="244.00" cantidad="1.0" descripcion="VIBRAMICINA 100MG 10" valorUnitario="244.00" />
    <cfdi:Concepto unidad="BOTELLA" importe="137.93" cantidad="1.0" descripcion="CLORUTO 500M" valorUnitario="137.93" />
    <cfdi:Concepto unidad="TABLETAS" importe="84.50" cantidad="1.0" descripcion="SEDEPRON 250MG 10" valorUnitario="84.50" />
    <cfdi:Concepto unidad="TABLETAS" importe="84.50" cantidad="1.0" descripcion="SEDEPRON 250MG 10" valorUnitario="84.50" />    
    
  </cfdi:Conceptos>
  <cfdi:Impuestos>
    <cfdi:Traslados>
      <cfdi:Traslado tasa="0.00" importe="0.00" impuesto="IVA" />
      <cfdi:Traslado tasa="16.00" importe="22.07" impuesto="IVA" />
    </cfdi:Traslados>
  </cfdi:Impuestos>
  <cfdi:Complemento>
    <tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital TimbreFiscalDigital.xsd" selloCFD="ll858RRUo3RHkdawp5Jy/TENtijth0TXEizBRwiCZhkanijbNH8Hh6C2XRk1wUsR&#xA;T0q+3HrO2bNgMS7cPr4p2ee+2N/6zVPzhjt0hfK8r3rF+VLArhGKQaBynlzMpL/A&#xA;up1Oc4fDjZA1MbtbZblLxFNG8/TeCJjQogo7+uYBMB4=&#xA;" FechaTimbrado="2011-03-06T20:40:10" UUID="ad662d33-6934-459c-a128-bdf0393e0f44" noCertificadoSAT="30001000000100000801" version="1.0" selloSAT="j2gGwF26lCgiMEj7IlVTDaQrAsOtVU7yO6idRZrSXYnarFQ5cbUE79WER4O8g+TZ&#xA;pYnyeOoH7DskvzeSMlCG67Tp/+Rx74CSTvzLtfDjEK6mmzKHylcWMn9SizIGWRDB&#xA;RrxOv5P2BPLIwTY1/HUQ7I46/eBzAuTLHsiDhsNJCMk=&#xA;" />
  </cfdi:Complemento>
  <cfdi:Addenda />
</cfdi:Comprobante>
mi problema es que al usar delphi y el databinding
no se reconoce los que es cfdi:

</cfdi:Impuestos>
no logro crear el archivo XML que conenga ese namespace
solo sin ese nameespace

hize chapuza haciendo este archivo que es el que uso lo adjunte


y otro problema que tengo es como leer la informacion del timbrefiscal

Código:
 <cfdi:Complemento>
    <tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital TimbreFiscalDigital.xsd" selloCFD="ll858RRUo3RHkdawp5Jy/TENtijth0TXEizBRwiCZhkanijbNH8Hh6C2XRk1wUsR&#xA;T0q+3HrO2bNgMS7cPr4p2ee+2N/6zVPzhjt0hfK8r3rF+VLArhGKQaBynlzMpL/A&#xA;up1Oc4fDjZA1MbtbZblLxFNG8/TeCJjQogo7+uYBMB4=&#xA;" FechaTimbrado="2011-03-06T20:40:10" UUID="ad662d33-6934-459c-a128-bdf0393e0f44" noCertificadoSAT="30001000000100000801" version="1.0" selloSAT="j2gGwF26lCgiMEj7IlVTDaQrAsOtVU7yO6idRZrSXYnarFQ5cbUE79WER4O8g+TZ&#xA;pYnyeOoH7DskvzeSMlCG67Tp/+Rx74CSTvzLtfDjEK6mmzKHylcWMn9SizIGWRDB&#xA;RrxOv5P2BPLIwTY1/HUQ7I46/eBzAuTLHsiDhsNJCMk=&#xA;" />
  </cfdi:Complemento>
con este codigo leo la informacion del xml que tambien adjunto
Código Delphi [-]
var
        elemisor : IXMLComprobante_Emisor;
begin
//
//  Cargamos el comprobante y comezanmos a cargar los datos que contieen
  elcomprobante := GetComprobante(XMLDocument1);
 Edit1.Text :=  elcomprobante.Version ;
 Edit2.Text := elcomprobante.Folio;
 Edit3.Text := elcomprobante.Serie;
 Edit4.Text := elcomprobante.Fecha;
 Memo1.Text := elcomprobante.Sello;
 Edit5.Text := elcomprobante.Total;
  // aqui no se como leer el complemento para pasarlo a unos edits y memos

yo creo que el problema es que no se han declarado los namespaces
pero no se como se declaran ni como leer un namespace distinto dentro
de otro
en este caso el complemento timbrefiscal
tiene el namespace <tfd:TimbreFiscalDigital
Archivos Adjuntos
Tipo de Archivo: zip leercfdi.zip (8,2 KB, 144 visitas)
Responder Con Cita