Attribut et élément, quelle différence ?

Voilà,
je débute en Xml, et je craint de ne pas avior bien saisit la différence entre attribut et élément…
Ce que j’ai compris:

  1. Un élément, c’est une brique de base dont le “contenu” doit être unique… (par exemple, le nom d’une personne…)
  2. Un attribut, c’est plutôt quelque chose qui “qualifie” un élement (dans l’exemple de la personne, se pourrait être son age ou son genre… (non, je n’ai pas mis sexe pour éviter des blagues vaseuses…))…
    Quelqu’un pourrait-il m’apporter des précisions là-dessus ?

Bon, on va la refaire.

Un document XML ne  peut contenir qu’un seul élément racine (élément de niveau supérieur), puis plein de sous-éléments, sous-sous-éléments, etc. Donc la brique-mère est unique, et derrière, il y a plein de descendants (comme pour le système de fichiers sous Linux si tu veux avec la root “/” et tout le reste) qui sont pas forcément uniques !

Enfin, pour chaque élément, sont associés (ou non) des attributs (paire nom/valeur) qu’on place dans la balise d’ouverture de l’élément auquel ils s’appliquent.

Exemple :

    [/quote]Ensuite, il y a toute une bataille pour dire si les attributs sont réellement nécessaires car on pourrait les transformer en sous-éléments par exemple, mais on sort du cadre pédagogique pour rentrer dans les guerres de chapelle. [i]Ce message a été édité par xentyr le 17/09/2003[/i]

[quote]Ensuite, il y a toute une bataille pour dire si les attributs sont réellement nécessaires car on pourrait les transformer en sous-éléments par exemple[/quote]Ok, c’est surtout ça qui me posait un problème: je ne voyais pas trop la pertinence des attributs étant donné que l’on peut imbriquer des éléments…
Au moins, je ne suis pas le seul à me poser cette question…

Ben le fait de laisser les 2 possibilités afin de permettre au XML d’être plus simple à utiliser que le SGML semble troubler certains. Tu as donc LE CHOIX de faire ce que tu veux. Ensuite, il y a des questions plus prosaïques pour imposer les attributs quand on le peut, entre autre la bande passante qui est moindre dans ce cas car il n’y a pas d’imbrication. Bref, tu es liiiiiiibre, Max.
Ce message a été édité par xentyr le 18/09/2003

C’est pas vraiment une question de pertinence mais çà dépend de ton information en fait. par exemple, pour une fiche d’identité, pour le sexe par exemple comme tu n’as 36 000 possibilités, vaut mieux que tu le mettes dans un attribut c’est plus simple.

Plutot que :

    male   [/quote]En fait c'est juste une question de style et de libre arbitre, parce que le processeur XML, il s'en fout, pour lui çà reste un noeud. [i]Ce message a été édité par EzecKiel le 17/09/2003[/i] [i]Ce message a été édité par EzecKiel le 17/09/2003[/i]

[quote]Voilà,
je débute en Xml, et je craint de ne pas avior bien saisit la différence entre attribut et élément…
Ce que j’ai compris:

  1. Un élément, c’est une brique de base dont le “contenu” doit être unique… (par exemple, le nom d’une personne…)

Un attribut, c’est plutôt quelque chose qui “qualifie” un élement (dans
l’exemple de la personne, se pourrait être son age ou son genre…
(non, je n’ai pas mis sexe pour éviter des blagues vaseuses…))…
Quelqu’un pourrait-il m’apporter des précisions là-dessus ?[/quote]
Je pense qu’une lecture des specs éclaircirait les choses http://www.w3c.org pour la trouver

Oui non mais il y a les specs et il y a le bon sens. Il y a des choses qui ont un sens en tant qu’element et des choses qui ont plus de sens en tant qu’attribut. Ca reste a l’appreciation de chacun mais un element est tres verbeux donc a utiliser avec parcimonie pour des trucs repetitifs. Il y a a la fois la logique et l”overhead” d’un element entier a considerer pour chaque choix. Un beau schema XML propre a rien de facile a faire et c’est beaucoup d’experience qui compte…

Qu’entends-tu par Overhead ?

[quote]Qu’entends-tu par Overhead ?[/quote]Ben regardes

< personne >
< taille >180< /taille>
< /personne >

et

< personne taille=180 />

t’as economise 22 caracteres pour dire la meme chose. Si t’as 100 000 “personnes” a parser dans un fichier ou a transmettre sur le reseau tu vas vite pleurer. Surtout si tu fais ca avec tout tes attributs. D’un autre cote tout mettre en attribut c’est degueulasse et souvent pas logique. C’est un compromi comme j’ai dit et de l’experience.

[quote]  < sexe>
male
  < /sexe>

En fait c’est juste une question de style et de libre arbitre, parce que le processeur XML, il s’en fout, pour lui çà reste un noeud.[/quote]Y a que moi que ca a fait rire ?

ouiii ?

ok…

HAHAHA J’ai pas pu resister. Desole. Je le ferais plus. Je promet. Pourquoi j’ai jamais l’occase de faire ca qu’avec les messages de count0? C’est limite de l’acharnement la… hehe desole…

[i]Ce message a été édité par GloP le 18/09/2003

Juste pour dire que je reste maitre en mon domaine…
non mais !
[/i]
[i]Ce message a été édité par c0unt0 le 18/09/2003

Je le remet comme c’etait : avec la modif de Glop, c’est moins drole :

  < sexe>
petit
  < /sexe>
(comme quoi on peu etre 0/3r10rd C# et avoir un humour de |/|3rd3 )[/i]
[i]Ce message a été édité par c0unt0 le 18/09/2003

En fait on devrait faire un poste special troll dans chaque thread : et apres on edite dedans…[/i]
Ce message a été édité par c0unt0 le 18/09/2003

[quote]
< taille >180< /taille>

Juste pour aller avec count ca fait bien.

En fait, il s’agit donc plus d’une appréciation personnelle que de règles rigides…
Par conséquent, afin de limiter l’overhead, vaut mieux passer par des attributs plutôt que de faire systématiquement des éléments…
Comme l’a dit Glop, je pense égalemnt que dans ce cas, c’est l’expérience qui joue le plus, à l’instar de la création de base de données où au début on fait des tables qui ne sont pas toujours très pertinente…
En tous cas, merci à tous…

[quote](non, je n’ai pas mis sexe pour éviter des blagues vaseuses…))[/quote]Excuse-moi, tous tes efforts ont été vains…