Commentaire d’DTD et de son instance.

 

Fichiers AutAbsence2.dtd et AutAbsence2.xml.

Cette DTD est intéressante car elle contient une liste externe d’entités.

Ces fichiers proviennent des ressources Xml disponibles sur le site TAL.

<?xml version="1.0" encoding="iso-8859-1"?>

Commentaire inséré par l’auteur de ces fichiers :

<!--

Illustre l'utilisation d'une liste externe d'entités pour approcher

(bien imparfaitement) la fonctionnalité d'une liste d'autorité

-->

<!-- Découverte déconcertante 2000-02-15

IE5 pense qu'un document XML est du HTML s'il contient

une balise ouvrante dont le genID commence par "pre"

Notes: cela ne se produit pas en local, et donc, pourrait

dépendre d'une "mauvaise" configuration des types MIME

côté serveur

Je n'ai pas vérifié si cela arrive aussi avec d'autres

genID HTML

Quoi qu'il en soit, c'est pour cette raison que le genID

"prenom" a été renommé "praynom" (temporairement, jusqu'à

ce que le serveur soit configuré correctement)

-->

Liste externe d’entités :

 

Dans les éléments " autorisationDabsence ", " noDoc ", " IDEmploye " et " nom " l’ordre des éléments qu’ils contiennent est spécifié (cf " , "). Structure arborescente du document qui apparaît à travers deux formes :

-L’imbrication des éléments.

-La spécification d’un ordre.

<!ELEMENT autorisationDabsence (noDoc, IDEmploye)>

Les éléments " noDoc ", " nomFamille ", " prenom ", " initiales ", " nas ", " nomValideur ", " autre " peuvent contenir des données textuelles, information marquée par l’attribut (#PCDATA).

<!ELEMENT noDoc (#PCDATA)>

<!ELEMENT IDEmploye (nom, codeTransaction, NAS, nomValideur,

categEmploi)>

Dans l’élément " nom " l’élément " initiales " peut apparaître 0 ou 1 fois ( ?).

<!ELEMENT nom (nomFamille, prenom, initiales?)>

<!ELEMENT nomFamille (#PCDATA)>

<!ELEMENT prenom (#PCDATA)>

<!ELEMENT initiales (#PCDATA)>

<!ELEMENT codeTransaction (#PCDATA)>

Création d’une entité, à laquelle il sera fait référence plus bas dans l’élément <codeTransaction> (dans l’instance de document). Entité déclarée dans la partie externe de la DTD (entité paramètre).

<!ENTITY % codesTransac SYSTEM "codesTransac.ent">

Référence à l’entité codesTransac, définie au-dessus.

%codesTransac;

<!ELEMENT NAS (#PCDATA)>

<!ELEMENT nomValideur (#PCDATA)>

Dans l’élément " categEmploi ", l’ordre des éléments est libre (|).

<!ELEMENT categEmploi (fonctionnaires | agentsPaix |

professionnels | autre)>

Eléments de " categEmploi " qui sont mixtes, on trouve des éléments vides et un élément qui peut contenir des données textuelles :

<!ELEMENT fonctionnaires EMPTY>

<!ELEMENT agentsPaix EMPTY>

<!ELEMENT professionnels EMPTY>

<!ELEMENT autre (#PCDATA)>

 

 

 

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE autorisationDabsence SYSTEM "AutAbsence2.dtd">

Le contenu DTD est accessible par le fichier " AutAbsence2.dtd ", qui contient une liste externe d’entités. Elle est introduite par " < ! DOCTYPE ", son élément racine (parent de tous les autres éléments) est " autorisationDabsence " qui doit être introduit en tant que racine mais aussi déclaré comme élément à l’intérieur de la DTD par les balises <autorisationDabsence> </autorisationDabsence>.

Structure du document conforme aux règles énoncées plus haut.

<autorisationDabsence>

<noDoc>12345678</noDoc>

<IDEmploye>

<nom><nomFamille>Carmel</nomFamille>

<prenom>Lucie</prenom></nom>

<codeTransaction>&transac_MK537;</codeTransaction>

Référence à la variable " &transac_Mk537 ", qui doit être contenue dans le fichier " codesTransac.ent ", défini comme valeur de l’entité " codesTransac ". Le code transaction n’est ainsi pas directement visible. Il est possible que ce soit une des raisons pour lesquelles l’auteur de ce fichier a choisi de créer une liste externe d’entités, pour pouvoir ainsi y faire librement référence dans la DTD. Si elles avaient été déclarées dans la DTD, elles n’auraient pas pu être référencées dans une autre déclaration.

<NAS>123234345</NAS>

<nomValideur>CAR87965</nomValideur>

</IDEmploye>

</autorisationDabsence>