« DTD » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
(Création page + traduction de l'anglais)
 
mAucun résumé des modifications
Ligne 3 : Ligne 3 :
== Définition ==
== Définition ==


'''Document Type Definition (DTD)''' est un langage de schéma pour SGML et [[XML]]. Une DTD est utilisée pour définir et décrire des éléments ou groupes, ainsi que leur ordre et s'ils peuvent être présents ou pas, qui peuvent apparaître dans un document SGML ou XML. Un document doit être conforme aux spécifications définies dans la DTD qui lui est associée (il est donc appelé "valide") avant qu'il puisse être traité pour l'affichage.
'''Document Type Definition (DTD)''' est un langage de schéma pour SGML et [[XML]]. Une DTD représente une structure/grammaire. Elle définit les entités, les éléments et leurs contenus et les attributs des éléments.
Elle définit l'ordre des éléments, leurs imbrications mais également si un élément ou attribut est obligatoire ou à choix.
 
Une DTD peut être inclue dans un document XML de cette manière <!DOCTYPE name SYSTEM "travaux.dtd" [déclaration]>
* name = nom du type de document
* SYSTEM ".dtd" = référence vers un fichier DTD qui contient tout ou une partie de la DTD.
* [déclaration] = DTD interne au xml. Cette partie peut contenir la totalité de la DTD ou seuleument une partie.
 
La DTD peut également être externe au document XML et être référencée à l'aide de : <!DOCTYPE nom_du_type_de_docmuent SYSTEM "fichierDTD.dtd">
 
La validité d’un document xml est être vérifiée par rapport à la DTD qu’il référence ou qu’il inclut. On parlera alors de document XML valide.
Un document doit être conforme aux spécifications définies dans la DTD qui lui est associée avant qu'il puisse être traité pour l'affichage.


Voir aussi: [[Tutoriel_DTD]]
Voir aussi: [[Tutoriel_DTD]]


== Structure ==
== Structure ==
Les DTD sont composées d'un ensemble de définitions d'éléments et de listes d'attributs.
Les DTD sont composées d'entités, d'éléments et de leur contenu, des attributs des éléments et des commentaires.
 
===Les entités===
* Il s'agit d'un couple : nom,valeur
* Il existe des entités internes. Elles ont des valeurs de chaînes de caractères et sont utilisées comme moyen d’abréviation. ex: &amp ; (amp, &) (&amp est le caratère HTML pour représenter '&'
* Les entités externes de type XML sont utilisées pour segmenter un document.
* Déclaration : < !ENTITY nom « valeur »>
* Exemple entité externe :
                        <!DOCTYPE livre [
                        <!ENTITY chapitre-1 SYSTEM "./chap1.xml">  les 2 entités séparent le livre
                        <!ENTITY chapitre-2 SYSTEM "./chap2.xml">
                        ]>
 
                        <livre>
                            &chapitre-1;                            code XML utilisant les entités
                            &chapitre-2;
                        </livre>
 
 
=== Les éléments ===
*Les '''éléments''' définissent quel type de données, comment et si elles peuvent être présentes à l'intérieur d'autres éléments définis.
*Les '''éléments''' définissent quel type de données, comment et si elles peuvent être présentes à l'intérieur d'autres éléments définis.
*Les '''listes d'attributs''' définissent les attributs permis pour chaque élément ainsi que leur type.
*Les '''listes d'attributs''' définissent les attributs permis pour chaque élément ainsi que leur type.

Version du 2 novembre 2013 à 22:32

Définition

Document Type Definition (DTD) est un langage de schéma pour SGML et XML. Une DTD représente une structure/grammaire. Elle définit les entités, les éléments et leurs contenus et les attributs des éléments. Elle définit l'ordre des éléments, leurs imbrications mais également si un élément ou attribut est obligatoire ou à choix.

Une DTD peut être inclue dans un document XML de cette manière <!DOCTYPE name SYSTEM "travaux.dtd" [déclaration]>

  • name = nom du type de document
  • SYSTEM ".dtd" = référence vers un fichier DTD qui contient tout ou une partie de la DTD.
  • [déclaration] = DTD interne au xml. Cette partie peut contenir la totalité de la DTD ou seuleument une partie.

La DTD peut également être externe au document XML et être référencée à l'aide de : <!DOCTYPE nom_du_type_de_docmuent SYSTEM "fichierDTD.dtd">

La validité d’un document xml est être vérifiée par rapport à la DTD qu’il référence ou qu’il inclut. On parlera alors de document XML valide. Un document doit être conforme aux spécifications définies dans la DTD qui lui est associée avant qu'il puisse être traité pour l'affichage.

Voir aussi: Tutoriel_DTD

Structure

Les DTD sont composées d'entités, d'éléments et de leur contenu, des attributs des éléments et des commentaires.

Les entités

  • Il s'agit d'un couple : nom,valeur
  • Il existe des entités internes. Elles ont des valeurs de chaînes de caractères et sont utilisées comme moyen d’abréviation. ex: &amp ; (amp, &) (&amp est le caratère HTML pour représenter '&'
  • Les entités externes de type XML sont utilisées pour segmenter un document.
  • Déclaration : < !ENTITY nom « valeur »>
  • Exemple entité externe :
                        <!DOCTYPE livre [
                        <!ENTITY chapitre-1 SYSTEM "./chap1.xml">   les 2 entités séparent le livre
                        <!ENTITY chapitre-2 SYSTEM "./chap2.xml">
                        ]>
                        <livre>
                           &chapitre-1;                             code XML utilisant les entités
                           &chapitre-2;
                        </livre>


Les éléments

  • Les éléments définissent quel type de données, comment et si elles peuvent être présentes à l'intérieur d'autres éléments définis.
  • Les listes d'attributs définissent les attributs permis pour chaque élément ainsi que leur type.

Par exemple, le document XML suivant est valide selon la DTD définie plus bas.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE liste_personnes SYSTEM "exemple.dtd">
<personnes>
  <individu sexe="femme">
     <nom>
        <prenom>Jane</prenom>
        <deuxieme_n>Jean</deuxieme_n>
        <n_famille>Doe</n_famille>
        <n_jeunefille></n_jeunefille>
     </nom>
  </individu>
<personnes>

DTD correspondante:

<!ELEMENT personnes (individu*)> //* une ou plusieurs personnes doivent apparaître dans cette liste
<!ELEMENT individu (nom)> // l'élément individu doit avoir exactement un élément nom
<!ATTLIST individu  sexe CDATA #REQUIRED> //l'élément personne doit avoir un attribut sexe
<!ELEMENT nom (prenom, deuxieme_n?, n_famille, n_jeunefille?)> //le deuxième nom et le nom de jeune fille sont optionnels
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT deuxieme_n (#PCDATA)>
<!ELEMENT n_famille (#PCDATA)>
<!ELEMENT n_jeunefille (#PCDATA)>

Ni le code XML ni la DTD définissent le style des documents. Ils décrivent le contenu et leurs expressions syntactique (langage descriptif), et non pas leur forme ou style (contrairement à l' HTML ou à l'XHTML qui fournissent des options de formatage base. Le style et la format du document est défini lors du traitement (par exemple grâce à CSS ou XSLT).

Des logiciels d'interprétation peuvent être utilisés pour transformer le document "structuré" en différents formats y compris des pages web en HTML (hypertext markup language) ou directement en XML (extensible markup language).

Voir le Tutoriel_DTD pour plus de détails.

Alternatives

  • XML Schema - un standard W3C
  • Relax NG - un langage de schéma plus facile et plus intuitif par rapport à l'XML

Utilisation des DTD dans l'éducation

turri0

Les DTD et les autres langages de schéma se prêtent en particulier à certaines activités d'enseignement et à des scénarios pédagogiques où l'on construit individuellement ou en collaboration des représentations de la connaissance et des besoins, de la création d'ontologies ou la définition de rubriques.

Exemple

Le département d'Anglais de la University of Georgia a demandé à ses étudiants en rédaction de créer, en collaborant entre eux, leurs propres DTD à partir de patrons décrivant les composants et les critères d'évaluation pour différents genre littéraires comme l'écriture argumentative, narrative ou l'exposé.

Les langages pour la modélisation dans le cadre de l'éducation sont plutôt définies avec Relax NG ou XML Schema.

References