XML et DTD: rappels Cours Document et Web Sémantique. Quelques concepts importants. Évolution de XML. Organisation



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

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

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

XML : documents et outils

SII Stage d informatique pour l ingénieur

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

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

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

Gestion Électronique de Documents et XML. Master 2 TSM

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

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

Programmation Internet Cours 4

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

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

Les outils de création de sites web

L'essentiel de XML. Cours XML. Olivier Carton

Manuel d intégration API FTP SMS ALLMYSMS.COM

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

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

Créer une base de données vidéo sans programmation (avec Drupal)

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

Les types de fichiers

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

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

Module http MMS AllMySMS.com Manuel d intégration

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

7.0 Guide de la solution Portable sans fil

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

L optimisation d une PowerBoutique pour le référencement

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

Guide de réalisation d une campagne marketing

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

! Text Encoding Initiative

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

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

«Expertise de ressources «pour l édition de revues numériques

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

Formation HTML / CSS. ar dionoea

4. SERVICES WEB REST 46

Installation de DocBook sur un système Linux

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

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

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

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

Partie publique / Partie privée. Site statique site dynamique. Base de données.

Groupe Eyrolles, 2004, ISBN :

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Systèmes d'informations historique et mutations

Livre Blanc WebSphere Transcoding Publisher

PARAMETRAGE CONSOLE ADMINISTRATION DE MESSAGERIE "VENDOME.EU" NOTICE UTILISATION

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Optimiser moteur recherche

Sana Sellami. Licence Professionnelle SIL

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

Base de données relationnelle et requêtes SQL

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Master d Informatique Corrigé du partiel novembre 2010

Formationcontinue: MaîtriserXMLetXSLT

Petite définition : Présentation :

A. Structurer le catalogue. v Dans le menu Catalogue, sélectionnez Catégories. 1. Les catégories. Chapitre 6 : Construire le catalogue ...

Programmation Web. Madalina Croitoru IUT Montpellier

Éléments de programmation et introduction à Java

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

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

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Programmation en Java IUT GEII (MC-II1) 1

FileMaker Server 12. publication Web personnalisée avec XML

Publier un Carnet Blanc

Les services usuels de l Internet

Le codage informatique

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

HTML, CSS, JS et CGI. Elanore Elessar Dimar

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INSTALLATION ET CONFIGURATION DE OPENLDAP

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

HTML. Notions générales

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

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

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

XML et recherche d information

Gestion documentaire (Extraits du CCI version 1.2)

Support pour les langues s écrivant de droite à gauche

FICHE N 2 LA GESTION COMMERCIALE DES CLIENTS ET PROSPECTS POUR LE SECTEUR DES ASSURANCES (NS 56)

Évaluation et implémentation des langages

La balise object incorporer du contenu en HTML valide strict

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

ING & NEWSLETTER NEWSLETTER RESPONSIVE

Normalisation et état des lieux de la prise en charge de l amazighe et des tifinaghes

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

Auguria_PCM Product & Combination Manager

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Transcription:

Plan et : rappels Cours Document et Web Sémantique Nicolas Malandain 1 Généralités Organisation Les éléments Les attributs Les sections littérales Les Entités Conseils 2 Organisation Les éléments Les attributs Les entités paramètres et - v1.0 1 / 48 et - v1.0 2 / 48 Quelques concepts importants Évolution de Méta langage à balises Données et balises sont des chaînes de caractères portable La syntaxe est stricte Langage à balises structurel et sémantique Les marqueurs définissent la sémantique du document Ce n est pas un langage de présentation (HTML) 1970 1986 : Standard Generalized Markup Language Langage sémantique et structurel à balises pour documents textuels Une application SGML : HyperText Markup Language restreint à la présentation des pages Web ne peut servir à l échange de données entre bases hétérogènes SGML résoud de nombreux problèmes Mais il est trop complexe (les spécifications = 150 pages techniques) est une application SGML conserve une grande partie de la puissance de SGML élimine les caractéristiques redondantes, compliquées à implanter et qui n ont montré aucun intérêt après plus de 20 ans et - v1.0 3 / 48 et - v1.0 4 / 48

