DTD (Document Type Definition) - XML (extensible Markup Language)



Documents pareils
Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML : documents et outils

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Auguria_PCM Product & Combination Manager

Gestion Électronique de Documents et XML. Master 2 TSM

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

<?xml version="1.0" encoding="iso " standalone="yes"?>

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

OASIS Date de publication

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Les outils de création de sites web

Didacticiel de mise à jour Web

Traitement de texte : Quelques rappels de quelques notions de base

1. Installation du Module

Initiation à html et à la création d'un site web

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Outils logiciels pour l'ingénierie documentaire

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

SII Stage d informatique pour l ingénieur

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

HTML. Notions générales

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99

Modules Prestashop - ExportCatalogue / EXPORT IMPORT POUR MODIFICATIONS EN MASSE DANS PRESTASHOP VERSION Optim'Informatique

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Les services usuels de l Internet

Spécification de Harvard. Version française: Scriptol.fr

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Préparer la synchronisation d'annuaires

WordPress :: Migrer son site du local vers le serveur en ligne

Programmation Internet Cours 4

Accès externe aux ressources du serveur pédagogique

Premiers pas sur e-lyco

Configuration d'un annuaire LDAP

! Text Encoding Initiative

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

XML et Bases de données. Les bases de données XML natives.

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Le stockage local de données en HTML5

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Installation de Windows 2000 Serveur

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

PHP 5.4 Développez un site web dynamique et interactif

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

Qu'est ce que le Cloud?

4. SERVICES WEB REST 46

Protosafe : un service en ligne d archivage de données médicales

Manuel d'utilisation du navigateur WAP Palm

CONNECTEUR PRESTASHOP VTIGER CRM

EXCEL PERFECTIONNEMENT CALCULS AVANCES

Utilisation d'un réseau avec IACA

Manuel d utilisation NETexcom

Pack Fifty+ Normes Techniques 2013

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Guide pour la réalisation d'un document avec Open Office Writer 2.2

L'essentiel de XML. Cours XML. Olivier Carton

Méthode de préparation du fichier texte d import depuis Excel, via Access jusqu à Drupal.

Cours admin 200x serveur : DNS et Netbios

Fichiers, dossiers, enregistrer et arborescence

Normes techniques 2011

Table des matières. 1 À propos de ce manuel Icônes utilisées dans ce manuel Public visé Commentaires...

l'ordinateur les bases

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Une fois votre tableau excel complet, cliquer sur fichier enregistrer sous type de fichier (menu déroulant) csv (séparateur : point virgule).

Sauvegarde des données du scribe sur disque USB

Petite définition : Présentation :

Guide de démarrage rapide

Informatique : Création de site Web Master 2 ANI TP 1

Editeur html Guide de l'utilisateur

Septembre 2012 Document rédigé avec epsilonwriter

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Guide d'utilisation de WebEx Meeting Center avec les Salles de réunion de collaboration (Collaboration Meeting Rooms / Nuage CMR)

PARAGON SYSTEM BACKUP 2010

3. RÉALISATION ET QUALIFICATION D UN PROTOTYPE 3.1 Réalisation d un prototype CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML

Guide d'installation. Release Management pour Visual Studio 2013

Formation à l'administration de votre site E-commerce Page 1 sur 15

INU Information et sites Web 10 avril 2015 SEO. Dominic Forest, Ph.D.

Mémo d'utilisation de BD Dico1.6

Manuel d'utilisation d'apimail V3

InfraCenter Introduction

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Utiliser Access ou Excel pour gérer vos données

Apprendre à manipuler le clavier Médiathèque de Bussy Saint-Georges APPRENDRE A MANIPULER LE CLAVIER

Plateforme PAYZEN. Définition de Web-services

Obtention via HTTP des fichiers PDF générés par le service de SMS/MMS certifiés

PORTAIL INTERNET DE LA GESTION PUBLIQUE Guide d'utilisation du Portail Internet de la Gestion Publique

MODE OPERATOIRE OPENOFFICE BASE

TeamViewer 9 Manuel Management Console

