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

4 réponses
Avatar
courdi95
Bonjour,

Cela fait deux jours que je me bats contre Windev et que j'essaye de
cr=E9er 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=E9 la description dans Windev ("Descriptions XML"), et j'ai
cr=E9e un tout petit programme .... Il est tr=E8s simple (voir dans le
protocole de reproduction).

Les premieres instructions fonctionnent tr=E8s bien et je peux constater
dans le d=E9buggeur que la structure GPX se construit bien.

Toutefois arriv=E9 =E0 l'instruction :

fichier_GPX.gpx.rte[1].rtept[1]:lat =3D "49"

j'ai un plantage : "L"attribut lat n'existe pas" .... alors qu'elle
figure clairement dans le sch=E9ma sous "rtept" ... que se passe-t-
il ??????

Cordialement.


=3D=3D=3D=3D=3D=3D=3D=3D=3D Programme de cr=E9ation du GPX =3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D

fichier_GPX est un xmlDocument <description=3D"GPX_1_0_schema">

fichier_GPX.gpx.author =3D "Moi"
fichier_GPX.gpx.desc =3D "ma route"
fichier_GPX.gpx:creator =3D "encore moi"

// route
fichier_GPX.gpx.rte[1].desc =3D "premiere route"
fichier_GPX.gpx.rte[1].cmt =3D "essai"

// point de la route
fichier_GPX.gpx.rte[1].rtept[1]:lat =3D "49"
fichier_GPX.gpx.rte[1].rtept[1]:lon =3D "2"
fichier_GPX.gpx.rte[1].rtept[1].ele =3D "20"

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D

4 réponses

Avatar
JeAn-PhI
Après mûre réflexion, courdi95 a écrit :
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"

===========================


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
Avatar
Patrick Girard
Bonjour

c'est bizarre, pourquoi "lat" et "lon" sont précédés de ":" et "ele" de
"." ??

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"



si ça peut aider...

Le 30/06/2011 10:22, courdi95 a écrit :
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"

============================
Avatar
courdi95
Quelques remarques et réponses provisoires :

- 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 wrote:
Bonjour

c'est bizarre, pourquoi "lat" et "lon" sont précédés de ":" et "ele " de
"." ??

 > 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"

si ça peut aider...

Le 30/06/2011 10:22, courdi95 a écrit :



> 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 fourni e
> 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 constate r
> 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"

> ======================= =====
Avatar
JeAn-PhI
Dans son message précédent, courdi95 a écrit :
Quelques remarques et réponses provisoires :

- 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.






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