Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Nomeclatura de Nodos en XML (https://www.clubdelphi.com/foros/showthread.php?t=86064)

olbeup 12-06-2014 14:03:43

Nomeclatura de Nodos en XML
 
Hola Compañeros,

Cuando pongo en el encabezado "fe:facturae" del XML, el resto de los nodos me añade el "fe:" en todo, ejemplo:
Código Delphi [-]
...
begin
  XMLInit := TXMLDocument.Create(nil);
    XMLInit.Active := True;
    XMLInit.Version := '1.0';
    XMLInit.Encoding := 'UTF-8';
    XMLInit.StandAlone := 'yes';
    XMLInit.NodeIndentStr := '  ';
    XMLInit.Options := XMLInit.Options + [doNodeAutoIndent];

    // Creación del ficehro XML
    XMLMain := XMLInit.AddChild('fe:Facturae');
      XMLMain.Attributes['xmlns:ds'] := 'http://www.w3.org/2000/09/xmldsig#';
      XMLMain.Attributes['xmlns:fe'] := 'http://www.facturae.es/Facturae/2009/v3.2/Facturae';

    // Cabecera 
    // -----------------------------
    XMLFileHeader := XMLMain.AddChild('FileHeader');
      TextXML := XMLFileHeader.AddChild('SchemaVersion');
        TextXML.Text := '3.2';
      TextXML := XMLFileHeader.AddChild('Modality');
        TextXML.Text := 'I';
      TextXML := XMLFileHeader.AddChild('InvoiceIssuerType');
        TextXML.Text := 'EM';
...
...
  XMLInit.SaveToFile('C:\PruebasXML\MyXMLFactura-e.xml');
end;
y cuando lo abro, aparece:
Código:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<fe:Facturae xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:fe="http://www.facturae.es/Facturae/2009/v3.2/Facturae">
  <fe:FileHeader>
    <fe:SchemaVersion>3.2</fe:SchemaVersion>
    <fe:Modality>I</fe:Modality>
    <fe:InvoiceIssuerType>EM</fe:InvoiceIssuerType>
  ...
  ...

Como puede eviar que aparezca el "fe:" en todos los nodos, solo lo quiero al principio y al final.

Un saludo.

Al González 12-06-2014 17:39:24

Hola, no suelo trabajar con TXMLDocument, pero intentaré ayudar. :)

Tampoco sé qué es "facturae", pero pareciera que FileHeader, SchemaVersion, Modality e InvoiceIssuerType son elementos que pertenecen al mismo espacio de nombres que el elemento principal, Facturae, por tanto es correcto que lleven también el prefijo "fe".

En caso de que no fueran elementos del mismo espacio de nombres, habría que indicar a qué espacio pertenecen como segundo parámetro de AddChild, o simplemente cadena vacía:
Código Delphi [-]
XMLFileHeader := XMLMain.AddChild('FileHeader', '');
Esto es lo que dice la ayuda de Delphi respecto al método AddChild (remarco la causa de lo que obtuviste):
Cita:

Adds a new child node to this node.

Delphi syntax:

function AddChild(const TagName, NamespaceURI: DOMString; GenPrefix: Boolean = False; Index: Integer = -1): IXMLNode; overload;

function AddChild(const TagName: DOMString; Index: Integer = -1): IXMLNode; overload;

Description

AddChild creates a new element node as the child of this node.

TagName provides the tag name of the newly created node.

NamespaceURI identifies the namespace that includes the new node’s definition. If NamespaceURI is omitted (the second syntax), the namespace of the new node is deduced from the namespace prefix of TagName. If TagName has no namespace prefix and there is no NamespaceURI parameter, the namespace is the same as this node’s NamespaceURI property.

GenPrefix controls whether AddChild generates a namespace prefix for the namespace URI when the NamespaceURI parameter identifies a URI that is not already declared in the document. Note that setting GenPrefix to true does not cause AddChild to add a declaration of the new namespace prefix unless the document’s Options property includes doNamespaceDecl.

Index indicates the position of the child node in this node’s list of children, where 0 is the first position, 1 is the second position, and so on. If Index is –1, the new node is added to the end.

AddChild returns the interface for the newly created child node.

Tip: AddChild only adds element nodes. To add other types of child nodes, use the XML document’s CreateNode method instead, and then add the resulting node to the ChildNodes property array.
Saludos.

olbeup 12-06-2014 20:47:57

Hola Al González