ECLIPSE ET PDT (Php development tools)

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Définition des Webservices Ordre de paiement par . Version 1.0

Transcription:

DTD (Document Type Definition) - XML (extensible Markup Language) Références : XML, Micro Application e-poche http://giles.chagnon.free.fr/cours/xml/base.html http://www.cgmatane.qc.ca/forgetj/formation/int4/xml.php 1. Introduction Il peut être parfois nécessaire de préciser les balises et attributs auxquels on a droit lors de la rédaction d'un document XML. Deux solutions sont possibles : les "Schémas XML" et les "Document Type Definition". Ces dernières sont les plus simples à manipuler et sont apparues en premier, alors que les Schémas n'étaient pas encore définis. Les "Schémas XML" permettent d'informer plus efficacement l'utilisateur sur les balises auxquelles il a droit, ou bien de spécifier de manière plus détaillée le formatage autorisé pour le contenu de la balise ou de l'attribut. Toute déclaration de type de document peut être composée de déclarations d'éléments, de déclarations d'attributs, de déclarations d'entités, de déclarations de notations et de commentaires. Le rôle de la DTD XML permet d'utiliser un fichier afin de vérifier qu'un document XML est conforme à une syntaxe donnée. La norme XML définit ainsi une définition de document type appelée DTD (Document Type Definition), c'est-à-dire une grammaire permettant de vérifier la conformité du document XML. La norme XML N'impose pas l'utilisation d'une DTD pour un document XML, mais elle impose par contre le respect exact des règles de base de la norme XML. Une DTD peut être définie de 2 façons : sous forme interne c'est-à-dire en incluant la grammaire au sein même du document. sous forme externe, soit en appelant un fichier contenant la grammaire à partir d'un fichier local ou bien en y accédant par son URL. Cette possibilité permet de partager le DTD entre plusieurs document XM.. Il est possible de mêler DTD interne et externe. 2. Types de DTD Il existe de plus 2 types de DTD externes : privé ou public les DTD privées (SYSTEM) sont accessibles uniquement en local (sur la machine de développement); les DTD publiques sont disponibles pour tout le monde, étant accessibles grâce à un URI (Uniform Resource Identifier). <!DOCTYPE elt.racine déclarations> À noter : elt.racine représente l'élément racine

Cette déclaration se place juste après le prologue du document. L'élément racine du document XML rattaché à cette DTD est alors obligatoirement elt.racine. La syntaxe DTD ne diffère pas entre une DTD interne et une externe. Exemple de déclarations pour une DTD interne : <!DOCTYPE biblio[ <!ELEMENT livre (titre, auteur, nb_pages)> <!ATTLIST livre type (roman nouvelles poemes theatre) #IMPLIED lang CDATA "fr" > <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT nb_pages (#PCDATA)> ]> DTD externe Les deux types de DTD externes sont les DTD de type public et les DTD de type system (privé). Le motclef SYSTEM indique que le fichier qui suit se trouve sur l'ordinateur local et qu'il est disponible uniquement à titre privé. Par contre, le mot-clé PUBLIC indique une ressource disponible pour tous sur un serveur web distant. Exemple de déclaration de DTD externe de type SYSTEM : <!DOCTYPE biblio SYSTEM "bibliographie.dtd"> Le fichier associé est le suivant : <?xml version="1.0" encoding="utf-8"?> <!ELEMENT biblio (livre*)> <!ELEMENT livre (titre, auteur, nb_pages)> <!ATTLIST livre type (roman nouvelles poemes théâtre) #IMPLIED lang CDATA "fr" > <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT nb_pages (#PCDATA)> Voici la déclaration de type de document pour un document html qui utilise la DTD XHTML1.0 : Exemple de déclaration de DTD externe de type PUBLIC : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> Dans l'exemple précédent, la chaîne de caractères après le mot PUBLIC fait référence tout d'abord à l'identifiant de la DTD (ici le signe - signifie que la DTD n'a pas de numéro d'enregistrement officiel), au propriétaire de la DTT (ici le W3C), puis son nom, enfin sa langue.

type_enregistrement // proprietaire // DTD description // langue avec : type_enregistrement : un signe + si c'est selon la norme ISO 9070, un signe - sinon ; proprietaire : nom du propriétaire (entreprise ou personne) ; DTD description : une description textuelle pour laquelle les espaces sont autorisés ; langue : un code de langue ISO 639. L'adresse du fichier décrivant la DTD n'est pas obligatoire, le processeur XML peut utiliser les informations de l'identifiant public pour essayer de générer une adresse. Il faut noter cependant qu'il n'est pas toujours possible de trouver l'adresse à partir de l'identifiant, il est donc conseillé de faire suivre l'identifiant par l'adresse du fichier. PUBLIC est utilisé lorsque la DTD est une norme ou qu'elle est enregistrée sous forme de norme ISO par l'auteur. SYSTEM est utilisé pour donner l'adresse du fichier qui contient la DTD dans le cas où la DTD n'est pas publique. 3. Déclarations d'éléments Pour pouvoir créer un document XML, il est utile dans un premier temps de définir les éléments pouvant être utilisés, ou plus exactement les informations que l'on désire utiliser. Une déclaration d'éléments est de la forme : <!ELEMENT nom type_element> nom type_element est le nom de l'élément est le type auquel il est associé. Un élément peut être de type texte, vide (EMPTY), séquence ou choix d'élément. Dans ces deux dernier cas, on indique la liste des éléments-enfants. Type d'élément ANY EMPTY #PCDATA L'élément peut contenir tout type de données. L'élément ne contient pas de données. L'élément doit contenir une chaîne de caractère. Élément texte Cet élément est le plus répandu, puisque c'est celui qui contient le texte. Il se déclare ainsi : <!ELEMENT elt (#PCDATA)> Un élément nommé livre dans la DTD contenant un type #PCDATA sera écrit de la façon suivante dans le document XML : <livre>tintin</livre>

Élément vide Un élément vide est, comme son nom l'indique, un élément qui n'a aucun contenu que ce soit de type texte, ou bien un autre élément. Le mot clé utilisé est EMPTY. <!ELEMENT elt EMPTY> Exemple d'utilisation : <elt /> <img width="100" height="30" src="paysage.jpg" alt="paysage de neige" /> Élément libre <!ELEMENT elt ANY> Élément qui peut contenir tout élément déclaré dans la DTD, aussi bien être vide ou contenir du texte. Il est préférable de ne pas utiliser trop souvent ce type de déclaration, car on perd les avantages qu'offre la rédaction d'une DTD, de fixer des contraintes précises sur la structure du document XML qui lui est lié. Élément mixte <!ELEMENT chapitre (#PCDATA para)*> <!ELEMENT citation (#PCDATA auteur+)> Si l'élément a un contenu mixte (données + éléments) il est possible d'utiliser PCDATA et les éléments imbriqués. Pour définir un tel modèle, il faut respecter deux règles : 1. Le mot clé #PCDATA doit obligatoirement être déclaré en premier; 2. Le groupe définissant le modèle de contenu mixte ne peut être affecté que de l'indicateur d'occurrence * (l'étoile). 4. Indicateurs d'occurrence? L'élément peut être optionnel 0 ou 1 fois elt? * L'élément peut être présent plusieurs fois (ou aucune) 0 ou n fois elt* + L'élément peut être présent au minimum une fois ou plusieurs fois Au moins une fois elt+ L'élément A ou l'élément B peuvent être présents A B, L'élément A doit être présent et suivi de l'élément B A,B ( ) Les parenthèses permettent de regrouper des éléments afin de leur appliquer les autres opérateurs (A,B)+

5. Déclaration des attributs Le rôle de la déclaration d'attributs est de donner pour un élément cible : les noms d'attributs permis; le type de chaque attribut; la valeur par défaut de l'attribut. <!ATTLIST elt nom_attribut type_attribut valeur_par_défaut> On peut déclarer plus d'un attribut pour le même élément avec une seule déclaration ATTLIST. Il suffit alors de répéter la séquence nom_attribut type_attribut valeur_par_défaut. Types d attribut Le type d'attribut représente le type de donnée de l'attribut, il en existe trois : littéral : permet d'affecter une chaîne de caractères à un attribut avec le mot clé CDATA. énumération : permet de définir une liste de valeurs possibles pour un attribut donné, afin de limiter le choix de l'utilisateur. les mots (token) : ID IDREF IDREFS ENTITY ENTITIES NMTOKEN NMTOKENS Littéral Type CDATA Description Données caractères (character data) Le contenu de type CDATA est traité comme une chaîne littérale, à l'exception des caractères < (plus petit que), > (plus grand que) et & (esperluette ou et commercial) pour lesquels on doit utiliser leur entité prédéfinie ou caractère correspondante. Les guillemets simples et doubles doivent être représentés par leur entité prédéfinie ou caractère lorsqu'ils servent de délimiteur de littéral. <!ATTLIST pomme couleur CDATA #IMPLIED> <pomme couleur="rouge" />

Énumération Type [valeurs énumérées] Description L'énumération est le seul type d'attribut n'étant pas représenté par un mot-clé XML. Le modèle de contenu est plutôt une liste de toutes les valeurs possibles pour un attribut, séparées par des barres verticales. Les choix prennent la forme suivante : <!ATTLIST img format (BMP GIF JPG) "JPG"> (valeur par défaut) <!ATTLIST date mois (Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre) #REQUIRED> Mots Type ID Description Identifiant Sert à identifier de façon unique un élément dans un document. Il ne peut y avoir plus d'un attribut de type ID ayant la même valeur dans le même document. Le contenu d'un attribut de type ID ne peut débuter que par des caractères alphabétiques ou le trait souligné (_). Les ID sous forme de nombre sont dangereux parce qu'un nombre n'est pas un nom XML et n'est donc pas un ID XML, autorisé. La solution classique préfixe les valeurs avec un caractère souligné ou une lettre normale. <!ATTLIST employé numéro_sécu ID #REQUIRED> <employé numéro_sécu="_12345678" /> <!ATTLIST client no ID #REQUIRED> <client no="_12345678" /> Référence à un identifiant. IDREF Réfère à un élément qui comporte un attribut de type ID. La valeur d'un attribut de type IDREF doit être la même qu'un attribut de type ID dans le même document. <!ATTLIST noteref ref IDREF #REQUIRED>... <noteref ref="biblio-1"/> Référence à un ou plusieurs identifiants. IDREFS Semblable au type IDREF à l'exception que l'on peut référer à plusieurs identifiants avec ce type d'attribut. <lien ref="section-1 section-2">

Entité ENTITY ENTITIES Les attributs de ce type doivent contenir une valeur correspondant à une entité générale déclarée dans la DTD correspondante. Entités Semblable au type ENTITY à l'exception que l'attribut doit contenir un ou plusieurs noms d'entités générales déclarées dans la DTD correspondante. Un nom XML (named token). NMTOKEN NMTOKENS Nom symbolique quelconque. Le nom XML ne doit pas contenir d'espaces. Un ou plusieurs noms XML, chacun étant séparé des autres par un ou plusieurs espaces. Référence : http://grds.ebsi.umontreal.ca/remillc/inu1011/2003/diapo-02-00.html (en partie) Valeur par défaut La valeur par défaut est la valeur prise par l'attribut si aucune valeur n'est précisée dans l'élément. Cette valeur doit être du même type que celui donné à l'attribut. S'il n'y a pas matière à définir une valeur par défaut on peut remplacer par un mot-clé : #REQUIRED : obligatoire, c'est-à-dire la valeur d'attribut doit être spécifiée lorsque l'élément est utilisé dans le document (par exemple en HTML il est obligatoire de donner l'attribut src avec l'élément img). <!ATTLIST elt attr CDATA #REQUIRED> #IMPLIED : facultatif (optionnel), c'est-à-dire la valeur d'attribut peut rester non spécifiée. <!ATTLIST elt attr CDATA #IMPLIED> #FIXED : est fixe et non modifiable, c'est-à-dire que l attribut a une valeur spécifiée. La valeur de l'attribut est fixée dans la DTD et ne peut pas être modifiée ou remplacée dans le document XML. En cas d'utilisation de ce mot clé, le champ defaultvalue qui le suit directement doit également être utilisé pour déclarer la valeur fixe de l'attribut. <!ATTLIST elt attr CDATA #FIXED "valeur"> Littéral : La vraie valeur par défaut en tant que chaîne entre guillemets. Exemple avec une liste de choix : <!ATTLIST message urgent (oui non) "non"> 6. Déclaration d'entités Référence : http://grds.ebsi.umontreal.ca/remillc/inu1011/2003/diapo-02-00.html 2003, Christian Rémillard L'entité (entity) sert à établir un lien entre un nom symbolique et un texte de remplacement ou un pointeur vers une ressource externe.

