[XML] Aide à la structuration: graphe

Bonjour j’ai quelquechose (que l’on peut apparenter à une sorte de graphe) à coder en XML.

D’un coté j’ai une legende composée d’un descriptif de sommets (nom/classe) et de l’autre des arcs reliant ces sommets.

J’ai fait une ébauche de document XML de la sorte:


<Graph>
<legende>
  <node>
    <id>1</id>
    <name>VL</name>
    <desc>LCS</desc>
  </node>
  <node>...</node>
</legende>

<edge>
  <source>1</source>
  <target>2</target>
</edge>
<edge>
  <source>2</source>
  <target>4</target>
</edge>

</Graph>

Mais là où je me pose des questions c’est entre mettre des noeuds dans le document xml ou mettre des attributs? Y’a des règles?

Un document comme ça ne conviendrait pas mieux que l’autre?


<Graph>
<legende>
  <node id="1">
    <name>VL</name>
    <desc>LCS</desc>
  </node>
  <node id="2">...</node>
</legende>

<edge source="1" target="2"/>
<edge source="2" target="3"/>

</Graph>

Bref je nage un peu :confused:

Sinon il y a t’il un moyen de vérifier que les id des noeuds cités dans les arcs existent bien? Via dtd ou xsl c’est possible?

J’y connais pas grand chose :frowning:

Merci beaucoup :slight_smile:

C’est vrai que l’ID je le mets généralement en attribut de l’élément mais j’avoue ne pas avoir/connaitre de règle pour aider à la décision.
(Ca m’intéresse)

Personnellement, je préfère les attributs quand c’est petit. C’est plus facile à modifier, et à lire. (enfin souvent)

:slight_smile: Il me semble avoir vu des outils qui préconisait tout en tag (1ere méthode) et zéro attribut de tag.

Moi j’ai tendance à faire le contraire :smiley: tout en attribut :


<Graph>
<legende>
  <node id="1" name="VL" desc= "LCS" />
  <node id="2" name="WL" desc= "MCS" />
</legende>

<edge source="1" target="2"/>
<edge source="2" target="3"/>

</Graph>

comme ça si le fichier doit-être lu ou écrit manuellement, c’est plus lisible et plus court. (les données sont alignées, claires).
Comme les norme évoluent en XML, il faut peut-être pas trop se focaliser sur des préconisations qui n’ont plus forcément lieu d’être.

apr contre c’est sur “edge” que tu peux avoir plus de souplesse:


<edge >
  <node type="source" id="1" />
  <node type="target"  name="WL"/>
</edge>

comme ça tu peux lier tes nodes par id ou par name, et éventuellement en mettre plus de 2 (faire toute une branche)

pour la validation, il me semble que DTD est trop limité, XSL pas forcément adapté, et XSD imbitable et limité aussi. donc une simple validation de syntaxe en DTD et XSD, puis la vérification sémantique dans le prog.

Ok merci, en gros attribut ou élement c’est un peu du cas par cas, en fonction de ce qu’on aime.

J’ai tout de même trouvé une ptite piste: attribut c’est pour apporter une caractéristique à l’élement genre <nain couleur=“jaune”/> :slight_smile:

Sinon OK pour les identifiants: attribut c’est bien :wink:

J’ai trouvé ça pour les identifiants:
http://laltruiste.com/document.php?rep=cou…=4&suivant.y=10
ps-> trés bien ce site :super:

EDIT> je trouve ça plus logique que si l’information est unique à un élement il vaut mieux la mettre en attribut, bref un peu comme ce qu’a dit deltree