Systèmes de communication

XML, les déclarations principales (2)

La déclaration ELEMENT

Elle permet de déclarer les éléments et leur contenu.

<!ELEMENT 'nom' 'modele de contenu'>

Une 'modele de contenu' est un des mots clés: ANY, EMPTY ou ('groupe').

Un 'groupe' est constitué d'éléments avec les opérations de liste (,) ou de choix (|)

Exemple: <!ELEMENT a (b,(c|d),e)>

Les éléments du groupe peuvent être suivis d'indicateur d'occurence: + * ?

Un élément peut être remplacé par une 'entity' (voir ci-dessous)

Outre contenir des éléments, les modèles de contenu peuvent aussi être de type:

caractère: (#PCDATA)

mixte: (#PCDATA | A | B)*

Exemple:

<!ELEMENT para (#PCDATA | note)*>
<!ELEMENT note (#PCDATA)>

L'objet suivant est conforme à cette définition:

<para>Voici un paragraphe<note>c'est un exemple</note>avec une note</para>

La déclaration ENTITY

Elle permet de donner un nom significatif à un ensemble d'éléments

Exemple:

<!ELEMENT note   (titre,para+)>
<!ELEMENT entete (titre,para+)>
<!ELEMENT resume (titre,para+)> 

Peut-être remplacé par:

<!ENTITY % corps.texte "titre,para+">
<!ELEMENT note   (%corps.texte;)>
<!ELEMENT entete (%corps.texte;)>
<!ELEMENT resume (%corps.texte;)> 

La déclaration ATTLIST

Elle permet de déclarer les attributs associés à un élément.

<!ATTLIST 'element' 'attribut1' 'type1' 'defaut1'
                    'attribut2' 'type2' 'defaut2'
                    ....
                    'attributn' 'typen' 'defautn'>

Avec:

Type: CDATA, ENTITY (IES), ID, IDREF(S), NMTOKEN(S), énumération

Défaut: valeur, #FIXED valeur, #IMPLIED, #REQUIRED

Exemple: <!ATTLIST P ALIGN (left | center | right) "left">