Introduction au langage XML

Rédaction d'une DTD - Notice documentaire

Avant de faire une DTD pour la notice documentaire analysée, nous avons besoin de voir la notion de séparateur.

Nous avons vu la référence bibliographique suivante :

  • Dumoulin, Roger, Comment obtenir un blé de qualité ? Paris, Editions du Meunier, 2043. 212p.

Mais ceci n'est qu'une façon de la rédiger. On pourrait avoir :

  • Dumoulin, Roger, Comment obtenir un blé de qualité ? Paris : Editions du Meunier, 2043. 212p.

  • Dumoulin, Roger. Comment obtenir un blé de qualité ? Paris : Editions du Meunier, 2043. 212p.

  • Dumoulin, Roger. — Comment obtenir un blé de qualité ? Paris, Editions du Meunier, 2043. 212p.

  • Dumoulin, Roger (2043) Comment obtenir un blé de qualité ? Paris, Editions du Meunier,. 212p.

  • etc.

Nous avons aussi vu d'autres références qui comportaient, elles aussi, des différences, comme :

  • la référence d'un ouvrage Dumoulin, Roger, Comment obtenir un blé de qualité ? Paris, Editions du Meunier, 2043. 212p.

  • la référence d'un article Flaye, Ingrid, « Comment détecter les fines mouches ? », Revue d'entomologie extrapolée, 25 : 3 (2022), pp. 5-10.

  • la référence d'un DVD de musique Après la pluie, le beau temps [enr. sonore] / Spielerisch Georges — München : Meteo Records ; [Paris : distr Diskgraph], 2028 — (2 h 12 min 32 s) : DVD.

Notion de séparateur

Une référence bibliographique est toujours constituée d'informations de différentes catégories. Il faut donc séparer ces différents types d'information à l'aide de « séparateurs » (qui sont conventionnels) .

Exemples de séparateurs : , . ; / [] () — etc.

Ces séparateurs sont conventionnels, ce qui signifie :

  • qu'ils constituent des normes partagées par une communauté

  • mais que, ces communautés pouvant varier, les normes peuvent varier même s'il y a — officiellement — une norme universelle

Des normes varient toujours selon les époques et les domaines, ce qui fait que la façon de noter les séparateurs va varier aussi

Un séparateur n'est pas une information. On n'a donc pas à le prendre en compte dans un fichier XML. Mais c'est à l'édition (affichage sur un écran, impression) que ce séparateur devra être restitué.

Nous devons donc distinguer :

– le traitement des informations contenues dans un document (un fichier XML ne comporte que ces informations) ;

– l'édition (papier ou sur écran) d'un document ; cette édition se fera selon une certaine disposition (les séparateurs en feront partie) qui répond à des normes de présentation.

C'est par l'utilisation du langage XSLT ou par les feuilles de style CSS (les deux ne faisant pas partie de ce cours) que ces séparateurs seront restitués.

Nous n'aborderons donc pas dans ce cours l'édition des documents. Cela devrait faire partie d'un cours ultérieur.

Nous allons maintenant étudier ce qu'est la DTD d'un fichier XML

La DTD d'un document permet de :

  • déclarer les catégories d'information contenues dans le document à l'aide de balises ;

  • donner les règles qui définissent les rapports entre ces catégories d'information.

C'est en quelque sorte la « grammaire » du document

Fichier XML de la notice documentaire

Reprenons le fichier XML que nous avons précédemment constitué pour la notice :

<notice><titre>Comment obtenir un blé de qualité ?</titre><auteur><nom>Dumoulin</nom><prenom>Roger</prenom></auteur><lieu>Paris</lieu><date>2043</date><edition>Editions du Meunier</edition><collation>212</collation><collection>Industrie agricole</collection><sujet>Agriculture</sujet><isbn>12-342354-9</isbn></notice>

Avant de rédiger une DTD pour ce fichier XML, nous allons d'abord représenter notre fichier sous la forme indentée.

Du fichier XML à la DTD

Dans une DTD, nous déclarons les balises. Nous allons donc déclarer les balises

<notice>, <titre>, <auteur>, <nom>, <prenom>, <lieu>, <date>, <edition>, <collation>, <collection>, <sujet>, <isbn>.

Remarquons que :

1. nous suivons l'ordre d'apparition dans le fichier ;

2. chaque balise de cette énumération représente un couple (balise ouvrante, balise fermante) ;

3. chaque balise n'apparaît qu'une fois.

La syntaxe pour déclarer une DTD est <!DOCTYPE suivi du nom de balise racine du fichier XML. Dans ce cas précis, la syntaxe sera : <!DOCTYPE notice

