update
This commit is contained in:
107
syntaxe d'une DTD.md
Normal file
107
syntaxe d'une DTD.md
Normal file
@@ -0,0 +1,107 @@
|
||||
up:: [[DTD]]
|
||||
#informatique
|
||||
|
||||
# Déclaration des éléments
|
||||
|
||||
```dtd
|
||||
<!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
|
||||
|
||||
```dtd
|
||||
<!ELEMENT cours (intervenant, plan?, commentaire*)>
|
||||
<!ELEMENT interveneant (#PCDATA)>
|
||||
<!ELEMENT plan (#PCDATA)>
|
||||
<!ELEMENT commentaire (#PCDATA)>
|
||||
```
|
||||
|
||||
|
||||
```dtd
|
||||
<!ELEMENT personne ((nom, prenom) | nomComplet)>
|
||||
<!ELEMENT nom (#PCDATA)>
|
||||
<!ELEMENT prenom (#PCDATA)>
|
||||
<!ELEMENT nomComplet (nom, prenom)>
|
||||
```
|
||||
|
||||
# Déclaration de liste d'attributs
|
||||
|
||||
```dtd
|
||||
<!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'`OBLIGATION` ne 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-DEFAUT` permet de donner la valeur si aucune valeur n'est précisée
|
||||
|
||||
## Exemples
|
||||
|
||||
|
||||
### Exemple 1
|
||||
|
||||
```dtd
|
||||
<!ELEMENT cours (intervenant, plan, commentaire*)>
|
||||
<!ELEMENT cours
|
||||
titre CDATA #REQUIRED
|
||||
plan CDATA #IMPLIED
|
||||
```
|
||||
|
||||
exemple valide :
|
||||
```xml
|
||||
<cours titre="données semi-structurées">
|
||||
<intervenant>
|
||||
Mme. Markov
|
||||
</intervenant>
|
||||
<plan>
|
||||
Introduction
|
||||
Présentation générale de XML
|
||||
</plan>
|
||||
```
|
||||
|
||||
|
||||
### Exemple 2
|
||||
```dtd
|
||||
<!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.
|
||||
|
||||
```dtd
|
||||
<!ENTITY nomEntite "remplacement">
|
||||
```
|
||||
- on utilise ensuite `&nomEntite;` qui sera remplacé par `remplacement`
|
||||
|
||||
## Exemple
|
||||
|
||||
```dtd
|
||||
<!ENTITY chap1 "chap1.xml">
|
||||
<!ENTITY chap2 "chap2.xml">
|
||||
<!ENTITY chap3 "chap3.xml">
|
||||
```
|
||||
|
||||
```xml
|
||||
<livre> &chap1; &chap2; &chap3; </livre>
|
||||
```
|
Reference in New Issue
Block a user