Présentation des DTD ( Document Type Definition

Documents pareils
XML : documents et outils

Projet Gestion des Formats de Fichier

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

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

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

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

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

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

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Gestion Électronique de Documents et XML. Master 2 TSM

Pack Fifty+ Normes Techniques 2013

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

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

BD et XML : Exercices

Comment échanger des données (fichiers) en format «STANDARD» lisibles par tous, quelque soit le programme et la version utilisés

Avertissement. La Gestion Electronique de Documents

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

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Titres de créances NégOciables Refonte Informatique et organisationnelle

Cégep de Saint Laurent Direction des communications et Direction des ressources technologiques. Projet WebCSL : Guide de rédaction web

SII Stage d informatique pour l ingénieur

Formats d images. 1 Introduction

Logiciel libre, OpenMeetings permet de créer ou simplement de participer à des conférences en ligne.

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

Google Adresses. Validez la fiche de votre entreprise ou organisation sur Google Maps

COMMENT PUBLIER SUR ARIANE?

ACTIVE IMPORT ProductInfo 1

Txt2tags User Guide French Translation

MODULE Mailing - Newsletter

Installation de DocBook sur un système Linux

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

Programmation Internet Cours 4

Les outils de création de sites web

Bernard Lecomte. Débuter avec HTML

Préparation d un post (article) pour idweblogs

Olivier Mondet

BR-Docs guide d applications mobile Android

Voici quelques-unes des questions auxquelles répond cette présentation.

02/02/2011. test 1. Communication visuelle & web. Pao. Principes fondamentaux. Les six principes de base. La mise en page. Module sur trois journées

Présentation de la gamme de produits et manuels numériques

Petit guide d utilisation Prezi

4/10. ext. MODE MODE. graphique. format ENREGISTREMENT. graphique 6/10 4/10 6/10. Cours E.Faÿs

Spétechs Mobile. D e r n i è r e m i s e à j o u r : s e p t e m b r e

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

MANUEL SUR L INFORMATION ET LA DOCUMENTATION EN MATIÈRE DE PROPRIÉTÉ INDUSTRIELLE. Réf. : Normes ST.35 page : NORME ST.35

Spétechs Mobile. D e r n i è r e m i s e à j o u r : a o û t 2014

Le référencement naturel

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Réaliser la fiche de lecture du document distribué en suivant les différentes étapes de la méthodologie (consulter le support du TD!

Module http MMS AllMySMS.com Manuel d intégration

1 Avant-Propos 5 Remerciements. 9 Usages, contraintes et opportunités du mobile. 33 Site ou application : quelle solution choisir? Table des matières

WEBINAIRES - DÉTAILS Marchés Clientèles Prix de présence Horaire Nombre de présentateurs Titre

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

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

IMPORTATION ARTICLES DANS LA BASE DE DONNEES

Master d Informatique Corrigé du partiel novembre 2010

Plateforme PAYZEN. Définition de Web-services

Outil collaboratif de lutte contre le gaspillage alimentaire et de promotion d'une consommation locale : Manuel d'utilisation

REFERENCEMENT NATUREL

et de la feuille de styles.

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Introduction aux concepts d ez Publish

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

TD : Codage des images

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

Learning Object Metadata

Normes techniques 2011

NORMES DE PRÉSENTATION DES MANUSCRITS

L'essentiel de XML. Cours XML. Olivier Carton

Archivage pérenne : les formats conformes Version :

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

Editeur html Guide de l'utilisateur

Gestion Electronique de Document (ECM/GED)

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

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

Etapes de création d une revue électronique

COMMENT REDIGER UN RAPPORT TECHNIQUE?

RTDS G3. Emmanuel Gaudin

2 S I M 1 P H O N E G U I D E U T I L I S A T E U R. Guide d utilisation E-commerce / Prestashop

INTRODUCTION AU CMS MODX

Spétechs Mobile. Octobre 2013

Charte éditoriale 1- Comment préparer un contenu écrit pour le Web?

DIRECTIVES CONCERNANT L UTILISATION DU NOM, DE L ACRONYME, DE L EMBLEME ET DES NOMS DE DOMAINE INTERNET DE L UNESCO

3 ème 2 DÉVELOPPEMENT FACTORISATIONS ET IDENTITÉS REMARQUABLES 1/5 1 - Développements

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

SEO On-page. Avez-vous mis toutes les chances de votre côté pour le référencement de votre site?

AccuRead OCR. Guide de l'administrateur

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Couche application. La couche application est la plus élevée du modèle de référence.

Systèmes d'informations historique et mutations

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Un mini-site internet en une après-midi


Canon Mobile Printing FAQs

Pelleas : Le projet XML pour le systeme d information documentaire du polytechnicum de Marne- la Vallée

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Transcription:

Présentation des DTD ( Document Type Definition ) Table des matières 1 Introduction 2 1.1 Composantes d une DTD....................................... 2 1.2 Lien entre XML et DTD........................................ 2 2 Définition des éléments 3 2.1 Déclaration............................................... 3 2.2 Contenu libre............................................. 3 2.3 Contenu vide.............................................. 3 2.4 Contenu textuel............................................ 4 2.5 Contenu composé........................................... 4 2.6 Contenu alternatif........................................... 5 2.7 Contenu combiné........................................... 5 2.8 Répétition de contenu......................................... 5 2.9 Contenu mixte............................................. 6 3 Définition des attributs 6 3.1 Déclaration d attribut......................................... 6 3.2 Contenu textuel (CDATA)....................................... 7 3.3 Identificateurs XML (NMTOKEN).................................. 7 3.4 Liste d identificateurs......................................... 7 3.5 Identifiant (ID) et référence (IDREF ou IDREFS).......................... 8 4 Définition des entités 8 4.1 Les entités internes.......................................... 8 4.2 Les entités externes XML....................................... 9 4.3 Les entités externes non XML..................................... 9 5 Les clauses INCLUDE et IGNORE 10 6 Les entités paramètres 10 6.1 Les entités paramètres internes.................................... 10 6.2 Les entités paramètres externes.................................... 10 7 Partie interne / externe 11 8 Les sections conditionnelles 11 1

9 La DTD DocBook 12 9.1 Les déclarations de caractères..................................... 12 9.2 Les déclarations de notations..................................... 13 9.3 Déclarations des éléments....................................... 13 9.4 Déclarations des contenu d éléments................................. 14 1 Introduction 1.1 Composantes d une DTD Les DTD viennent de SGML. La version XML est une simplification de la version SGML. Dans une DTD on trouve : des déclarations d éléments, des déclarations d attributs, des déclarations d entités : internes XML, externes XML ou non XML. 1.2 Lien entre XML et DTD La référence à la DTD doit être placée au début du fichier. Avec la DTD hello.dtd : <!ELEMENT hello (#PCDATA) > Le document XML ci-dessous est valide : <!DOCTYPE hello SYSTEM "http://monserveur.fr/dtds/hello.dtd" > <hello>hello</hello> On peut enrichir la DTD avec des déclarations locales placées le document XML : <!DOCTYPE bye SYSTEM "http://monserveur.fr/dtds/hello.dtd" [ <!ELEMENT bye EMPTY > ]> <bye /> On peut même se passer de la DTD : <!DOCTYPE bye [ <!ELEMENT bye EMPTY > ]> <bye /> 2

Un document XML bien formé qui respecte sa DTD est dit valide. Il est plus facile d écrire des feuilles de style pour les documents valides! Les URL de DTD relatives sont interprétées à partir de la position du document XML. 2 Définition des éléments 2.1 Déclaration <!ELEMENT nom-d élément modèle-de-contenu > Les attributs d un élément sont déclarés dans un deuxième temps. 2.2 Contenu libre Dans ce cadre il n y a aucune contrainte sur le contenu d un élément : <!ELEMENT doc ANY> Exemples : <doc> Ceci est une <i>documentation</i> très simple. </doc> <doc> <i>documentation </i> <b>importante<b> </doc> <doc /> 2.3 Contenu vide C est la contrainte la plus forte, le contenu doit être vide : <!ELEMENT toc EMPTY> Exemples : <toc></toc> <toc/> <toc /> 3

Contre exemples (attention aux espaces entre les éléments) : <toc> </toc> <toc> </toc> 2.4 Contenu textuel L élément doit contenir du texte (éventuellement vide) analysable dans l encodage du document (Parsed Character Data) : <!ELEMENT comment (#PCDATA)> Exemples : <comment> Un commentaire sur la balise <![CDATA[<p>]]> et <i> </comment> <comment><!-- no comment --></comment> <comment/> 2.5 Contenu composé Le contenu est composé de plusieurs parties ordonnées : <!ELEMENT produit (nom,prix,#pcdata)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prix (#PCDATA)> Exemple : <produit> <nom>xml par la pratique</nom> <prix>20</prix> Comment programmer des applications XML. </produit> Cette version est préférable : <!ELEMENT produit (nom,prix,comment)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prix (#PCDATA)> <!ELEMENT comment (#PCDATA)> 4

2.6 Contenu alternatif Plusieurs choix sont possibles pour construire le contenu : <!ELEMENT reponse (oui non)> <!ELEMENT oui EMPTY> <!ELEMENT non EMPTY> Exemples : <reponse> <oui/> </reponse> <reponse> <non></non> </reponse> Contre exemples : <reponse> <oui/><non/> </reponse> <reponse> <oui/><oui/> </reponse> <reponse/> 2.7 Contenu combiné L utilisation des parenthèses permet de combiner les contenus composés et alternatifs : <!ELEMENT personne (nom,(adr email)) > Exemple : <personne> <nom>...</nom> <adr>49 Bd de la Révolution</adr> </personne> <personne> <nom>...</nom> <email>tartanpion@...</email> </personne> Deux notations équivalentes : <!ELEMENT personne (((age,adr) (age,email)),nom)> <!ELEMENT personne (age,(adr email),nom)> 2.8 Répétition de contenu Les caractères?, +, * ajoutés à un contenu permettent de le répéter respectivement de 0 à 1 fois (? ), de 1 à n fois ( + ) ou de 0 à n fois ( * ). <!ELEMENT chapitre ( nom, date?, auteur*, intro?, (nom-de-section,corps-de-section)+ )> 5

Document XML valide : <chapitre> <nom>utiliser les DTD</nom> <date>10/11/2002</date> <!-- optionnel --> <!-- 0 à n fois --> <auteur>...</auteur><auteur>...</auteur> <!-- optionnel --> <intro>...</intro> <!-- 1 à n fois --> <nom-de-section>préambule</nom-de-section> <corps-de-section>...</corps-de-section> </chapitre> Cette version est préférable : <chapitre>... <section> <nom-de-section>préambule</nom-de-section> <corps-de-section>...</corps-de-section> </section> </chapitre> 2.9 Contenu mixte Le contenu mixte dénote un mélange entre texte et éléments XML (l étoile * est obligatoire) : <!ELEMENT p (#PCDATA b i tt)* > Document XML valide : <p>un <i>exemple</i> <b>important</b> de paragraphe <tt>html</tt></p> On peut noter sur cet exemple les six noeuds fils de l élément p (trois de type texte et trois de type élément). 3 Définition des attributs 3.1 Déclaration d attribut Syntaxe : <!ATTLIST nom_élément nom_attribut_1 type_attribut_1 déclaration_de_défaut_1 nom_attribut_2 type_attribut_2 déclaration_de_défaut_2... > Les déclarations de défaut : 6

valeur #REQUIRED #IMPLIED #FIXED valeur valeur par défaut, l attribut doit être renseigné, l attribut est facultatif, l attribut a toujours la même valeur 3.2 Contenu textuel (CDATA) Les attributs de type CDATA contiennent des chaînes de caractères (les caractères < et & ne sont pas autorisés). <!ELEMENT a ANY> <!ATTLIST a b CDATA #IMPLIED c CDATA Hello > Documents XML valides : <a b="coucou" c="10">... </a> <a b="coucou & salut" /> <a/> 3.3 Identificateurs XML (NMTOKEN) Un attribut de type NMTOKEN ou NMTOKENS contient un ou plusieurs identificateurs XML séparés par des blancs (espace, tabulation et/ou retour chariot) : <!ELEMENT exercice (#PCDATA)> <!ATTLIST exercice niveau NMTOKENS #IMPLIED> Documents XML valides : <exercice niveau="facile">... </exercice> <exercice niveau="difficile facultatif">... </exercice> 3.4 Liste d identificateurs Exemple : <!ELEMENT prix (#PCDATA)> <!ATTLIST prix monnaie (euros dollars) #REQUIRED> Document XML valide : 7

<prix monnaie="euros"> 10 </prix> Les valeurs possibles doivent être des identificateurs (tokens) XML. Les listes de valeurs n existent que pour les attributs. 3.5 Identifiant (ID) et référence (IDREF ou IDREFS) Un attribut de type ID contient un identificateur XML qui doit être unique dans le document (unicité des clefs). Un attribut de type IDREF contient un identificateur XML (ou plusieurs pour IDREFS ) qui doit être présent dans un attribut typé ID du document (contrainte de référence). Exemple : DTD et document XML valide : <!ELEMENT p (#PCDATA)> <!ATTLIST p clef ID #IMPLIED> <!ELEMENT lien (#PCDATA)> <!ATTLIST lien ref IDREF #REQUIRED> <p clef= intro > Ceci est une intro... </p>... Ce détail est expliqué dans <lien ref="intro">l introduction</lien>. 4 Définition des entités 4.1 Les entités internes Les entités internes sont des macros qui permettent de factoriser et de paramétrer les documents XML. <!ENTITY nom_entité "valeur"> Caractéristiques : les références se font par &nom entité; les définitions circulaires sont interdites, le développement se fait à la demande, ils sont utilisables dans les documents XML. Exemple : <!ENTITY dom.luminy "univ-mrs.fr" > <!ENTITY dom.dil "dil.&dom.luminy;" > Fragment de document XML valide : <email> massat@&dom.dil; </email> <a href="http://www.&dom.dil;">...</a> 8

4.2 Les entités externes XML Les entités externes XML permettent d inclure des documents XML identifiés par une URL. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE livre SYSTEM "livre.dtd" [ <!ENTITY chap1 SYSTEM "chapitre1.xml.inc"> <!ENTITY chap2 SYSTEM "chapitre2.xml.inc"> ] > <livre> &chap1; &chap2; </livre> Contraintes sur le document XML inclu : il peut contenir un prologue (encodage), pas de référence à une DTD, il doit être bien formé, c est à dire contenir un élément complet, 4.3 Les entités externes non XML Une entité externe non XML peut contenir n importe quoi (image, son, données, etc.). Nous devons donc, au préalable, définir un type : <!NOTATION nom_du_type SYSTEM "url_associé_au_type"> Par exemple : <!NOTATION JPEG SYSTEM "JPG"> <!NOTATION JPG SYSTEM "JPG"> <!NOTATION PNG SYSTEM "http://www.w3.org/tr/rec-png"> <!NOTATION SWF SYSTEM "http://www.macromedia.com/software/flash"> Le nom du type n est qu un raccourci. C est l URL qui identifie le type. On peut ensuite définir l entité externe non XML : <!ENTITY maison SYSTEM "maison.jpg" NDATA jpeg> La référence &maison; est impossible (ce n est pas du XML). Son utilisation doit passer par un attribut typé entité externe non XML : DTD : <!ELEMENT image EMPTY> <!ATTLIST image src ENTITY #REQUIRED> XML : <image src="maison"/> <!-- pas de &..; --> L attribut peut également être typé ENTITIES, on peut dans ce cas lui associer plusieurs entités externes non XML. 9

5 Les clauses INCLUDE et IGNORE Deux exemples : <![IGNORE[ ]]>... partie de la DTD à ignorer... et <![INCLUDE[ ]]>... partie de la DTD à traiter... 6 Les entités paramètres 6.1 Les entités paramètres internes Les entités paramètres sont des macros qui permettent de factoriser et de paramétrer les DTD. Syntaxe : <!ENTITY % nom_entité "valeur"> Le référencement se note %nom entité; <!ENTITY % statut "statut (public privé) #IMPLIED"> <!ELEMENT article (#PCDATA)> <!ATTLIST article date CDATA #IMPLIED %statut; > 6.2 Les entités paramètres externes Les entités paramètres externes permettent d inclure des DTD externes. <!ENTITY % chapitre SYSTEM "chapitre.mod"> <!ENTITY % tableau SYSTEM "http://monserveur.fr/dtd/tableau.mod"> %chapitre; %tableau; 10

7 Partie interne / externe <!DOCTYPE livre SYSTEM "livre.dtd" [... partie interne... ] > La partie interne est traitée avant la partie externe. Il est donc possible de faire varier la DTD à partir des déclarations internes. Les clauses IGNORE et INCLUDE ne sont pas utilisables dans la partie interne. 8 Les sections conditionnelles La DTD : <!ENTITY % attr.date IGNORE > <!ELEMENT para ANY> <!ELEMENT titre ANY> <![%attr.date;[ ]]> <!ATTLIST para date CDATA #IMPLIED> <!ATTLIST titre date CDATA #IMPLIED> Le document XML : <!DOCTYPE para SYSTEM "essai.dtd" [ <!ENTITY % attr.date INCLUDE > ]> <para date="10/01/2015" >Un message</para> 11

9 La DTD DocBook <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" > <article> <title>foo</title> <section> <title>sect1</title> <para>this is a paragraph.</para> <blockquote><para>this is a block quote.</para></blockquote> <section> <title>section 1.1</title> <para>this is a paragraph with a <citetitle>title citation</citetitle>, a <command>hello</command>, and some <computeroutput>computer output</computeroutput>. </para> <itemizedlist> <listitem><para>this is a list item.</para></listitem> </itemizedlist> </section> </section> </article> 9.1 Les déclarations de caractères... <!ENTITY aacute "á"> <!ENTITY Aacute "Á"> <!ENTITY acirc "â"> <!ENTITY Acirc "Â"> <!ENTITY agrave "à"> <!ENTITY Agrave "À"> <!ENTITY aring "å"> <!ENTITY Aring "Å"> <!ENTITY atilde "ã"> <!ENTITY Atilde "Ã"> <!ENTITY auml "ä"> <!ENTITY Auml "Ä"> <!ENTITY aelig "æ"> <!ENTITY AElig "Æ"> <!ENTITY ccedil "ç"> <!ENTITY Ccedil "Ç"> <!ENTITY eth "ð"> <!ENTITY ETH "Ð"> <!ENTITY eacute "é"> <!ENTITY Eacute "É"> <!ENTITY ecirc "ê"> <!ENTITY Ecirc "Ê"> <!ENTITY egrave "è"> <!ENTITY Egrave "È"> <!ENTITY euml "ë"> <!ENTITY Euml "Ë"> <!ENTITY iacute "í"> <!ENTITY Iacute "Í"> <!ENTITY icirc "î"> <!ENTITY Icirc "Î"> <!ENTITY igrave "ì"> <!ENTITY Igrave "Ì"> <!ENTITY iuml "ï"> <!ENTITY Iuml "Ï"> <!ENTITY ntilde "ñ"> <!ENTITY Ntilde "Ñ">... 12

9.2 Les déclarations de notations... <!ENTITY % local.notation.class ""> <!ENTITY % notation.class "BMP CGM-CHAR CGM-BINARY CGM-CLEAR DITROFF DVI EPS EQN FAX GIF GIF87a GIF89a JPG JPEG IGES PCX PIC PNG PS SGML TBL TEX TIFF WMF WPG linespecific %local.notation.class;"> <!NOTATION BMP PUBLIC "+//ISBN 0-7923-9432-1::..."> <!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION..."> <!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION..."> <!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION..."> <!NOTATION DITROFF SYSTEM "DITROFF"> <!NOTATION DVI SYSTEM "DVI"> <!NOTATION EPS PUBLIC "+//ISBN 0-201-18127-4::...">... 9.3 Déclarations des éléments <!ELEMENT title (%title.char.mix;)*> <!ATTLIST title %pagenum.attrib; %common.attrib; %title.role.attrib; %local.title.attrib; > <!ELEMENT subtitle (%title.char.mix;)*> <!ATTLIST subtitle %common.attrib; %subtitle.role.attrib; %local.subtitle.attrib; > On remarque dans cet extrait que le contenu des éléments n est jamais donnée directement. Les rédacteurs de DTD passent généralement par une entité paramètre. 13

9.4 Déclarations des contenu d éléments <!ENTITY % pagenum.attrib "pagenum CDATA #IMPLIED"> <!ENTITY % local.common.attrib ""> <!ENTITY % common.attrib "id ID #IMPLIED revisionflag (changed added deleted off) #IMPLIED %local.common.attrib;" > <!ENTITY % local.title.char.mix ""> <!ENTITY % title.char.mix "#PCDATA %gen.char.class; %link.char.class; %tech.char.class; %docinfo.char.class; %inlineobj.char.class; %local.title.char.mix;"> <!ENTITY % local.gen.char.class ""> <!ENTITY % gen.char.class "abbrev acronym citetitle emphasis footnote phrase quote trademark %local.gen.char.class;"> Les entités paramètres local.xxx permettent d étendre cette DTD en ajoutant du contenu et/ou des attributs. 14