2.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			2.3 KiB
		
	
	
	
	
	
	
	
up:: DTD #s/informatique
Déclaration des éléments
<!ELEMENT unNom DEF-CONTENU>
DEF-CONTENU peut être :
- EMPTY: contenu vide
- ANY: peut contenir n'importe quel élément de la DTD
- (#PCDATA): contient du texte
- une expression régulière sur les nom d'éléments
Exemples
<!ELEMENT cours (intervenant, plan?, commentaire*)>
<!ELEMENT interveneant (#PCDATA)>
<!ELEMENT plan (#PCDATA)>
<!ELEMENT commentaire (#PCDATA)>
<!ELEMENT personne ((nom, prenom) | nomComplet)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT nomComplet (nom, prenom)>
Déclaration de liste d'attributs
<!ATTLIST unNomElement unNomAttribut TYPE OBLIGATION VALEUR-PAR-DEFAUT>
- TYPE peut être :
- CDATA: du texte
- ID: un identifiant unique dans tout le document
- IDREF: une référence vers un ID
- IDREFS: une liste de références vers des ID
- NMTOKEN: un mot
- NMTOKENs: une liste de mots
- une énumération de valeurs séparées par des |
 
- L'OBLIGATIONne concerne pas les énumérations suivies d'une valeur par défaut. Dans les autres cas, cela peut être :- #REQUIRED: obligatoire
- #IMPLIED: optionnel
- #FIXED: attribut toujours présent avec une valeur (sert pour imposer la déclaration d'un espace de noms)
 
- La VALEUR-PAR-DEFAUTpermet de donner la valeur si aucune valeur n'est précisée
Exemples
Exemple 1
<!ELEMENT cours (intervenant, plan, commentaire*)>
<!ELEMENT cours
    titre CDATA #REQUIRED
    plan CDATA #IMPLIED
exemple valide :
<cours titre="données semi-structurées">
    <intervenant>
        Mme. Markov
    </intervenant>
    <plan>
        Introduction
        Présentation générale de XML
    </plan>
Exemple 2
<!ELEMENT crayon EMPTY>
<!ELEMENT crayon
    couleur (rouge|bleu) "bleu"
    epaisseur CDATA #IMPLIED "8">
Déclaration d'entités
Les entités permettent de définir des remplacements de préprocesseur.
<!ENTITY nomEntite "remplacement">
- on utilise ensuite &nomEntite;qui sera remplacé parremplacement
Exemple
<!ENTITY chap1 "chap1.xml">
<!ENTITY chap2 "chap2.xml">
<!ENTITY chap3 "chap3.xml">
<livre> &chap1; &chap2; &chap3; </livre>