Identifiants et références (ID et IDREF)

DéfinitionÉlément identifié par un attribut identifiant (ID)

Les attributs de type ID permettent d'identifier de façon unique un élément. La valeur d'un attribut de type ID est unique parmi toutes les valeurs des attributs ID de tout le document (sinon le document n'est pas valide, principe d'unicité).

On notera également que :

  • la valeur d'un attribut ID est de type NMTOKEN

  • un élément ne peut avoir qu'un seul attribut de type ID

  • un attribut ID peut être optionnel (#IMPLIED) ou obligatoire (#REQUIRED)

Syntaxe

1
<!ELEMENT e (...)>
2
<!ATTLIST e
3
a ID #REQUIRED>

DéfinitionRéference à des éléments identifiés (IDREF)

Les attributs de type IDREF permettent de faire référence à un élément identifié, par la valeur de l'attribut ID correspondant. La valeur d'un attribut IDREF doit correspondre à la valeur d'un attribut ID dans le document (sinon le document n'est pas valide, principe d'intégrité référentielle).

Syntaxe

1
<!ELEMENT e (...)>
2
<!ATTLIST e
3
a IDREF #REQUIRED>

RemarqueIDREFS

Un attribut de type IDREFS permet de faire référence à plusieurs élément identifiés, le séparateur étant un espace (référence de cardinalité N:M).

ExempleDTD avec ID, IDREF, IDREFS

1
<!-- dtdid.dtd -->
2
<!ELEMENT e1 (e2 | e3 | e4)*>
3
<!ELEMENT e2 (#PCDATA)>
4
<!ELEMENT e3 (#PCDATA)>
5
<!ELEMENT e4 (#PCDATA)>
6
<!ATTLIST e2
7
id ID #REQUIRED>
8
<!ATTLIST e3
9
ref IDREF #IMPLIED>
10
<!ATTLIST e4
11
refs IDREFS #IMPLIED>

ExempleExtrait de document XML valide par rapport à dtdid.dtd

1
<e1>
2
    <e2 id="id1">...</e2>
3
    <e2 id="id2">...</e2>
4
    ...
5
    <e3 ref="id1"/>
6
    ...
7
    <e4 refs="id1 id2"/>
8
</e1>