Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-01-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por adrall Ver Mensaje
Hola a todos,

Hasta ahora he generado los XML las facturas electrónicas de manera manual, usando un TXMLDocument y añadiendo todos los nodos y sub-nodos necesarios para generarlas. Pero, teniendo al alcance el XML Data Binding de Delphi, he intentado usarlo para crear las clases para poder generar las facturas más fácil y elegantemente, importando una facturae XML correcta y generando las clases pertinentes.

El XML Data Binding genera el código y añade al proyecto el fichero .pas con la clase IXMLFacturaeType y todas las sub-clases, tipos, metodos, etc. necesarios.

A partir de esa clase ya puedes crear una instancia de la factura y puedes cómodamente introducir los valores necesarios y después, generar el fichero XML.

Todo parece funcionar bien, y se crea el fichero con todos los nodos correctamente excepto, y ahí esté el problema, el nodo principal que en una FacturaE correcta debe ser así:

Código:
<facturae:Facturae xmlns:facturae="http://www.facturae.es/Facturae/2009/v3.2/Facturae">
...
...
</facturae:Facturae>
Pero el proyecto la genera así:

Código:
<Facturae xmlns:facturae="http://www.facturae.es/Facturae/2009/v3.2/Facturae">
...
...
</Facturae>

Es decir, sin la etiqueta "facturae:" dentro del nodo "<Facturae>"

No entiendo por qué ocurre esto ni como solucionarlo. He rebuscado por todas partes, pero no encuentro información al respecto ni como resolverlo.

Si alguno de vosotros me podéis dar alguna información o algún enlace os estaré muy agradecido.

Gracias y saludos.
Es extraño, si puedes encontrar el nombre de la etiqueta en algún sitio desde donde se genera y cambiarla por otro que no sea facturae , ya que puede estar volviéndose loco que el namespace se llame igual que el nodo.
Yo ll tengo puesto como <namespace:Facturae...
Responder Con Cita
  #2  
Antiguo 22-01-2025
adrall adrall is offline
Miembro
 
Registrado: ene 2007
Posts: 99
Poder: 20
adrall Va por buen camino
Unhappy

Cita:
Empezado por ermendalenda Ver Mensaje
Es extraño, si puedes encontrar el nombre de la etiqueta en algún sitio desde donde se genera y cambiarla por otro que no sea facturae , ya que puede estar volviéndose loco que el namespace se llame igual que el nodo.
Yo ll tengo puesto como <namespace:Facturae...
No lo entiendo, si testeo un fichero con "<namespace:Facturae> como tú dices, me da error, solo admite <facturae:Facturae>
Responder Con Cita
  #3  
Antiguo 22-01-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por adrall Ver Mensaje
No lo entiendo, si testeo un fichero con "<namespace:Facturae> como tú dices, me da error, solo admite <facturae:Facturae>
Tienes que sustituir el prefijo en todo el xml
Por ejemplo en el cierre
Donde aparezca facturae: te debe admitir cualquier cadena cadena:
Lo que es raro es que le pongas al prefijo(namespace) el mismo nombre que la etiqueta
Responder Con Cita
  #4  
Antiguo 22-01-2025
adrall adrall is offline
Miembro
 
Registrado: ene 2007
Posts: 99
Poder: 20
adrall Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Tienes que sustituir el prefijo en todo el xml
Por ejemplo en el cierre
Donde aparezca facturae: te debe admitir cualquier cadena cadena:
Lo que es raro es que le pongas al prefijo(namespace) el mismo nombre que la etiqueta
Pues no lo entiendo, la verdad... creo que intentaré modificar el XML resultante con ReplaceString o algo así, (si es que se puede) antes de guardar el fichero, substituyendo <Facturae></Facturae> por <facturae:Facturae></facturae:Facturae> que es de la única manera que lo acepta.
Responder Con Cita
  #5  
Antiguo 23-01-2025
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.235
Poder: 24
keys Va por buen camino
Cita:
Empezado por adrall Ver Mensaje
Pues no lo entiendo, la verdad... creo que intentaré modificar el XML resultante con ReplaceString o algo así, (si es que se puede) antes de guardar el fichero, substituyendo <Facturae></Facturae> por <facturae:Facturae></facturae:Facturae> que es de la única manera que lo acepta.
Es algo que lleva pasando desde siempre con casi todos los ficheros xsd que he tratado en delphi con el XML DataBinding. Al final siempre tengo que cambiar el namespace a mano(abriendo el fichero y sustituyendo cadenas).

Hace tiempo estuve investigando pero no llegue a nada, así que tiré por el camino del medio que es generar el fichero y luego sustituir los textos
Responder Con Cita
  #6  
Antiguo 23-01-2025
adrall adrall is offline
Miembro
 
Registrado: ene 2007
Posts: 99
Poder: 20
adrall Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Es algo que lleva pasando desde siempre con casi todos los ficheros xsd que he tratado en delphi con el XML DataBinding. Al final siempre tengo que cambiar el namespace a mano(abriendo el fichero y sustituyendo cadenas).

Hace tiempo estuve investigando pero no llegue a nada, así que tiré por el camino del medio que es generar el fichero y luego sustituir los textos
Y como haces para importar un XSD con XML DataBinding? Si descargas el esquema Facturaev3_2_2.xml y lo importas con XML Data Binding te genera un fichero de clases que no se parece en nada a una facturae. Y por otra parte, si lo generas a partir de una factura.xml correcta, te genera el fichero de clases, pero hay campos/nodos que no te los genera dependiendo de la factura.

Me debo saltar algún paso, ya que lo lógico sería utilizar el schema oficial, ¿no?
Responder Con Cita
  #7  
Antiguo 23-01-2025
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.235
Poder: 24
keys Va por buen camino
Yo lo que hago es descargarme el xsd de esta página https://www.facturae.gob.es/formato/...rsion-3-2.aspx, ojo que creo que te lo descarga en xml, sino renombrarlo a xsd.

Luego en delphi ir a xml data binding y seleccionar el fichero y te crea una unit con una clase con toda la estructura de efactura.

Yo prefiero utilizarlas por que una vez que le pillas el tranquillo agiliza mucho el trabajo. Eso si no te genera el namespace.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Facturas Electronicas Argentina Chaja Varios 3 10-07-2015 19:15:05
Agregar Adendas a Facturas electronicas mexico reypcs Varios 0 20-01-2011 16:26:10
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
Comunicaciones electronicas EDI Toni Conexión con bases de datos 0 18-04-2006 13:06:34
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44


La franja horaria es GMT +2. Ahora son las 23:21:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi