revues@enssib.fr

 

 

 

Etude de cas

 

 

Présentation de la bibliothèque électronique SciELO et de ses DTD

Marcilio de Brito
Docteur en science de l'information et de la communication
Professeur invité à l'ENSSIB


Exemple pour comprendre une structure de DTD

Vu logique du document
DTD correspondante
Le langage XML : l'élément
Le langage XML : ordonnancement de contenus
Le langage XML : indication d'occurences
Attribut : une méthode de qualification


Avant de passer à la description des DTD-SciELO nous proposons un petit aperçu sur la structure des DTDs et ceci pour mieux comprendre les composants relatifs aux revues électroniques.
L'exemple suivant est assez répandu sur le web et nous l'avons choisi par son objectivité (sources : Frédéric Lopes http://www.xmltechno.com http://www.w3schools.com/dtd/, Bruno Chatel et Pierre Attar http://www.mutu-xml.org/xml-base/slides/PUB-SCHEMA-FR.htm).
Pour partager des informations il faut communiquer avec les mêmes balises pour décrire les mêmes informations. Dans cette optique, on utilise une DTD (Document Type Definition) ou un schéma XML (XML Schema). Il s'agit à peu près des mêmes mécanismes. La différence cruciale entre les deux est que la DTD est un outil de SGML, et que XML Schema a été créé pour XML.
Ce principe peut être illustré par la description du contenu d'un document XML.
Tout d'abord, il faut y préciser le nom des balises que l'on peut ou doit utiliser dans un document XML, et les éléments fils possibles. Il faut indiquer également le type de données, ces éléments pourront contenir des valeurs : numériques, textuelles, alphanumériques.
Si un document structuré n'a pas de DTD (ce n'est pas obligatoire), on dit qu'il est bien formé.
Si une DTD ou un schéma XML est déclaré et que le document XML le respecte, on dira que ce dernier est valide. Pour cela, il faut déclarer la DTD ou le schéma dans le code XML.
Supposons ainsi la représentation d'un répertoire :

 

Vue logique du modèle


Différencier arbre du modèle et arbre d'objets typés des instances

(source Bruno Chatel et Pierre Attar)


<!DOCTYPE carnet-adresse SYSTEM "carnet-adresse.dtd">
Sous cette déclaration, nous allons créer une DTD adaptée à notre répertoire :


DTD correspondante

 
<!ELEMENT CARNET-ADRESSE (ADRESSE+)>
<!ATTLIST CARNET-ADRESSE

DATE-CREATION

CDATA #REQUIRED •Modèles de contenus

DATE-MAJ

CDATA #REQUIRED> Valuation : attributs
 
<!ELEMENT ADRESSE

.(IDENTITE, COORDONNEES, COORDONNEES?, NOTE*)>

<!ELEMENT IDENTITE (NOM, PRENOM, SURNOM?)>
<!ELEMENT NOM (#PCDATA)>
(PRENOM? SURNOM et NOTE suivent la syntaxe de NOM)
<!ELEMENT COORDONNEES

(ADRESSE-POSTALE,
TELEPHONE*,.INTERNET?)>

Organisation des contenus
<!ELEMENT TELEPHONE (#PCDATA)>
<!ATTLIST TELEPHONE

TYPE (STANDARD|DIRECT|
............FAX|MOBILE)
#REQUIRED>

Occurences optionnelles
Typage de données


Ceci est enregistré dans un fichier texte, sous le nom "repertoire.dtd". Ainsi, votre document XML n'est plus "bien formé", mais "valide".


<!ELEMENT CARNET-ADRESSE (ADRESSE+)>

Nous commençons par déclarer la balise de plus haut niveau. Le nom de l'élément XML fils, c'est-à-dire ADRESSE, est écrit entre parenthèse.

<!ELEMENT ADRESSE (IDENTITE, COORDONNEES, COORDONNEES?, NOTE*) >

Ici, nous déclarons les éléments fils de <ADRESSE>. Nous spécifions les élément fils <IDENTITE>, <COORDONNEES>, éventuellement autres <COORDONNEES> et une ou plusieurs <NOTE>.

<!ELEMENT NOM (#PCDATA)>

<!ELEMENT TELEPHONE (#PCDATA)>

Ici, on voit que les éléments <NOM> et <TELEPHONE> n'ont pas d'élément fils. Ils peuvent comporter n'importe quelle donnée alphanumérique.


Le langage XML : l'élément (source Bruno Chatel et Pierre Attar)

Déclaration d'un élément par son contenu

Contenu déclaré Modèle de contenu ( )
vide
<!ELEMENT imag EMPTY>
textuel
<!ELEMENT titre (#PCDATA)>
occurrence implicite
groupe
<!ELEMENT val (déclarée | mesurée)>
groupe et/ou textuel
<!ELEMENT p (#PCDATA|val)*>



Le langage XML : ordonnancement de contenus (source Bruno Chatel et Pierre Attar)


<!ELEMENT para (titre, sspara+)>






<!ELEMENT para (titre, sspara+)>






<!ELEMENT para (liste|texte)>




<!ELEMENT para ANY>



Le langage XML : indication d'occurences (source Bruno Chatel et Pierre Attar)




<!ELEMENT chap (titre, sspara+)>




<!ELEMENT sspara (titre?,.texte+)>




<!ELEMENT table (lem, déf+)>




<!ELEMENT para (titre,.sspara*)>



Attribut : une méthode de qualification (source Bruno Chatel et Pierre Attar)



Mise à jour : mercredi 5 décembre 2001
Droits d'auteur réservés Marcilio de Brito - décembre 2001

 

 
édition
économique
marketing
juridique
usages
technique
services
étude de cas
  interview
Marin Dacos
  DTD SciELO
  portail revues françaises SHS
débats

Accueil

   
   

Arborescence du site Crédits/contacts
Site optimisé
en 800X600
pour Netscape 4
et IE4

 

 

Toute reproduction à des fins autres que strictement personnelles et notamment toute reproduction destinée à une publication électronique, papier, ou audio, destinée à des tiers, est strictement prohibée et constitutive du délit de contrefaçon.