Oups un peu rapide : Bonjour à tous !

Voilà j'ai un prestataire qui me propose un XML pour une liaison entre 2 plateformes en webservice... Je voudrais avoir votre avis sur le format WSDL pour savoir si il est correct...

C'est du style :

<listelivre>
<livre code="string" codecatalogue="string" auteur="string"...>
<editeur></editeur>
<titre></titre>
</livre>
<livre>....
</livre>
</listelivre>


Moi je pense que le plus propre serait plutot :

<listelivre>
<livre>
<code></code>
<codecatalogue></codecatalogue>
<auteur></auteur>
<editeur></editeur>
<titre></titre>
</livre>
<livre>....
</livre>
</listelivre>


Qu'en pensez-vous?
Modifié par Massilia56 (15 Jan 2007 - 10:33)
C'est l'énorme débat élément vs. attributs Smiley decu Moi pour ce genre de trucs j'utilise plutôt des éléments.

Un règle qu'on peut suivre, et que j'aime bien est la suivante : enlève tous les éléments et attributs, et ne garde que le contenu textuel. Maintenant essaye d'avoir en résultat quelque chose d'utilisable.

Genre avec l'XML n°1, si tu ne garde que le contenu, y'a juste l'editeur et le titre qui restent. Le code et l'auteur disparaissent.

Avec le n°2, tout reste, ça peut être mieux.

Les éléments sont plus vus comme du contenu, et les attributs comme des informations sur le contenu. Maintenant y'a pas vraiment de règle écrite, alors on peut faire un peu ce qu'on veut Smiley decu
koala64 a écrit :
Bonjour à toi aussi...

Les deux codes que tu montres sont bien formés... Tout dépend de ce que tu souhaites en faire mais c'est souvent plus une affaire de goût qu'autre chose...

Cette page t'en dira un peu plus :

http://xmlfr.org/listes/xml-tech/2004/10/0072.html


Dans le premier est mélangé les balises et attributs... Je ne trouve vraiment pas ca propre...
Sinon il y a beaucoup de données dans le flux...
FlorentG a écrit :

Les éléments sont plus vus comme du contenu, et les attributs comme des informations sur le contenu. Maintenant y'a pas vraiment de règle écrite, alors on peut faire un peu ce qu'on veut


Je suis entièrement d'accord avec ca. De mon côté je suis plus pour les éléments... Un attribut de livre serait etat="mauvais"
Modérateur
Massilia56 a écrit :
Dans le premier est mélangé les balises et attributs... Je ne trouve vraiment pas ca propre...
En quoi cela n'est-il pas propre ? Les deux documents sont bien formés. Encore une fois, il faut voir le traitement que tu en fait et agir en conséquence; le "j'aime ou je n'aime pas" est hors de propos, pour ne pas dire source de troll. Ici, tu te mets un voile sur les yeux au point d'en oublier les avantages que pourraient te procurer les attributs, ce qui n'est pas la meilleure chose à faire. Lorsque tu te trouves dans un cas où les deux conviennent, alors oui, tu peux faire selon tes préférences... mais pas avant.
Modifié par koala64 (15 Jan 2007 - 13:57)
FlorentG a écrit :

Les éléments sont plus vus comme du contenu, et les attributs comme des informations sur le contenu. Maintenant y'a pas vraiment de règle écrite, alors on peut faire un peu ce qu'on veut Smiley decu


Cela n'est pas toujours vrai : par exemple, en XHTML, voir le cas de l'attribut src pour l'élément vide img... Le src est plus qu'une "information" sur le contenu, c'est le plus important !

En ce qui me concerne, quand j'ai le choix (par exemple, quand le champ considéré est libre et peut contenir n'importe quelle chaîne de caractères), je me demande si l'information véhiculée est courte ou non. S'il s'agit d'un mot, ou bien d'un nom propre par exemple, j'utilise un attribut. Sinon, j'utilise un élément.

J'utilise aussi un élément quand j'anticipe de possibles extensions. Par exemple, dans une bibliographie, je préfèrerais

<ouvrage>
   <type>livre</livre>
   ...
</ouvrage>


à

<ouvrage type="livre">
    ...
</ouvrage>


... car il est possible qu'un jour j'éprouve le besoin de préciser la catégorie de livre (autobiographie, roman, recueil de nouvelles, etc.) Dans ce cas, si j'utilisais un attribut, je serais coincé et obligé d'utiliser quelque chose comme type="livre; roman". Avec un élément, je gagne en souplesse.
koala64 a écrit :
En quoi cela n'est-il pas propre ? Les deux documents sont bien formés. Encore une fois, il faut voir le traitement que tu en fait et agir en conséquence; le "j'aime ou je n'aime pas" est hors de propos, pour ne pas dire source de troll. Ici, tu te mets un voile sur les yeux au point d'en oublier les avantages que pourraient te procurer les attributs, ce qui n'est pas la meilleure chose à faire. Lorsque tu te trouves dans un cas où les deux conviennent, alors oui, tu peux faire selon tes préférences... mais pas avant.

Bien c'est le cas les deux pourrait convenir mais dans le cas ci dessus ils utilisent soit des attributs soit des éléments..... je n'y voit aucun intérêt...
Gilles a écrit :
Cela n'est pas toujours vrai : par exemple, en XHTML, voir le cas de l'attribut src pour l'élément vide img... Le src est plus qu'une "information" sur le contenu, c'est le plus important !

Donc c'est bien ce que je dit, y'a pas vraiment de règles Smiley lol
Bonjour,

Pour trancher, personnellement je me suis crée la petite règle suivante :

Si la valeur est destinée avant tout à un humain (contenu), je crée un élément.
Si la valeur est plutôt destinée à une machine (id, date de modification, etc..), je la range dans un attribut.

Les attributs sont plus faciles d'accès que le contenu des éléments. Effectuer une recherche par auteur dans le second exemple que tu donnes risque d'être assez compliqué.

Et quid de

<auteur id="">
</auteur>
<editeur id="">
</editeur>
<listeLivre>
<livre isbn="" auteur_id="" editeur_id="">
<titre></titre>
</liste>
</listeLivre>


Ce qui évite la redondance d'informations. Smiley biggol
Lanza a écrit :
Si la valeur est destinée avant tout à un humain (contenu), je crée un élément.
Si la valeur est plutôt destinée à une machine (id, date de modification, etc..), je la range dans un attribut.

Voilà, c'est un peu comme ma règle, mais formulée 50 fois mieux Smiley lol