Il existe plusieurs types d'entités: Entités générales Entités prédéfinies Entités caractères Entités paramètres Entités générales On distingue deux types d'entités générales selon que la valeur de remplacement est située à l'intérieur du document (entité générale interne) ou dans une ressource à l'extérieur du document (entité générale externe). Ce type d'entité doit obligatoirement être déclaré dans une DTD. Entités générales internes <!ENTITY nom "valeur-de-remplacement"> Par exemple:... <!ENTITY org "École de Bibliothéconomie et des Sciences de l'information">... <p>cette conférence aura lieu à l'&org;.</p> Réalisation: Cette conférence aura lieu à l'école de Bibliothéconomie et des Sciences de l'information. La valeur textuelle de remplacement peut contenir d'autres entités. Voir l'exemple à ce sujet. Entités générales externes L'entité générale externe est utilisée lorsque le texte de remplacement est situé à l'extérieur de la DTD. On utilise alors un identifiant pour désigner la ressource qui contient le texte. <!ENTITY nom type-identifiant "identifiant-de-ressource"> L'identifiant peut être de type système ou publique. À la différence des entités générales internes, l'identifiant de la ressource permet d'adresser la ressource externe qui contient le texte de remplacement. : 1. Identifiant système L'identifiant système contient le mot clé SYSTEM (en majuscule) et une chaîne de caractères qui indique au système l'adresse (URL) de la ressource qui contient le texte de remplacement. <!ENTITY org SYSTEM "noms/org.txt"> Consultez l'exemple.