Une famille de technologies 1 / 2 Une famille de technologies 2 / 2 1.0 est un SGML simplifié, diverses applications ont suivi : extensible Stylesheet Language XSLTransformation : transformation d un document en un autre XSL-Formatting Object : décrit la composition de pages destinées à l impression (rival de Postscript) Cascading StyleSheet (non ) : présentation de documents extensible Linking Language XLink : décrit la relation entre documents XPointer : identifie une partie de document XPath (non ) : cibler un ou des éléments d un document Schemas : description structurelle et sémantique à laquelle un document doit se conformer (++) Simple API for : API que tout parseur doit respecter Document Object Model : API permettant de manipuler un document Query Language, XHTML, SMIL, SVG,... et - v1.0 5 / 48 et - v1.0 6 / 48 HTML / Document bien formé et valide <p> Nicolas Malandain </p> <address> INSA de Rouen<br> BP08<br> Avenue de l Université<br> 76801 Saint Étienne du Rouvray </address> balises et sémantiques associées sont prédéfinies mélange de structurations logique et physique perte du sens <enseignant corps="ma^ıtre de conférences"> <prenom>nicolas</prenom><nom>malandain </nom> <adresse> <structure>insa de Rouen</structure> <bp>bp08</bp> <rue>avenue de l Université</rue> <cp>76801</cp> <ville>saint Étienne du Rouvray</ville> </adresse> </enseignant> extensibilité du langage structuration logique représentation physique déléguée (CSS, XSL) modularité et réutilisation des structures facilite l accès à des sources de données hétérogènes distingue 2 classes de documents : 1 les documents bien formés obéissent à la syntaxe du langage, 2 les documents valides sont bien formés et obéissent à une structure type définie dans une. Tout document valide peut être distribué sans sa (ou référence à sa ), il apparaîtra alors comme bien formé aux utilisateurs (humains ou électroniques : navigateur). et - v1.0 7 / 48 et - v1.0 8 / 48

Structure d un document de document Un prologue (facultatif mais fortement conseillé) une déclaration des instructions de traitement (utilisé par les moteurs navigateurs) une déclaration de type de document Un arbre d éléments Des commentaires (facultatifs) <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE article SYSTEM "article.dtd" [ <!ENTITY auteur "Sacha Touille"> ]> <?xml-stylesheet type="text/xsl" href="http://www.gratouille.com/article.xsl"?> <article> <titre> Le monde de la chatouille </titre> <auteur> &auteur; </auteur> <texte> &auteur; a écrit de nombreux d ouvrages sur le thème de... <!-- texte a développer --> </texte> </article> et - v1.0 9 / 48 et - v1.0 10 / 48 Déclaration Instructions de traitement <?xml version="1.0" encoding="iso-8859-1" standalone="yes"> la version du langage utilisé dans le document (1.0) La version 1.1 (de 2004) ajoute peu de choses (par exemple : code retour à la ligne IBM) le codage de caractères (charset) utilisé : sont autorisés les jeux de caractères définis dans la norme ISO 10646, les parseurs doivent traiter au moins les codages UTF-8 ou UTF-16 en l absence de déclaration, ils s attendent à de l UTF si un autre codage est utilisé il faut le spécifier l existence de déclaration extérieure au document : si le document est autonome : yes si le document nécessite la récupération de données externes : no Cette déclaration est facultative mais fortement conseillée notamment pour le problème des codages de caractères Instructions facultatives Leur contenu est transmis à une application qui déclenchera des traitements <?cible arg 1 arg 2...?> cible : nom d une application (xml est un mot réservé) arguments passés à l application cible <?xml-stylesheet type="text/css" href="style.css"?> et - v1.0 11 / 48 et - v1.0 12 / 48

