PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2025 → Génération d'un fichier XML avec xmlDocument
Génération d'un fichier XML avec xmlDocument
Started by afed, Mar., 05 2026 10:07 AM - 5 replies
Registered member
3 messages
Posted on March, 05 2026 - 10:07 AM
Bonjour,

Je suis actuellement en train de générer un fichier xml à l'aide de l'objet XML et j'ai plusieurs questions auxquelles je ne trouve pas de réponse dans la documentation.

J'utilise l'objet WL XMLDocument auquel je passe en description un fichier XML de formatage.

Question 1 : Le fichier XML de formatage utilise des préfixes pour chaque balise, par exemple <cbc:ProfileID>. Quand j'utilise l'objet windev, il ignore le préfixe dans l'autocomplete et dans le code généré : <cbc:ProfileId> devient simplement <ProfileId>. Comment faire pour qu'il prenne les préfixes en compte ?

Question 2 : Certaines balises ont des attributs (<balise attr="bob">Ross</balise>). J'ai vu l'existence de l'objet xmlAttribut mais je ne vois pas comment ajouter cet xmlAttribut à une balise. Comment faire ?

Merci d'avance
Registered member
2,310 messages
Posted on March, 05 2026 - 4:35 PM
Bonjour,

C'est quoi l"objet WL XMLDocument" ?

--
Bon dev,
Jean-Pierre
Registered member
3 messages
Posted on March, 06 2026 - 8:31 AM
Jean-Pierre BLOCH a écrit :
Bonjour,

C'est quoi l"objet WL XMLDocument" ?

--
Bon dev,
Jean-Pierre

https://doc.pcsoft.fr/fr-FR/?1000018782&name=xmldocument_type_variable
Registered member
2,310 messages
Posted on March, 06 2026 - 8:48 AM
afed a écrit :
Jean-Pierre BLOCH a écrit :
Bonjour,

C'est quoi l"objet WL XMLDocument" ?

--
Bon dev,
Jean-Pierre

https://doc.pcsoft.fr/fr-FR/?1000018782&name=xmldocument_type_variable


En fait, ce qui m'a dérouté c'est l'expression "objet WL" : XMLDocument est une variable et non pas un objet.
Mais je ne comprends toujours pas ton problème. Il serait préférable que tu montres ton code (entre balises WLangage)

--
Bon dev,
Jean-Pierre
Registered member
3 messages
Posted on March, 06 2026 - 11:05 AM
Voilà le code WL :
doc est un xmlDocument,Description="UC1-F1-FULL-formatUBL-Invoice"
attr est un xmlAttribut
attr.Nom = "bob"
attr = "Ross"
doc.Invoice.cbc:CustomizationID = "Test Custom ID"
doc.Invoice.ProfileID = "bobId"
doc.Invoice.ID = "UC1_20260101_F"
doc.Invoice.IssueDate = DateVersChaîne(DateSys(), "AAAAMMJJ")
doc.Invoice.Note[1] = "test"
doc.Invoice.Note[2] = "test2"

XMLSauve(doc, fRepExe()/"facture.xml",XMLMiseEnForme)


Le fichier XML ressemble à ça (tronqué):
<?xml version="1.0" encoding="utf-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2">
<cbc:CustomizationID>urn.cpro.gouv.fr:1p0:einvoicingextract#Full</cbc:CustomizationID>
<!-- BT-24 : Type de profil (e-invoicing, e-reporting, facture etc..) -->
<cbc:ProfileID>S1</cbc:ProfileID>
<!-- BT-23 : Cadre de facturation -->
<!-- Facture de prestation de service -->
<cbc:ID>UC1_2023001_F</cbc:ID>
<!-- BT-1 : Numéro de facture -->
<cbc:IssueDate>2023-01-01</cbc:IssueDate>
<!-- BT-2 : Date d'émission -->
<cbc:DueDate>2023-01-30</cbc:DueDate>
<!-- BT-9 : Date d'échéance -->
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<!-- BT-3 : Code de type de facture -->
<cbc:Note>#REG#FOURNISSEUR F SARL au capital de 50 000 EUR</cbc:Note>
<!-- BG-1 : Note de facture -->
<cbc:Note>#PMD#<!-- BT-21 : Code du sujet de la note de facture -->Tout retard de paiement engendre une pénalité exigible à compter de la date d'échéance, calculée sur la base de trois fois le taux d'intérêt légal.</cbc:Note>
<!-- BT-22 : Note de facture -->
<cbc:Note>#PMT#Indemnité forfaitaire pour frais de recouvrement en cas de retard de paiement : 40 €.</cbc:Note>
<cbc:Note>#AAB#Les réglements reçus avant la date d'échéance ne donneront pas lieu à escompte.</cbc:Note>
<cbc:Note>#ABL#RCS PARIS 987 654 324 - NAF xxxxx</cbc:Note>
<cbc:Note>#AAI#Mon adresse dans ma ville - contact@moifournisseur.fr - www.moifournisseur.com</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<!-- BT-5 : Code devise facture -->
<cac:InvoicePeriod>
<!-- BG-14 - Période de facturation -->
<cbc:StartDate>2023-01-01</cbc:StartDate>
<!-- BT-73 : Date de début de la période de facturation -->
<cbc:EndDate>2023-01-31</cbc:EndDate>
<!-- BT-74 : Date de fin de la période de facturation -->
<cbc:DescriptionCode>432</cbc:DescriptionCode>
<!-- BT-8 : Code -->
</cac:InvoicePeriod>
<cac:AccountingSupplierParty>
<!-- BG-4 : Vendeur -->
<cac:Party>
<cac:PostalAddress>
<!-- BG-5 : Adresse postal du vendeur -->
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
<!-- BT-40 : Code de pays du vendeur -->
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>FR88100000009</cbc:CompanyID>
<!-- BT-31 : Identifiant à la TVA du vendeur -->
<cac:TaxScheme>
<!-- BT-31-0 : Qualifiant d'Identifiant à la TVA du Vendeur -->
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:CompanyID schemeID="0002">100000009</cbc:CompanyID>
<!-- BT-30 : SIREN -->
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
</Invoice>


Mes deux soucis sont donc l'ensemble de préfixes "cbc" ou "cac" devant chaque nom de balise, ainsi que la gestion des attributs.
Pour ce qui est du code WL : la ligne doc.Invoice.cbc:CustomizationID était un test, le ":" est converti en espace dans le fichier final.


Dans au pire, j'ai toujours l'option de faire de la manipulation de chaine, mais ça serait bien si je pouvais éviter.
Registered member
185 messages
Posted on March, 06 2026 - 11:14 AM
Bonjour,

J'ai essayé également de construire un xml au départ du xsd en utilisant une variable xml de windev
Tout fonctionne SAUF qu'à la génération du xml les valeurs cbc, cac etc étaient effacées.
Dommage, c'était bien pratique d'avoir droit à la complétion.

Du coup, j'ai du construire le document xml à la main.
Je me suis inspiré de https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/273040-facture-electronique-peppol/read.awp
C'est plus long mais ça permet de garder le format des balises

Cordialement,

--
Pierre