2. Identifiant publique L'identifiant publique est composé du mot clé PUBLIC (en majuscule), d'une chaîne de caractères constituant l'identifiant publique (formal public identifier, ou FPI) et d'une adresse URL que le système utilise pour repérer la ressource s'il ne peut le faire à l'aide du FPI. <!ENTITY org PUBLIC "-//EBSI//TEXT Organisme//FR" "noms/org.txt"> Entités prédéfinies La spécification [XML 1.0] a définit un jeu d'entités générales prédéfinies ( predefined entities ) pour les caractères utilisés dans le balisage. Il n'est donc pas nécessaire de les définir dans une DTD et elles peuvent être directement utilisées dans tout document XML. Ces entités prédéfinies sont listées dans le tableau suivant: Entités prédéfinies dans la spécification XML v1.0 Entité Valeur Unicode Caractère Description décimale hexadécimale & 38 x26 & et commercial (ampersand) > 62 x3e > plus grand que (greater then) < 60 x3c < plus petit que (lighter then) &apos; 39 x27 ' guillemet simple (apostrophe) " 34 x22 " guillemet double (quotation mark) L'exemple suivant: <description>l'élément <p> sert à marquer un paragraphe dans le dialecte XHTML.</description> sera réalisé de cette façon: L'élément <p> sert à marquer un paragraphe dans le dialecte XHTML. Entités caractères On peut faire référence à n'importe quel caractère du jeu Unicode à l'aide des entités caractères. La référence peut se faire soit à l'aide du numéro Unicode en base 10 (&#numéro-décimal;), soit à l'aide du numéro Unicode en base 16 (&#xnuméro-hexadécimal;). Par exemple, l'entité caractère suivante: sera représentée par le signe de la monnaie Euro. L'emploi d'entités caractères est particulièrement utile lorsque l'on désire afficher un caractère qui n'appartient pas au jeu de caractères utilisé pour créer le document XML.

Entités paramètres L'entité paramètre est utilisée principalement pour: Définir des modèles de contenus (d'éléments ou d'attributs) qui seront par la suite déclarés à plusieurs endroits. Ceci facilite la gestion de la DTD; Importer des déclarations à l'intérieur de la DTD et ainsi favoriser la modularité; Faire référence à du contenu non XML (images, son, applications, etc.) Les entités paramètres, à la différence des entités générales, ne peuvent être déclarées et utilisées que dans une DTD. La valeur de remplacement peut être définie à l'intérieur de la DTD (entité paramètre interne) ou à l'extérieur (entité paramètre externe). <!ENTITY % nom "valeur-de-remplacement"> La déclaration d'une entité paramètre doit apparaître avant la référence à celle-ci. Il est donc conseillé de regrouper les déclarations d'entités paramètres au début de la DTD. Entité paramètre interne Cet exemple illustre l'utilisation d'une entité paramètre pour définir un modèle de contenu réutilisable: <!ENTITY % contenu-infraligne "(#PCDATA em)*">... <!ELEMENT p %contenu-infraligne; > Cet exemple illustre comment créer un modèle de contenu réutilisable pour les attributs: <!ENTITY % attributs-communs "id ID #IMPLIED class CDATA #IMPLIED title CDATA #IMPLIED">... <!ATTLIST p %attributs-communs; > Entité paramètre externe Tout comme l'entité générale externe, l'entité paramètre externe peut utiliser un identifiant système ou publique pour référencer la valeur de remplacement: 1. Identifiant système 2. <!ENTITY % module-tableau SYSTEM "tableau.dtd"> 3. <!-- Il s'agit maintenant d'importer la DTD et de rendre 4. disponible ses composants --> 5. %module-tableau; 6.... <!ELEMENT div (tableau p)*> Consultez l'exemple. On peut tout aussi bien utiliser une entité paramètre externe pour rendre disponible un jeu d'entités générales, comme c'est le cas dans cet autre exemple qui importe le jeu d'entités générales xhtml-lat1.

7. Identifiant publique L'identifiant publique est composé du mot clé PUBLIC (en majuscule), d'une chaîne de caractères constituant l'identifiant publique (formal public identifier, ou FPI) et d'une adresse URL que le système utilise pour repérer la ressource s'il ne peut le faire à l'aide du FPI. <!ENTITY % module-tableau PUBLIC "-//USA-DOD//DTD Table Model 951010//EN" "http://www.docbook.org/xml/4.1.2/calstblx.dtd"> Sous-ensemble local de déclaration Le sous-ensemble local de déclaration (local declaration subset) permet d'effectuer des déclarations à même une instance XML. Ce mécanisme est utilisé pour: définir ou redéfinir des entités générales; inclure des fichiers XML externes; ajouter des déclarations locales (il n'est cependant pas possible de redéfinir des déclarations), ou encore créer une DTD complète; créer des sections conditionnelles. Ceci est abordé au point plus loin dans cette leçon. compléter une DTD ou en redéfinir des parties; ou même insérer une DTD complète. Le sous-ensemble de déclaration s'insère à l'intérieur d'une déclaration de type de document, après les mots clé SYSTEM ou PUBLIC: <!DOCTYPE mémo SYSTEM "mémo.dtd" [ <!-- Sous-ensemble local de déclaration --> ]> L'exemple suivant illustre le cas d'utilisation d'un sous-ensemble local de déclaration pour définir une DTD complète: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE vide [ <!ELEMENT vide EMPTY> ]> <vide/> Dans cet exemple, un sous-ensemble local est utilisé pour redéfinir le contenu d'une entité générale: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE signature SYSTEM "signature.dtd" [ <!ENTITY org "Groupe de Recherche sur les Documents Structurés"> ]> <signature> &org; </signature>