[WD16] problème lors de la création de XML à partir d'un XSD
Le
courdi95

Bonjour,
Cela fait deux jours que je me bats contre Windev et que j'essaye de
créer un fichier GPX (format 1.0) dont le description .xsd est fournie
ici : http://www.topografix.com/GPX/1/0/gpx.xsd
J'ai importé la description dans Windev ("Descriptions XML"), et j'ai
crée un tout petit programme . Il est très simple (voir dans le
protocole de reproduction).
Les premieres instructions fonctionnent très bien et je peux constater
dans le débuggeur que la structure GPX se construit bien.
Toutefois arrivé à l'instruction :
fichier_GPX.gpx.rte[1].rtept[1]:lat = "49"
j'ai un plantage : "L"attribut lat n'existe pas" . alors qu'elle
figure clairement dans le schéma sous "rtept" que se passe-t-
il ??????
Cordialement.
Programme de création du GPX
=
fichier_GPX est un xmlDocument <description="GPX_1_0_schema">
fichier_GPX.gpx.author = "Moi"
fichier_GPX.gpx.desc = "ma route"
fichier_GPX.gpx:creator = "encore moi"
// route
fichier_GPX.gpx.rte[1].desc = "premiere route"
fichier_GPX.gpx.rte[1].cmt = "essai"
// point de la route
fichier_GPX.gpx.rte[1].rtept[1]:lat = "49"
fichier_GPX.gpx.rte[1].rtept[1]:lon = "2"
fichier_GPX.gpx.rte[1].rtept[1].ele = "20"
==
Cela fait deux jours que je me bats contre Windev et que j'essaye de
créer un fichier GPX (format 1.0) dont le description .xsd est fournie
ici : http://www.topografix.com/GPX/1/0/gpx.xsd
J'ai importé la description dans Windev ("Descriptions XML"), et j'ai
crée un tout petit programme . Il est très simple (voir dans le
protocole de reproduction).
Les premieres instructions fonctionnent très bien et je peux constater
dans le débuggeur que la structure GPX se construit bien.
Toutefois arrivé à l'instruction :
fichier_GPX.gpx.rte[1].rtept[1]:lat = "49"
j'ai un plantage : "L"attribut lat n'existe pas" . alors qu'elle
figure clairement dans le schéma sous "rtept" que se passe-t-
il ??????
Cordialement.
Programme de création du GPX
=
fichier_GPX est un xmlDocument <description="GPX_1_0_schema">
fichier_GPX.gpx.author = "Moi"
fichier_GPX.gpx.desc = "ma route"
fichier_GPX.gpx:creator = "encore moi"
// route
fichier_GPX.gpx.rte[1].desc = "premiere route"
fichier_GPX.gpx.rte[1].cmt = "essai"
// point de la route
fichier_GPX.gpx.rte[1].rtept[1]:lat = "49"
fichier_GPX.gpx.rte[1].rtept[1]:lon = "2"
fichier_GPX.gpx.rte[1].rtept[1].ele = "20"
==
en regardant l'exemple de l'aide xmlDocument (Type de variable), la
création des noeuds n'a pas l'air d'être automatique
exemple extrait de l'aide :
// Création d'une variable XML
xmlFacture est un XMLDocument,Description="Modele_Facture"
// Note : ,description="Modele_Facture" est optionnel.
// Cette notation permet d'avoir une aide à la saisie si un fichier XML
exemple a été importé
xmlUnNoeud est un xmlNoeud
// Création de la racine (car la création automatique se fait
uniquement à un niveau)
xmlUnNoeud..Nom="LISTE_DE_FACTURES"
Ajoute(xmlFacture,xmlUnNoeud)
// ----Création d'une nouvelle facture
xmlUnNoeud..Nom="FACTURE"
Ajoute(xmlFacture.LISTE_DE_FACTURES,xmlUnNoeud)
// Création des éléments de la facture
xmlFacture.LISTE_DE_FACTURES.FACTURE[1].Numéro=1
xmlFacture.LISTE_DE_FACTURES.FACTURE[1].TOTAL2.6
xmlFacture.LISTE_DE_FACTURES.FACTURE[1].TVA.6
// Création d'une nouvelle ligne de facture
xmlUnNoeud..Nom="LIGNE_FACTURE"
Ajoute(xmlFacture.LISTE_DE_FACTURES.FACTURE[1],xmlUnNoeud)
xmlFacture.LISTE_DE_FACTURES.FACTURE[1].LIGNE_FACTURE[1].Description="Description
ligne 1 facture 1"
xmlFacture.LISTE_DE_FACTURES.FACTURE[1].LIGNE_FACTURE[1].MONTANT„.25
// Création d'une nouvelle ligne de facture
xmlUnNoeud..Nom="LIGNE_FACTURE"
Ajoute(xmlFacture.LISTE_DE_FACTURES.FACTURE[1],xmlUnNoeud)
xmlFacture.LISTE_DE_FACTURES.FACTURE[1].LIGNE_FACTURE[2].Description="Description
ligne 2 facture 1"
xmlFacture.LISTE_DE_FACTURES.FACTURE[1].LIGNE_FACTURE[2].MONTANTˆ.35
//----Création d'une nouvelle facture
xmlUnNoeud..Nom="FACTURE"
Ajoute(xmlFacture.LISTE_DE_FACTURES,xmlUnNoeud)
// Création des éléments de la facture
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].Numéro=2
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].TOTAL"5.65
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].TVA=5.5
// --Création d'une nouvelle ligne de facture
xmlUnNoeud..Nom="LIGNE_FACTURE"
Ajoute(xmlFacture.LISTE_DE_FACTURES.FACTURE[2],xmlUnNoeud)
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].LIGNE_FACTURE[1].Description="Description
ligne 1 facture 2"
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].LIGNE_FACTURE[1].MONTANTR.35
// --Création d'une nouvelle ligne de facture
xmlUnNoeud..Nom="LIGNE_FACTURE"
Ajoute(xmlFacture.LISTE_DE_FACTURES.FACTURE[2],xmlUnNoeud)
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].LIGNE_FACTURE[2].Description="Description
ligne 2 facture 2"
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].LIGNE_FACTURE[2].MONTANT.45
// --Création d'une nouvelle ligne de facture
xmlUnNoeud..Nom="LIGNE_FACTURE"
Ajoute(xmlFacture.LISTE_DE_FACTURES.FACTURE[2],xmlUnNoeud)
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].LIGNE_FACTURE[3].Description="Description
ligne 3 facture 2"
xmlFacture.LISTE_DE_FACTURES.FACTURE[2].LIGNE_FACTURE[3].MONTANT8.85
// Chaîne résultat
Info(XMLConstruitChaîne(xmlFacture))
// ou
XMLSauve(xmlFacture,SysRep(srMesDocuments)+[""]+"Liste_Factures.xml",XMLDocumentDéfaut)
--
Cordialement JeAn-PhI
c'est bizarre, pourquoi "lat" et "lon" sont précédés de ":" et "ele" de
"." ??
si ça peut aider...
Le 30/06/2011 10:22, courdi95 a écrit :
- l'intérêt d'un .XSD c'est justement de ne pas avoir à créér à la
main les noeuds ....
- . ou : .... c'est justement WINDEV qui les mets lui-même, en
fonction de la description du XSD (suivant si c'est un attribut ou un
noeud fils qui est prévu dans le XSD)
- j'ai eu une réponse du support gratuit hier soir : comme je m'y
attendais, c'est visiblement un bug .... donc wait and see ...
- j'ai fait le même type d'essai avec la version officielle GPX
1.1 ... la création se fait (on va plus loin dans la création du GPX/
XML en mémoire, mais dans le XMLSauve, il y a plantage si on laisse
l'option de vérification du XML).
Bon, il y a du boulot pour PCSOFT pour améliorer tout cela.
On 30 juin, 17:01, Patrick Girard
j'utilise depuis longtemps les fonction XMLAjoute() et autres et je
n'ai jamais eu de pb, certes c'est contraignant mais cela fonctionne
tout le temps
--
Cordialement JeAn-PhI