PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → problème création xml avec xmlDocument
problème création xml avec xmlDocument
Débuté par Marjolaine, 12 mar. 2018 15:14 - 4 réponses
Membre enregistré
8 messages
Posté le 12 mars 2018 - 15:14
Bonjour à tous,
J'essaye de créer un fichier xml selon un template précis.
Le template ressemble à ceci:
<?xml version='1.0' encoding='UTF-8'?>
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>bla</cbc:CustomizationID>
<cbc:ProfileID>urn:www.cenbii.eu:profile:bii05:ver2.0</cbc:ProfileID>
<cbc:ID>FACT-160004</cbc:ID>
<cbc:IssueDate>2016-01-01</cbc:IssueDate>
<cbc:InvoiceTypeCode listID="UNCL1001">380</cbc:InvoiceTypeCode>
<cbc:Note>efff testcase4</cbc:Note>
<cbc:TaxPointDate>2016-01-01</cbc:TaxPointDate>
<cbc:DocumentCurrencyCode listID="ISO4217">EUR</cbc:DocumentCurrencyCode>
<cac:AdditionalDocumentReference>
<cbc:ID>test_case_4.pdf</cbc:ID>
<cbc:DocumentType>CommercialInvoice</cbc:DocumentType>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf">blabla</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>
//etc....


J'ai donc ajouté mon template dans les descriptions XML et XSD (au format .xml, le site avec qui je dois communiquer ne fournissant pas de .xsd)

Je parcours et remplis ensuite mon xml
fichierXML est un xmlDocument, Description=Fichier_XML
nNameSpace est un xmlNamespace
nNameSpace1 est un xmlNamespace
nNameSpace2 est un xmlNamespace
nNoeud est un xmlNoeud dynamique
nNoeud=fichierXML.Invoice

nNameSpace..Nom="cac"
nNameSpace..URI="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
Ajoute(nNoeud..NamespaceDéclaré,nNameSpace)
nNameSpace1..Nom="cbc"
nNameSpace1..URI="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
Ajoute(nNoeud..NamespaceDéclaré,nNameSpace1)
nNameSpace2..Nom=""
nNameSpace2..URI="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
Ajoute(nNoeud..NamespaceDéclaré,nNameSpace2)

fichierXML.Invoice.UBLVersionID="2.1"
fichierXML.Invoice.CustomizationID="urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:e-fff:ver3.0"
fichierXML.Invoice.ProfileID="urn:www.cenbii.eu:profile:bii05:ver2.0"
fichierXML.Invoice.ID=sNomFichier
fichierXML.Invoice.IssueDate=DateVersChaîne(DateDuJour(),"AAAA-MM-JJ")
fichierXML.Invoice.InvoiceTypeCode..Attribut["listID"]="ISO4217"
fichierXML.Invoice.InvoiceTypeCode="380"

//etc...

Le fichier xml est bien généré, les nœuds bien remplis et bien attribué MAIS il manque tous les cbc: et cac: en début de chaque balise....
Ils sont pourtant dans le template....
Est ce que quelqu'un a une idée de comment les ajouter?
Sinon je vais devoir tout faire en chaine et ça ne me parait un peu absurde alors qu'on a cet beau xmlDocument
Membre enregistré
87 messages
Posté le 21 mars 2019 - 11:18
Bonjour,

Je répond tardivement mais cela pourra toujours servir à d'autres.
J'ai moi aussi été confronté à cette problématique et l'ai traité de la sorte:

Le code correspond au fichier "FSO1100A__IN_DP_E1_UBL_INVOICE.xml" (flux structuré E1, UBL Invoice 2.1) récupéré sur le site de la communauté CHORUS.
Ce fichier est importé dans "Descriptions XML et XSD".
Détail sur le contenu du fichier: http://www.datypic.com/sc/ubl21/e-ns39_Invoice.html




En partant du principe que "Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice" est la déclaration de votre nœud Invoice

xxx est un xmlNoeud,Description="FSO1100A__IN_DP_E1_UBL_INVOICE.Invoice"




Pour l'entête du fichier

//...
nNameSpace est un xmlNamespace

//...

VariableRAZ(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice)
AVEC Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice
//-------------------------------------------------------
//ENTETE INVOICE
//-------------------------------------------------------
nNameSpace.Nom ="qdt"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="ccts"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="stat"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="cbc"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="cac"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="udt"
nNameSpace.URI ="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom =""
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="cec"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="aife"
nNameSpace.URI ="urn:AIFE:Facture:Extension"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)
//-------------------------------------------------------

//...suite de votre construction du XML...

FIN


--

NR
Posté le 13 novembre 2020 - 09:11
Bonjour Marjolaine,

As-tu trouvée une solution pour les "cbc" en début de chaque balise

Un grand merci d'avance pour ton aide
Jean
Membre enregistré
191 messages
Posté le 27 février 2023 - 07:24
Bonjour

Avez-vous eu toutes les informations nécessaires et avez-vous pu exporter ces fichiers XML ?

Je serais intéressé par votre programmation...

Bàv,

--
Jean-Yves Thiry
Informatique et Gestion
Membre enregistré
191 messages
Posté le 27 février 2023 - 13:45
Nicolas ROBIN a écrit :
Bonjour,

Je répond tardivement mais cela pourra toujours servir à d'autres.
J'ai moi aussi été confronté à cette problématique et l'ai traité de la sorte:

Le code correspond au fichier "FSO1100A__IN_DP_E1_UBL_INVOICE.xml" (flux structuré E1, UBL Invoice 2.1) récupéré sur le site de la communauté CHORUS.
Ce fichier est importé dans "Descriptions XML et XSD".
Détail sur le contenu du fichier: http://www.datypic.com/sc/ubl21/e-ns39_Invoice.html




En partant du principe que "Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice" est la déclaration de votre nœud Invoice

xxx est un xmlNoeud,Description="FSO1100A__IN_DP_E1_UBL_INVOICE.Invoice"




Pour l'entête du fichier

//...
nNameSpace est un xmlNamespace

//...

VariableRAZ(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice)
AVEC Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice
//-------------------------------------------------------
//ENTETE INVOICE
//-------------------------------------------------------
nNameSpace.Nom ="qdt"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="ccts"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="stat"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="cbc"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="cac"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="udt"
nNameSpace.URI ="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom =""
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="cec"
nNameSpace.URI ="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)

nNameSpace.Nom ="aife"
nNameSpace.URI ="urn:AIFE:Facture:Extension"
Ajoute(Une_Facture.Flux_XML.MODELE_xmlDocument.Invoice..NamespaceDéclaré,nNameSpace)
//-------------------------------------------------------

//...suite de votre construction du XML...

FIN


--

NR


Bonjour

Pourriez-vous me fournir (contre rémunération) le code complet permettant d'exporter des factures au format XML pour Peppol ?

Bàv,

--
Jean-Yves Thiry
Informatique et Gestion