|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
| 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 |
| |
| |
| | | |
|
| | |
| |
Registered member 2,310 messages |
|
| Posted on March, 06 2026 - 8:48 AM |
afed a écrit :
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 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|