Déclaration de type de documents L arbre d éléments 1 / 2 Déclaration : <!DOCTYPE elt-racine URI- [ déclarations internes ]> de structure à laquelle le document doit se conformer d entités de l élément racine de l arbre d éléments <!DOCTYPE lettre SYSTEM "lettre.dtd" [ <!ENTITY destinataire "Ultasonnul Thérèse"> <!ENTITY motif "Convocation"> ]> Un élément est composé : d une balise d ouverture d un contenu d une balise de fermeture Le nom d élément (balise) : caractères alpha-numériques, souligné, tiret et point pas de caractères d espacement ou de fin de ligne : est réservé pour les espaces de noms premier caractère alphanum ou la casse est importante aucune balise ne peut commencer par xml (qq soit la casse) et - v1.0 13 / 48 et - v1.0 14 / 48 L arbre d éléments 2 / 2 Le contenu d un élément L élément vide (sans contenu) : <nomelt></nomelt> <nomelt/> Un document comporte toujours un arbre d éléments Il y a un unique élément racine contenant les autres éléments Il n y a pas de chevauchement d éléments Commentaires : <!-- commentaire --> Un élément peut contenir un mélange : d éléments de données : tous les caractères exceptés & et < de références à des entités de sections littérales (CDATA) d instructions de traitement ne peut contenir la chaîne "--" inclusion de commentaires impossible et - v1.0 15 / 48 et - v1.0 16 / 48

Attributs d éléments Attributs d éléments réservés les attributs sont placés dans les balises d ouverture <nomelt att 1 ="val 1 " att 2 ="val 2 "...att n ="val n "> les noms d attributs obéissent aux mêmes règles que les noms d éléments les valeurs sont encadrées par " " ou ce qui permet : "aujourd hui" ou inversement les valeurs ne peuvent contenir les caractères ^, %, & Affectation de propriétés particulières à des éléments xml:lang permet de spécifier la langue du contenu de l élément <remerciement xml:lang="fr"> merci </remerciement> <remerciement xml:lang="en"> thank you </remerciement> xml:space spécifie si les espaces doivent être préservés dans le contenu de l élément xml:link spécifie qu un élément particulier est un lien xml:attribute gestion des attributs de XLink et - v1.0 17 / 48 et - v1.0 18 / 48 Section littérale Différents types d entités Pas d interprétation du contenu de la section littérale Pratique pour mettre du dans du Les entités sont comparables à des réserves d informations <![CDATA[ contenu non interprété ]]> <exemple> Section littérale: <![CDATA[<titre> Un titre littéral </titre>]]> </exemple> Ce qui donne : Section littérale: <titre> Un titre littéral </titre> internes paramètres prédéfinies externes Entités caractères numériques nommées interne générales contenu mixte non parsées externe Utilisation : entite="valeur" entité générale : &entite; entité paramètre : %entite; Les entités paramètres sont déclarées et utilisées dans les et - v1.0 19 / 48 et - v1.0 20 / 48

Entités caractères Entités de contenu mixte internes Entités ne contenant qu un seul caractère prédéfinies : caractères interdits dans un document amp : & gt : < quot : " apos : lt : > numériques : caractères saisis sous leur code unicode ç : ç (10) ou ç (16) nommées : noms associés à des caractères (déclaration obligatoire) &Pgr; pour Π ISO-8879 contient un ensemble standard d entités caractères nommées pour les alphabets latin, grec, nordique, cyrillique,... Entités dont la valeur est un mélange de texte et de balisage (=) Texte de remplacement, utile pour la maintenance et éviter la répétition <!DOCTYPE eltracine [ <!ENTITY entite "valeur "> ]> <!ENTITY insa "<ecole>insa de Rouen</ecole>"> et - v1.0 21 / 48 et - v1.0 22 / 48 Entités de contenu mixte externes 1 / 3 Entités de contenu mixte externes 2 / 3 La valeur de l entité est située à l extérieur du document valeur très grande elle peut contenir une déclaration <?xml...?>, dans ce cas seule la déclaration de codage encoding est obligatoire (standalone est inutile, version est optionnelle) segmentation du document en plusieurs Adressage de la valeur par une URL <!ENTITY entite SYSTEM URL > Adressage de la valeur par FPI (Formal Public Identifier) <!ENTITY entite PUBLIC "FPI " "URL "> L identificateur public permet une indirection entre le nom symbolique donné à l entité et son url. Si l application ne sait pas résoudre le FPI alors elle utilise l URL en secours. et - v1.0 23 / 48 FPI : "type//propriétaire//texte public//langue" type : identificateur unique (conforme ISO 9070) et enregistré : "+" exemple : ISBN identificateur non enregistré : "-" identificateur appartenant à l ISO débute par : ISO 8879-1986 propriétaire : personne, entreprise, organisme (absent pour l ISO) texte public : 2 parties motclé description textuelle DOCUMENT : l entité contient un doc SGML ou : l entité contient une ENTITIES : l entité contient des déclarations d entités... langue : indication de la langue (ISO 639) : EN, FR, IT,... et - v1.0 24 / 48

