Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:master:mlbda:tmes:dtd

Ceci est une ancienne révision du document !


TME DTD

Preparation

Télécharger l'archive contenant les fichiers XML et DTD et les librairies jar permettant de faire les exercices demandés : tme-dtd-etu.zip et décompresser la.

Choisir un outils pour valider des DTD: soit graphique soit en mode texte.

Outil en mode texte

Une solution en mode ligne de commande est d'utiliser le parseur de Xerces2 écrit en java sous Linux,Mac ou Win

Sous Linux/Mac

aller dans le dossier dtd contenant les fichiers du tme. Editer un fichier valide contenant ceci:

#!/bin/bash                                                                                                                                     

export XERCES_HOME="chemin_vers_le_repertoire_dtd"
export BD_CLASSPATH_DTD_XSL=$XERCES_HOME/xercesSamples.jar:$XERCES_HOME/xml-apis.jar:$XERCES_HOME/xercesImpl.jar

java -cp "$BD_CLASSPATH_DTD_XSL" sax.Counter -v $*

Le fichier valide doit être exécutable:

chmod +x valide

La validation consiste à vérifier que la DTD est syntaxiquement correcte et que le document XML respecte la DTD. Dans le document XML, ajouter un DOCTYPE pour faire référence à la DTD utilisée. Puis, utiliser la commande valide pour lancer la validation. Pour valider par exemple le fichier base1.xml, exécutez la commande suivante:

./valide base1.xml

Sous Windows

ouvrir un terminal, aller dans le dossier dtd contenant les fichiers du tme. Editer un fichier valide.bat contenant ceci :

REM Modifier cette variable en fonction du dossier contenant les jar telechargees
set XERCES_HOME=C:\Users\PRENOM\mlbda\tp\tme-dtd-etu

set CP1=%XERCES_HOME%\xml-apis.jar
set CP1=%CP1%;%XERCES_HOME%\xercesSamples.jar
set CP1=%CP1%;%XERCES_HOME%\xercesImpl.jar

java -cp "%CP1%" sax.Counter -v %1

Pour valider par exemple le fichier base1.xml, saisir la commande suivante. Attention le paramètre est le nom du fichier XML (mais pas le nom du fichier DTD).

valide.bat base1.xml

Outils avec interface graphique

On utilisera de préférence XML Copy Editor pour valider un doc XML et sa DTD.

Un autre outil graphique pour validation XML par DTD est :

Exercices

voir poly de TD page 18 : définir la DTD d'une ville puis celle du guide touristique

Questions / réponses fréquentes

élément vide

Un élément X vide peut s'écrire indifféremment <X /> ou <X></X> sans aucun espace entre la balise de début et de fin. Un élément vide peut avoir des attributs.

syntaxe DTD vs XML

La syntaxe d'une DTD diffère de la syntaxe XML: le nom des balises: <!ELEMENT> et <!ATTLIST> est en majuscule, sans espace après le « ! ».

Définition d'un élément et de son modèle de contenu:

l'espace est obligatoire entre le nom d'un élément et son modèle de contenu :

<!ELEMENT XXX espace (YYY)>

Le contenu vide s'écrit EMPTY sans parenthèses. Rmq: le contenu (EMPTY) avec parenthèses signifie : « contient un sous élément nommé EMPTY»

Le contenu (#PCDATA) signifie : contient une feuille de type chaîne de caractère.

les attributs d'un éléments ne sont pas déclarés dans le modèle de contenu de l'élément mais ils sont déclarés séparément avec <!ATTLIST …> Les types des attributs sont CDATA, ID, IDREF, IDREFS, … (mais pas #PCDATA ni aucun type numérique).

Comment est définie l'intégrité référentielle ?

Le domaine des valeurs d'une référence (attribut de type IDREF) est l'ensemble des valeurs des identifiants (tous les attributs de type ID).

Quelle est la syntaxe d'une valeur de type IDREFS ?

c'est une liste de valeur séparées par un espace. ex: auteurs=“A2 A5 A1”

Comment associer un document XML avec sa DTD ?

Utiliser <!DOCTYPE racine SYSTEM “fichier.dtd”> : racine est le nom de l'élément racine du document XML.

Peut-on inclure un fragment de DTD dans une deuxième DTD ?

Oui, mais pas en TME (pour éviter de débugger plusieurs DTD à la fois). Exemple pour base1.dtd :

    <!ENTITY % ville SYSTEM "ville.dtd" >
    %ville;
    <!ELEMENT base (ville+)>

Divers

Un site web pour la validation online de XML + DTD

Retour Moodle MLBDA

site/enseignement/master/mlbda/tmes/dtd.1605526687.txt.gz · Dernière modification : de hubert