![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Muy buenas! Increíble que me haya perdido este foro tanto tiempo .. Me siento avergonzado
Como todos vosotros me veo en la necesidad de tratar el tema de la factura electrónica. Quería haceros una pregunta a vosotros que, por lo que veo, vais muy por delante de mi. ¿Habéis usado el fichero xsd de Facturae para generar una clase con el XML Data Binding o lo habéis hecho creando vosotros el XML "a pelo"? Yo, en primera instancia, use el Data Binding y, tras pelearme un poco con él, conseguí generar un XML aparentemente correcto. El problema es en los malditos "namespace" y sus "prefijos".. en vez de ésto: <fe:Facturae xmlns:fe="http...Facturae" xmlns:ds="http...xmldsig#"> yo, obtengo: <Facturae xmlns="http..Facturae"> (nótese la falta del namespace "fe") He conseguido alguna aproximación mejor pero no me convence la manera ya que rompe la filosofía del Data Binding con "apaños".. Alguien sigo el mismo camino que yo y supo resolverlo.. me sería de gran utilidad Muchas gracias por avanzado |
|
#2
|
||||
|
||||
|
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración
![]() Recuerda poner los tags al código fuente, ejemplo: ![]() Gracias ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
|||
|
|||
|
Gracias por la respuesta tan rápida! La verdad es que he el enlace está muy bien.. lo de la web de facturae ya lo tenía visto, por eso.. El contenido del xml lo tengo generado perfectamente. . El problema es básicamente con el elemento Facturae que he posteado antes .. Con la interface que ha generado el Data Binding al generar este nodo no lo hace como es debido y no entiendo exactamente el motivo.. Quizá sea un fallo del Data Binding y entonces optaré por algun "truco" para evitarlo pero me gustaría saber si alguien sabe como conseguirlo sin optar por "apaños"
Muchas gracias una vez más |
|
#5
|
|||
|
|||
|
Hola LITHIUM76,
con el Databinding, si has conseguido generarlo correctamente (ya que el propio de el interprete de xsd delphi no los convierte si tienen referencias externas), lo único que debes haces hacer (o almenos es lo que yo he hecho) ha sido que el nombre del elemento lo he puesto directamente 'fe:Facturae' y el validador del ministerio ha dicho que OK... :-) Yo serialicé el xsd con XSDTool 3.0... pero luego reescribí todos los tipos que necesité manualmente, ya que hacia mas cosas que lo que quería, y la forma que lo hacía no me gustaba... Código:
XMLNode_eFact_32_Facturae = 'fe:Facturae';
XMLNode_eFact_32_FileHeader = 'FileHeader';
XMLNode_eFact_32_SchemaVersion = 'SchemaVersion';
XMLNode_eFact_32_Modality = 'Modality';
XMLNode_eFact_32_InvoiceIssuerType = 'InvoiceIssuerType';
type
TFacturae = class
private
fFileHeader: TFileHeader;
fParties: TParties;
fInvoices: TInvoices;
// fExtensions: TExtensions;
public
constructor Create;
///
function ToXml: IXMLDOMElement;
///
property FileHeader: TFileHeader read fFileHeader write fFileHeader;
property Parties: TParties read fParties write fParties;
property Invoices: TInvoices read fInvoices write fInvoices;
// property fExtensions: TExtensions read fExtensions write fExtensions;
end;
|
|
#6
|
|||
|
|||
|
Muchas gracias iMia
yo también tuve problemas inicialmente con el Data Binding por el import y probé con esa herramienta que mencionas pero no quedé muy contento con el resultado.. Total, que investigando y probando, di con que si descargaba el xsd externo al que hace referencia el del Facturae y lo ponía en el mismo directorio, el Data Binding funcionaba perfectamente. El problema es que todo el XML es perfecto menos el elemento Facturae que sale sin el fe: de las narices . Probé como bien dices poniendo fe:Facturae pero entonces pone el prefijo fe: en todos los elementos del XML y, en consecuencia, el XML no valida. He encontrado algún "apaño" pero me gustaría saber si existe alguna manera elegante de conseguir el prefijo fe solo en elemento y no en sus hijos. No sé si es culpa del DataBinding que no acaba de hacerlo bien del todo o yo que ando algo confundido con mis pocos conocimientos de xml.. se te ocurre alguna cosa? yo ya no sé qué más probar |
|
#7
|
|||
|
|||
|
Lo debe hacer por que propaga el namespace en los nodos hijos. Eso era algo que no me cuadraba y poor eso reescribí los tiposwsin heredar el namespace.
Mira de modificar el tipo tfacturae para que en el create no lo traslade a los tipos contenidos. (Perdon por la redaccion, estoy desde la tablet) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Mexico - Como crear sellos en FACTURA ELECTRONICA.. | pcicom | API de Windows | 12 | 10-11-2012 18:46:55 |
| Factura Electrónica | aig | Varios | 13 | 10-12-2010 17:12:44 |
| factura electronica | spia | Varios | 2 | 22-02-2009 21:30:06 |
| Factura electronica AUNA | Aprendiz | Varios | 5 | 01-09-2005 10:44:15 |
| programa para validar formato de archivo de texto | n3mohack | Varios | 4 | 21-04-2005 00:27:00 |
|