Le type d'attribut ID permet d'associer à un élément un identificateur unique.

Cette méthode permet de mettre en correspondance des éléments entre eux à l'instar d'une base de données.

La valeur d'un attribut ID doit être un nom XML valide, c'est-à-dire, composé de lettres, de chiffres, de soulignés, de tirets, de points ou de deux-points.

De plus, cette valeur doit être évidemment unique. Dans le cas contraire, le processeur XML renverra une erreur d'analyse lorsqu'il rencontrera un second identificateur identique.

Par conséquent, le mot clé de valeur implicite #FIXED est incompatible avec le type d'attribut id.

Exemple :
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE magasin [
  <!ELEMENT magasin (service+)>
  <!ELEMENT service (produit)>
  <!ATTLIST service id ID #REQUIRED>
  <!ELEMENT produit (#PCDATA)>
  <!ATTLIST produit code ID #REQUIRED>
]>
<magasin>
  <service id="A001">
    <produit code="4DE205">
        Soupe
    </produit>
    <produit code="2TM206">
        Condiment
    </produit>
    <produit code="3KJ227">
        Conserve
    </produit>
  </service>
  <service id="A003">
    <produit code="1OU152">
        Lessive
    </produit>
    <produit code="8AH070">
        Essui-tout
    </produit>
  </service>
  <service id="D301">
    <produit code="240M002">
        Video
    </produit>
    <produit code="210K333">
        DVD
    </produit>
  </service>
  <service id="K853">
    <produit code="8KL025">
        Pantalon
    </produit>
    <produit code="9M2569">
        Robe
    </produit>
  </service>
</magasin>