La facturae, es para la facturación electrónica de la comunidad valenciana que empieza el año que viene y, que ya sólo se podrá facturar electronicamente con ficheros XML.

Lo probare cuando llegue a la empresa.

Un saludo

P.D.. Ya te cuento si funciona.

Casimiro Notevi 12-06-2014 22:07:26

Cita:

Empezado por olbeup (Mensaje 477732)
Hola

Por favor, no olvides poner títulos descriptivos a tus preguntas, gracias. :rolleyes:

olbeup 13-06-2014 09:19:38

Cita:

Empezado por Casimiro Notevi (Mensaje 477737)
Por favor, no olvides poner títulos descriptivos a tus preguntas, gracias. :rolleyes:

Hola Casimiro,

Si es verdad, pero estaba ya cansado de buscar por facturae que lo puse en el título, perdón.

Un saludo.

Casimiro Notevi 13-06-2014 09:23:00

Ahora tendrás que escribir cien veces:
"Escribiré siempre títulos descriptivos", "Escribiré siempre títulos descriptivos", "Escribiré siempre títulos descriptivos",...

:p:)

olbeup 13-06-2014 09:40:28

Cita:

Empezado por Al González (Mensaje 477717)
Hola, no suelo trabajar con TXMLDocument, pero intentaré ayudar. :)

Tampoco sé qué es "facturae", pero pareciera que FileHeader, SchemaVersion, Modality e InvoiceIssuerType son elementos que pertenecen al mismo espacio de nombres que el elemento principal, Facturae, por tanto es correcto que lleven también el prefijo "fe".

En caso de que no fueran elementos del mismo espacio de nombres, habría que indicar a qué espacio pertenecen como segundo parámetro de AddChild, o simplemente cadena vacía:
Código Delphi [-]
XMLFileHeader := XMLMain.AddChild('FileHeader', '');
Esto es lo que dice la ayuda de Delphi respecto al método AddChild (remarco la causa de lo que obtuviste):

Saludos.

Hola Al González,

Efectivamente has dado con la tela.

Mil gracias.

Un saludo.

olbeup 13-06-2014 09:41:43

Factura digital "facturae" en XML de la comunidad valenciana
 
Cita:

Empezado por Casimiro Notevi (Mensaje 477760)
Ahora tendrás que escribir cien veces:
"Escribiré siempre títulos descriptivos", "Escribiré siempre títulos descriptivos", "Escribiré siempre títulos descriptivos",...

:p:)

Si profe. :o:p:D

Un saludo

asanchezdbs 11-01-2015 19:55:03

Factura Electronica 3.2.1
 
Hola

He visto que estas implementando Facturae 3.2.1

Tienes aguna librería o funciona para realizar dicha implementación?

olbeup 12-01-2015 09:17:49

Cita:

Empezado por asanchezdbs (Mensaje 487552)
Hola

He visto que estas implementando Facturae 3.2.1

Tienes aguna librería o funciona para realizar dicha implementación?

Hola asanchezdbs,

Bien venido al club delphi,

No se si hay librería para hacer la factura electrónica de la comunidad valenciana, yo lo he realizado a pelo y según la normativa de la facturae y leyendo mucho.

Visita la página oficial http://www.facturae.gob.es, www.ge-factura.es
Después tienes que hacerte un acceso de entorno de prueba.
Yo lo que he hecho es bajarme el programa de ge-factura he realizado una factura en el programa oficial y después lo he exportado a un fichero .xml y he visto su estructura he realizado el software necesario para adaptado a mi programa.

Un saludo.

Casimiro Notevi 12-01-2015 09:42:11

Por cierto, "facturación electrónica ¿valenciana?", ¿Valencia tiene una facturación electrónica? ¿Eso cómo es?

olbeup 12-01-2015 14:55:23

Cita:

Empezado por Casimiro Notevi (Mensaje 487562)
Por cierto, "facturación electrónica ¿valenciana?", ¿Valencia tiene una facturación electrónica? ¿Eso cómo es?

Hola Casimiro,

Según en que comunidad estés, ya hay que presentar las facturas electrónicamente por Internet en formato .XML, en el caso de la comunidad valenciana había que presentar la factura electrónica desde septiembre del año pasado, puedes aún hacerlo en papel, pero creo que está penalizado con una quita del importe de la factura, a no ser que hayan ampliado la fecha.

Mi empresa se dedica al sector del transporte de colegios de la comunidad valenciana y las facturas se presentan vía Internet en formato .XML.

Un saludo.