Puis nous donnons les règles qui définissent les rapports entre les balises. Ainsi, la balise <notice> a pour successeurs immédiats les balises <titre>, <auteur>, <lieu>, <date>, <edition>, <collation>, <collection>, <sujet>, <isbn> ; puis la balise <auteur> a pour successeurs immédiats les balises, <nom> et <prenom>.

MéthodeDéclaration de règles de réécriture ("déclaration-règle")

La balise <notice> a pour successeurs immédiats les balises <titre>, <auteur>, <lieu>, <date>, <edition>, <collation>, <collection>, <sujet>, <isbn>. Nous dirons que :

la balise <notice> se réécrit <titre> + <auteur> + <lieu> + <date> + <edition> + <collation> + <collection> + <sujet> + <isbn>

et nous écrirons comme suit dans la DTD du fichier XML

<!ELEMENT notice (titre, auteur, lieu, date, edition, collation, collection, sujet, isbn)>

La balise <auteur>a pour successeurs immédiats les balises <nom> et <prenom>. Nous dirons que :

la balise <auteur> se réécrit <nom> + <prenom>

et nous écrirons

<!ELEMENT auteur (nom, prenom)>

Syntaxe de la déclaration de la balise :

1. ouvrir un chevron : <

2. écrire un point d'exclamation : <!

3. écrire le mot clé "élément"  : <!ELEMENT 

4. écrire le nom de la balise déclarée  : <!ELEMENT notice

5. écrire les noms des balises "successeurs immédiats" entre parenthèses et séparées par une virgule : <!ELEMENT notice (titre, auteur, lieu, date, edition, collation, collection, sujet, isbn) 

6. écrire le chevron fermant : <!ELEMENT notice (titre, auteur, lieu, date, edition, collation, collection, sujet, isbn)>

Il s'agit effectivement d'une déclaration (on déclare des balises) mais c'est aussi une règle (on indique les relations entres les balises ou on montre des balises dérivent d'une balise initiale).

SyntaxeGénéralisation à l'ensemble de déclaration-règle du fichier

Nous obtenons :

<!ELEMENT notice (titre, auteur, lieu, date, edition, collation, collection, sujet, isbn)>

<!ELEMENT auteur (nom, prenom)>

MéthodeDéclaration de type de données ("déclaration")

Les balises <titre>, <auteur>, <lieu>, <date>, <edition>, <collation>, <collection>, <sujet>, <isbn> sont des balises terminales : elles n'ont pas de successeurs.

La balise <titre>, par exemple, étant terminale, comporte un contenu textuel. Elle est donc du type "texte".

On déclarera ce type de façon suivante :

<!ELEMENT titre (#PCDATA)>

1. ouvrir un chevron : <

2. écrire un point d'exclamation : <!

3. écrire le mot clé "élément"  : <!ELEMENT 

4. écrire le nom de la balise déclarée  : <!ELEMENT titre

5. écrire le mot-clé PCDATA précédé d'un # entre parenthèses :  <!ELEMENT titre (#PCDATA)

6. écrire le chevron fermant : <!ELEMENT titre (#PCDATA)>

PCDATA signifie parsed character data, c'est-à-dire données caractères analysables (en anglais, parsing signifie analyser grammaticalement, mais ici parsed signifiera simplement analysé, c'est-à-dire décomposé).

SyntaxeGénéralisation à l'ensemble de déclaration-type de données

Nous obtenons :

<!ELEMENT titre (#PCDATA)>

<!ELEMENT nom (#PCDATA)>

<!ELEMENT prenom (#PCDATA)>

<!ELEMENT lieu (#PCDATA)>

<!ELEMENT date (#PCDATA)>

<!ELEMENT edition (#PCDATA)>

<!ELEMENT collation (#PCDATA)>

<!ELEMENT collection (#PCDATA)>

<!ELEMENT sujet (#PCDATA)>

<!ELEMENT isbn (#PCDATA)>

La déclaration

<!DOCTYPE notice

ne se termine pas, au bout de la ligne, par un chevron fermant tout simplement parce que ce chevron fermant se trouvera à la fin de la DTD.

Nous aurons ainsi :

<!DOCTYPE notice

[

ensemble des déclarations-règles de la DTD

et ensemble des déclarations de type de données

]

>

Remarque : "notice" est le nom de la balise racine du fichier XML

Syntaxe

Syntaxe complète de la DTD + Fichier XML

La DTD et le fichier XML de la notice documentaire

Dans le cours prochain, nous aborderons la notion de propriété d'une catégorie d'information, notion qui nous conduira à la notion d'attribut.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)