Entités de contenu mixte externes 3 / 3 Entités non (non parsées) 1 / 2 Les fichiers catalogues L utilisation de FPI nécessite l utilisation d un fichier catalogue, faisant correspondre chaque FPI à l URL où résident les données demandées. de catalogue (le format dépend de l application) "ISO 8879:1986//ENTITIES Greek Letters//EN" /usr/share/sgml/entities/sgml-iso-entities-8879.1986/isogrk1.ent "-//W3C// HTML 4//EN" /usr/share/sgml/html/dtd/4.01/strict.dtd L utilisation d entité non nécessite deux déclarations : le format de l entité (NDATA) l application capable de traiter ce format (NOTATION) La référence à une entité non ne peut se faire que dans un attribut <!DOCTYPE visite [ <!NOTATION vrml SYSTEM "/usr/local/bin/vrml"> <!ENTITY appartement SYSTEM "./plan/appart.vrml NDATA vrml> ]> <visite> <lieu3d plan="appartement"/> </visite> et - v1.0 25 / 48 et - v1.0 26 / 48 Entités non (non parsées) 2 / 2 Conseils pour l écriture de documents 1 / 2 Récapitulatif de l utilisation d entités Utilisation Caractère interne externe non externe Référence dans le contenu d un élément Référence dans la valeur d un attribut Nom symbolique comme valeur d attribut Référence dans la valeur d une autre entité Remplacement Remplacement Remplacement Interdit immédiat ou non (choix du développeur) Remplacement Remplacement 1 Interdit Interdit Non reconnu Interdit Interdit Message à l application ou appel de l application externe Remplacement Transmis tel quel Transmis tel quel Interdit 1. Attention : les ou de la valeur doivent être balancés et - v1.0 27 / 48 choisir des noms d éléments qui représentent leur rôle, il doivent être aussi explicites que possible (lisibles par l homme). la position d un élément à l intérieur d un autre est importante (l ordre des éléments est préservé) marquer les constructions morphosyntaxiques ayant une sémantique dans le document par des balises spécifiques le balisage doit être indépendant de la réalisation physique du document (ex : pas de <gras>) préférer un balisage métatypographique : (ex : <important>, <ligne>, <cellule>) inclure dans le document des métadonnées descriptives afin de décrire le document (cf. RDF) l indexation d un document se fait sur le contenu des éléments, pas sur les valeurs des attributs et - v1.0 28 / 48

Conseils pour l écriture de documents 2 / 2 Notion de validation Utilisez un élément lorsque : le contenu comporte plusieurs mots l ordre est important (il n y a pas d ordre sur les attributs) l information fait partie du contenu du document en opposition à un paramètre ajustant le comportement d un élément. Si un processeur n est pas capable de traiter un document, il affichera le contenu des éléments mais pas les attributs. Utilisez un attribut lorsque : l information modifie l élément d un point de vue du traitement exemple : <liste type="numero">...</liste> vous souhaitez contrôler les valeurs l information est un identifiant unique ou une référence à l identifiant d un autre élément (cf. ID et IDREF) Un document valide inclut une déclaration de à laquelle le document doit se conformer Si le document ne se conforme pas à la incluse, il est invalide La contrainte document bien formé est obligatoire La contrainte document valide est facultative Le parseur qui parcoure un document peut ou non vérifier sa validité, peut ou non traiter les erreurs en résultant, cela dépend de l application souhaitée. et - v1.0 29 / 48 et - v1.0 30 / 48 Contenu d une Document Type Definition Un exemple simple de Une contient : la liste des éléments autorisés pour chaque élément, le contenu autorisé pour chaque élément, la liste des attributs et valeurs autorisés les entités autorisés La ne donne pas d information sur : l élément racine du document (cf. DOCTYPE) le nombre d occurences d un élément dans le document le contenu textuel des éléments le sens d un élément (si il contient une date ou le nom d une personne) Fichier personne.dtd <?xml version="1.0" encoding="iso-8859"?> <!ELEMENT personne (identite, profession*)> <!ELEMENT identite (prenom, nom)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT nom (#PCDATA)> <!ELEMENT profession (#PCDATA)> Fichier dupond.xml <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE personne SYSTEM "./personne.dtd" > <personne> <identite> <prenom>jean</prenom> <nom>dupondavecund</nom> </identite> <profession>detective</profession> <profession>garde du corps</profession> </personne> et - v1.0 31 / 48 et - v1.0 32 / 48

La déclaration de Prologue d une Un document valide possède une référence à la à laquelle il est comparé La référence à la est effectuée dans le prologue du document : <!DOCTYPE eltracine [decl internes ]> <!DOCTYPE eltracine SYSTEM "URI- " [decl internes ]> <!DOCTYPE eltracine PUBLIC "FPI " "URI- " [decl internes ]> Il est possible de déclarer la dans la partie déclaration interne du document, mais aussi de mixer déclaration interne et externe. Une n a pas nécessairement de prologue Le prologue est identique à un document, excepté standalone et DOCTYPE qui n ont aucun sens dans une. Utilité : déclarer l encodage utilisé dans la : <?xml version="1.0" encoding="iso-8859-1"?> Remarque : la déclaration d encodage de la n est pas propagé au document et - v1.0 33 / 48 et - v1.0 34 / 48 Déclaration d éléments Modèles de contenu 1 / 3 Structure d une déclaration d élément <!ELEMENT nom element (modele contenu ) > nom element sera le nom donné à la balise modele contenu désigne les sous éléments autorisés, leur ordre, si du contenu textuel est autorisé,... Données textuelles parsés : #PCDATA Sous élément <!ELEMENT element (#PCDATA)> <!ELEMENT nom (#PCDATA)> <!ELEMENT element (souselement )> <!ELEMENT fax (numero)> Séquence de sous éléments (ordonnés) <!ELEMENT element (souselement1, souselement2,...)> <!ELEMENT identite (prenom, nom)> et - v1.0 35 / 48 et - v1.0 36 / 48

Modèles de contenu 2 / 3 Modèles de contenu 3 / 3 Nombre d occurence de sous éléments? : l élément ou groupe est optionnel + : l élément ou groupe apparaît au moins 1 fois * : l élément ou groupe apparaît de 0 à N fois <!ELEMENT identite (nom, nomjeunefille?, prenom+, surnom*)> Choix exclusif entre plusieurs sous éléments possibles <!ELEMENT element (souselement1 souselement2...)> <!ELEMENT situation (celibataire marie divorce)> Groupe (parenthèses) : permet de combiner les opérateurs précédents <!ELEMENT cercle (centre, (rayon diametre))> <!ELEMENT contact (nom, prenom?, adresse, (telfixe telmobile telbureau)*)> Contenu mixte : mélange de données textuelles et de sous éléments La seule possibilité est de combiner #PCDATA, et * <!ELEMENT element (#PCDATA souselement1...)*> <!ELEMENT paragraphe (#PCDATA citation)*> #PCDATA doit toujours être en tête élément vide : l élément n a pas de contenu contenu indéterminé <!ELEMENT element EMPTY> <!ELEMENT element ANY> et - v1.0 37 / 48 et - v1.0 38 / 48 Déclaration d attributs Types d attributs 1 / 2 Structure d une déclaration d attributs <!ATTLIST element attribut 1 type déclaration par défaut attribut 2 type déclaration par défaut... attribut n type déclaration par défaut > <!ATTLIST image src CDATA #REQUIRED width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED > CDATA : n importe quelle chaîne de caractères NMTOKEN : unité lexicale nominal = chaine de caractères obéissant aux règles d un nom (élément) excepté qu il n y a pas de restriction sur le premier caractère NMTOKENS : série de NMTOKEN séparés par des blancs énumération : un des NMTOKEN séparé par dans une liste <!ATTLIST element attribut (NOMTOKEN1 NMTOKEN2...)> <!ATTLIST date mois (Janvier Février Mars...)> ID : nom unique dans le document un élément ne peut avoir qu un attribut de ce type et - v1.0 39 / 48 et - v1.0 40 / 48

Types d attributs 2 / 2 Déclaration par défaut IDREF : fait référence à la valeur d un attribut de type ID permet de créer des relations entre des éléments, exemple : des projets, des personnes des personnes qui travaillent dans un ou plusieurs projets IDREFS : série de références à des ID séparées par des blancs ENTITY : contient le nom d une entité non parsée ENTITIES : série de noms d entités non parsés, séparés par des blancs NOTATION : fait référence à une NOTATION déclarée dans la <!NOTATION png SYSTEM "image/png"> <!NOTATION jpg SYSTEM "image/jpeg"> <!ATTLIST image type NOTATION (png jpg) #REQUIRED> #IMPLIED : l attribut est optionnel #REQUIRED : l attribut est obligatoire #FIXED : la valeur de l attribut est fixe et non modifiable L attribut est présent dans l élément même si il est omis <!ATTLIST element attribut type #FIXED "valeur obligatoire "> littéral : la valeur par défaut de l attribut est spécifiée <!ATTLIST element attribut type "valeur par default "> et - v1.0 41 / 48 et - v1.0 42 / 48 Utilisation et déclaration des entités paramètres d entité paramètre Les entités générales ne peuvent servir de texte de substitution pour un modèle de contenu ou une liste d attributs dans une Les entités paramètres autorisent ces substitutions dans une Déclaration <!ENTITY % entite parametre "texte de substitution "> Utilisation %entite parametre; Utile pour répéter des modèles de contenu ou des listes d attributs communs à des éléments et - v1.0 43 / 48 Fichier location.dtd <!ELEMENT location (appartement maison meuble chambre)+> <!ELEMENT appartement (adresse, nb pieces, loyer, charges) <!ELEMENT maison (adresse, nb pieces, loyer) <!ELEMENT meuble (adresse, nb pieces, loyer, charges) <!ELEMENT chambre (adresse, nb pieces, loyer, charges) Avec une entité paramètre : <!ELEMENT location (appartement maison meuble chambre)+> <!ENTITY % caracteristiques "adresse, nb pieces, loyer"> <!ELEMENT appartement (%caracteristiques;, charges)> <!ELEMENT maison (%caracteristiques;)> <!ELEMENT meuble (%caracteristiques;, charges)> <!ELEMENT chambre (%caracteristiques;, charges)> plus de souplesse dans la gestion de la Remarque : L utilisation de l entité paramètre en tant que partie d une déclaration d élément n est possible qu en externe et - v1.0 44 / 48

Rédéfinition d entités paramètres Sous ensembles externes de Il est possible de redéfinir de manière locale une entité paramètre En cas de conflit de noms d entités paramètres, la première lue est prioritaire (la interne est lue en premier) Dans l exemple précédent location.dtd, il est possible d ajouter dans le sous ensemble interne de la du document un sous élément : <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE location SYSTEM "location.dtd" [ <!ENTITY % caractéristiques "adresse, nb pieces, loyer, type chauffage"> ]> Les peuvent être très complexes et donc très longues XHTML strict : +1500 lignes, DocBook : +11000 lignes Il est possible de séparer une en plusieurs parties DocBook : 28 parties (tableaux, notations,... ) Association des parties : appels d entités paramètres externes Déclaration : <!ENTITY % entites SYSTEM "URI- "> <!ENTITY % entites PUBLIC "FPI " "URI- "> Insertion de la externe : %entites ; et - v1.0 45 / 48 et - v1.0 46 / 48 Inclusion conditionnelle Quelques références Directive : IGNORE <![IGNORE[ déclaration à ignorer ]]> Directive : INCLUDE <![INCLUDE[ déclaration à inclure ]]> Principe : utiliser une entité paramètre pour les directives IGNORE et INCLUDE <!ENTITY % definition_prix "INCLUDE"> <![%definition_prix;[ <!ELEMENT prixht (#PCDATA)> <!ELEMENT prixttc (#PCDATA)> ]]> in a Nutshell, O Reilly (Elliotte Rusty Harold & W. Scott Means) Introduction à, O Reilly (Erik T. Ray) langage et applications, Eyrolles (Alain Michard) En fonction du besoin redéfinir definition prix dans un sous-ensemble interne de, avec pour valeur INCLUDE ou IGNORE. et - v1.0 47 / 48 et - v1.0 48 / 48