xmllint
distingue xmllint leFichier
--valid
) xmllint
--valid
leFichier
--dtdvalid
) xmllint
leFichier --dtdvalid
laDTD
xmllint
reproduit en sortie le fichier XML qu'il a lu.--noout
xmllint --noout
leFichier --dtdvalid laDTD
[ fichier Nom_note2.xml]
<?xml version="1.0" ?>
<liste>
<eleve>
<nom> Toto</nom> <note> 12 </note>
</eleve>
<eleve>
<nom> Tata</nom> <note> 13 </note>
</eleve>
<eleve>
<nom> Tutu</nom> <note> 17 </note>
</eleve>
<eleve>
<nom> Titi</nom> <note> 11 </note>
</eleve>
</liste>
[ fichier Nom_note2.dtd]
<?xml version="1.0" encoding='ISO-8859-1'?>
<!-- Tableau Noms-Notes par enfants -->
<!ELEMENT liste (eleve*)>
<!ELEMENT eleve (nom, note)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT note (#PCDATA)>
[ fichier Nom_note1.xml]
<?xml version="1.0" ?>
<liste>
<eleve nom="Toto" note="12"/>
<eleve nom="Tata" note="13"/>
<eleve nom="Tutu" note="17"/>
<eleve nom="Tutu" note="11"/>
</liste>
[fichier Nom_note1.dtd]
:
<?xml version="1.0" encoding='ISO-8859-1'?>
<!-- Tableau Noms-Notes par attributs -->
<!ELEMENT liste (eleve*)>
<!ELEMENT eleve EMPTY>
<!ATTLIST eleve nom CDATA #REQUIRED>
<!ATTLIST eleve note CDATA #REQUIRED>
<?xml version="1.0" ?>
<!DOCTYPE liste [
<!ELEMENT liste (eleve*)>
<!ELEMENT eleve (nom, note)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT note (#PCDATA)>
]>
<liste>
<eleve>
<nom>Pierre</nom> <note> 12 </note>
</eleve>
<eleve>
<nom>Paul</nom> <note> 13 </note>
</eleve>
<eleve>
<nom>Jacques</nom> <note> 17 </note>
</eleve>
</liste>
<?xml version="1.0" ?>
<!DOCTYPE liste SYSTEM "Nom_note2.dtd">
<liste>
<eleve>
<nom>Pierre</nom> <note> 12 </note>
</eleve>
<eleve>
<nom>Paul</nom> <note> 13 </note>
</eleve>
<eleve>
<nom>Jacques</nom> <note> 17 </note>
</eleve>
</liste>
ID
et IDREF
ID
et IDREF
:ID
est le type de la
référence attribuée à un élément "normal"IDREF
est celui de la
référence mentionnée (pour citer l'élément
référencé), IDREF
doit être déclarée comme ID
.Famille.xml
)
<?xml version="1.0" ?>
<!DOCTYPE liste SYSTEM "Famille.dtd">
<liste>
<Personne nom="Marie" sexe="F" ref="P1">
<!-- les parents de Marie ne sont pas connus de nous -->
<enfants>
<RefPersonne maref="P2"/>
<RefPersonne maref="P3" />
</enfants>
</Personne>
<Personne nom="Jean" sexe="M" ref="P2">
<mere>
<RefPersonne maref="P1"/>
</mere>
<enfants/>
</Personne>
<Personne nom="Pierrette" sexe="F" ref="P3">
<mere>
<RefPersonne maref="P1"/>
</mere>
<enfants>
<RefPersonne maref="P4"/>
</enfants>
</Personne>
<Personne nom="Julie" sexe="F" ref="P4">
<mere>
<RefPersonne maref="P3"/>
</mere>
<enfants/>
</Personne>
</liste>
Famille.dtd
)<?xml version="1.0" encoding='ISO-8859-1'?>
<!-- Famille avec re'fe'rences -->
<!ELEMENT liste (Personne*)>
<!ELEMENT Personne (pere?, mere?, enfants)>
<!ELEMENT pere (RefPersonne)>
<!ELEMENT mere (RefPersonne)>
<!ELEMENT enfants (RefPersonne*)>
<!ELEMENT RefPersonne EMPTY> <!-- pour attribut IDREF -->
<!ATTLIST Personne nom CDATA #REQUIRED>
<!ATTLIST Personne sexe CDATA #REQUIRED>
<!ATTLIST Personne ref ID #REQUIRED>
<!ATTLIST RefPersonne maref IDREF #REQUIRED>
pere?
et mere?
pour éviter la régression
généalogique à l'infini.&
"
et ";
" :<!ENTITY qed "Quod
erat
demonstrandum">
<texte> et voila pourquoi votre fille
est
muette ! &qed;</texte>
<texte> et voila pourquoi votre fille
est
muette !
Quod erat demonstrandum
</texte>
é
, à
,
etc sont des entités prédéfinies en HTML.& |
& |
' |
' |
" |
" |
< |
< |
> |
> |
&le-numéro-décimal;
par exemple Æ
---> Æ
(majuscule danoise)&xle-numéro-hexa;
par exemple ℅
---> ℅
(le signe care-of = aux bons soins de)<!ENTITY care-of "
℅
">
&care-of;
au lieu de ℅
.%
" dans leur
définition, qui répparaît comme préfixe dans leur utilisation. On
pourrait par exemple réécrire notre DTD familiale ainsi <!ENTITY % parents "pere?,
mere?">
....
<!ELEMENT Personne (%parents;,
enfants)>
TEIFrantext.dtd
).