DTD : ATTRIBUTS (Déclaration d'attributs)
* Syntaxe
< !ATTLIST élément attribut spécification>
Spécification : TYPE OPTIONS VALEUR_PAR_DEFAUT
* Exemples de type d'attributs
- Chaîne
< !ATTLIST SECTION NUMERO CDATA #IMPLIED>
- Énumératif
< !ATTLIST PHOTO FORMAT (GIF | JPEG) "GIF">
DTD : ATTRIBUTS (Déclaration d'attributs : Types) ...
* CDATA : Ce type est le plus général. Il n'impose aucune contrainte à la valeur de l'attribut. Celle-ci peut être une chaîne quelconque de caractères.
* (value1 | value2 | ... | valueN) : La valeur de l'attribut doit être un des jetons value1, value2, … valueN. Comme ces valeurs sont des jetons, celles-ci ne sont pas délimitées par des apostrophes ''' ou des guillemets '"'.
* ID : La valeur de l'attribut est un nom XML. Un élément peut avoir un seul attribut de ce type
* IDREF : La valeur de l'attribut est une référence à un élément identifié par la valeur de son attribut de type ID.
* IDREFS : La valeur de l'attribut est une liste de références séparées par des espaces.
DTD : ATTRIBUTS (Déclaration d'attributs : OPTIONS)
* #IMPLIED:
- L'attribut est optionnel et il n'a pas de valeur par défaut. Si l'attribut est absent, il n'a pas de valeur.
* #REQUIRED:
- L'attribut est obligatoire et il n'a pas de valeur par défaut.
* #FIXED "value":
- La valeur value est une chaîne quelconque de caractères délimitée par des apostrophes. La valeur de l'attribut est fixée à la valeur value donnée.
- Si l'attribut est absent, sa valeur est implicitement value.
- Si l'attribut est présent, sa valeur doit être value pour que le document soit valide.
DTD : ATTRIBUTS (Déclaration d'attributs : Exemples)
<bibliographie>
<livres>
<livre cle="Michard01" langue="fr">
<titre>XML langage et appplications</titre>
<auteur>Alain Michard</auteur>
<annee>2001</annee>
<publie par="id2680397"/>
</livre>
...
</livres>
<editeurs>
<editeur id="id2680397">
<nom>Eyrolles</nom>
<addresse>Paris</addresse>
</editeur>
<editeur id="id268343">
<nom>Ellipses</nom>
<addresse>Casablanca</addresse>
</editeur>
</editeurs>
</bibliographie>
-------------------------
<!ELEMENT bibliographie(livre*, editeur*)>
< !ATTLIST livre (titre, auteur, annee, publie) >
…
< !ATTLIST editeur (nom, adresse) >
< !ATTLIST editeur id IDREF #REQUIRED>
< !ATTLIST livre publie IDREF #REQUIRED>
DTD : ENTITES (Déclarations des entités)
* Syntaxe :
<!ENTITY nom "chaîne">
* Exemple :
<!ENTITY fsts "Faculté Sciences Techniques de Settat">
* Utilisation dans le fichier XML
<PARA>
Les professeurs de la &fsts; sont heureux de vous souhaiter la bienvenue
</PARA>
* Interne :
<!ENTITY nom "chaîne">
* Externe:
<?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE book [
<!-- Entités externes -->
<!ENTITY chapter1 SYSTEM "chapter1.xml">
<!ENTITY chapter2 SYSTEM "chapter2.xml">
]>
< book>
<!-- Inclusion du fichier chapter1.xml -->
&chapter1;
<!-- Inclusion du fichier chapter2.xml -->
&chapter2;
< /book>
* Entités Externes:
- Les entités externes peuvent êtres utilisées pour scinder un document en plusieurs fichiers.
- Le fichier principal inclut les différentes parties en définissant une entit externe pour chacune de ces parties.
- Les entités sont alors utilisées pour réaliser l'inclusion comme dans l'exemple ci-dessous.
DTD : TYPES DE CONTENU (PCDATA (Parsed Character DATA))
* Contenu Textuel
* Il s'agit de données textuelles (chaînes de caractères) qui correspondent au texte qui se trouve entre les balises d'un élément XML.
* Les données de type PCDATA vont être traitées par l'application (parser).
- les balises vont être identifiées;
- les entités vont être traduites.
- le texte va être interprété comme une chaîne de caractères;
DTD : TYPES DE CONTENU (Déclaration de PCDATA)
* Syntaxe
<!ELEMENT nom (#PCDATA)>
* L'élément contient des données textuelles
* Exemple : <!ELEMENT TITRE(#PCDATA)>
<!ELEMENT AUTEUR(#PCDATA)>
Note: Le symbole # empêche PCDATA d'être interprété comme un nom d'élément.
* Exemple :
<?xml version="1.0" encoding="iso-8859-1"?>
< !DOCTYPE book [
<!ELEMENT book (#PCDATA | em | cite)*>
<!ELEMENT em(#PCDATA)>
<!ELEMENT cite (#PCDATA)>
]>
< book>
Du <em>texte</em>, une <cite>citation</cite> et encore du <em>texte</em>.
< /book>
DTD : TYPES DE CONTENU (CDATA (Character DATA)
* CDATA signifie « Character Data ».
* Les données de type CDATA sont du texte qui ne sera pas interprété par l'application.
* Les données CDATA peuvent se trouver à n'importe quel endroit acceptable pour des données textuelles ; elles sont employées pour déguiser des blocs de texte contenant des caractères qui seraient autrement identifiés comme balisage.
DTD : TYPES DE CONTENU (Déclaration de CDATA : Attribut)
* Syntaxe :
<!ATTLIST nomÉlement nomAttribut CDATA …>
* Exemple :
<!ATTLIST prix CanCDATA #REQUIRED>
DTD : TYPES DE CONTENU (Utilisation de CDATA : Données textuelles)
* Syntaxe :
<![CDATA[chaîne de caractères]]>
* Exemple :
<![CDATA[
<script language=JavaScript>document.write("Bonjour!")</script>
]]> où
<script language=JavaScript>document.write("Bonjour!")</script> - est reconnu comme données textuelles, et non comme balisage :
DTD : TYPES DE CONTENU (Exemple de l'élément prix)
* Exemple :
<!ELEMENT prix EMPTY>
<!ATTLIST prix
CanCDATA #REQUIRED>
- « prix » est vide.
- « prix » a un attribut « Can » de type CDATA.
- « Can » est obligatoire.
DTD : TYPES DE CONTENU (Contenu libre)
* Exemple :
<!ELEMENT prix ANY>
- « prix » peut etre n’importe quoi.
0 commentaires:
Enregistrer un commentaire