asanchezdbs 13-01-2015 13:55:02

Factura Electronica
 
Hola.

Te importaría faciliar el código de tu implementación?

Gracias...:)

newtron 16-01-2015 18:44:51

Amigo olbeup.

¿Al final conseguiste implementar el tema de la factura electrónica compatible con "facturae"?.

Saludos

olbeup 19-01-2015 11:13:56

Cita:

Empezado por newtron (Mensaje 487743)
Amigo olbeup.

¿Al final conseguiste implementar el tema de la factura electrónica compatible con "facturae"?.

Saludos

Ya lo hice en su momento (Msg 10), pero tengo que hacerlo mas pequeño y en un componente.
Si te has quedado por alguna parte, te puedo echar una mano.

Un saludo.

newtron 19-01-2015 11:45:20

Pues si, el fichero XML lo genero sin problemas pero la verdad es que hay temas en los que estoy un poco perdido:

- En el programa "facturae" para crear un nuevo receptor se abre una ventana que te pregunta si quieres crear un receptor dado de alta en el servicio de recepción de facturas FACe y cuando le dices que si te sale un mensaje que pone que para conectarse con FACe hay que rellenar la configuración asociada, ¿qué configuración es esa y qué hay que poner?.

- ¿Cómo firmas el fichero XML que generas? ¿con la dll AEATFACT.DLL o de otra manera?

- ¿Una vez firmado el fichero XML cómo lo envías?

- ¿Por qué el coyote nunca pilla al correcaminos? :D

Gracias y un saludo

olbeup 19-01-2015 12:39:59

Cita:

Empezado por newtron (Mensaje 487824)
Pues si, el fichero XML lo genero sin problemas pero la verdad es que hay temas en los que estoy un poco perdido:

- En el programa "facturae" para crear un nuevo receptor se abre una ventana que te pregunta si quieres crear un receptor dado de alta en el servicio de recepción de facturas FACe y cuando le dices que si te sale un mensaje que pone que para conectarse con FACe hay que rellenar la configuración asociada, ¿qué configuración es esa y qué hay que poner?.

- ¿Cómo firmas el fichero XML que generas? ¿con la dll AEATFACT.DLL o de otra manera?

- ¿Una vez firmado el fichero XML cómo lo envías?

- ¿Por qué el coyote nunca pilla al correcaminos? :D

Gracias y un saludo

Cita:

En el programa "facturae" para crear un nuevo receptor
El receptor lo tiene que haber creado el organismo publico dándole un código a ese receptor el cual te lo dará a ti.

Cita:

- ¿Cómo firmas el fichero XML que generas? ¿con la dll AEATFACT.DLL o de otra manera?

- ¿Una vez firmado el fichero XML cómo lo envías?
De momento no la firmo y la envío directamente desde la pagina FACe la importo y se envía, si la tengo que firmar desde ahí se firma.

Un saludo.

newtron 19-01-2015 13:13:41

Cita:

Empezado por olbeup (Mensaje 487831)
El receptor lo tiene que haber creado el organismo publico dándole un código a ese receptor el cual te lo dará a ti.

¿Ese código al que te refieres son los que te pregunta en el programa como "Organo gestor" "Unidad tramitadora" y "Oficina contable" o es otro?

olbeup 20-01-2015 09:49:41

Cita:

Empezado por newtron (Mensaje 487835)
¿Ese código al que te refieres son los que te pregunta en el programa como "Organo gestor" "Unidad tramitadora" y "Oficina contable" o es otro?

Correcto, esta en el lado derecho donde pone creo "receptor", yo tengo un código que me han enviado al que le tengo que facturar y ese código empieza por "G09xxxx" que la G es de Genaritat

Ya no tengo acceso a la plataforma, ya se encarga otro de la facturación electrónica.

En su momento nos dieron una clave de acceso temporal para hacer pruebas y al pasar a la definitiva la clave temporal que tenia ya no funciona.

Envía la pantalla donde te pide la parte del receptor.

Un saludo.

newtron 20-01-2015 10:16:14

Hola de nuevo.

Aquí está la pantalla con los datos que me pide

http://subefotos.com/ver/?c31c158768...2bf6f3dd0o.jpg

No deja escribir directamente. Me he dado de alta como proveedor y he puesto los datos en la configuración y cuando pulso el lápiz para consultar los posibles valores se me queda pillado en una pantalla que pone.."consultando a FACe".

Saludos


La franja horaria es GMT +2. Ahora son las 23:48:18.

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