XML Introduction et concepts.

Slides:



Advertisements
Présentations similaires
Tutoriel - Les Ressources du BCH
Advertisements

Données structurées et XML
XML.
Présentation générale de SPIP Fonctionnalités principales dun CMS La séparation entre contenu et présentation Susciter linteractivité en interne et en.
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Données structurées et XML
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
version Beta Marie Calberg Ninni Louhelainen SLFN7
TP 3-4 BD21.
CREATION DE FEUILLE DE STYLE pour structuré le document XML
ONRN V2 Guide de contribution. Organisation des documents Listes de valeurs Ce répertoire contient les listes de valeurs qui sont utilisées pour qualifier.
Initiation au système d’information et aux bases de données
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Algorithmique et Programmation
Introduction à DOM Maroua Bouzid
17 octobre 2012 Grégory Petit
Chap 4 Les bases de données et le modèle relationnel
28 novembre 2012 Grégory Petit
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Structures de données IFT-2000
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Initiation aux bases de données et à la programmation événementielle
Les feuilles de style CSS
1 Programmation Web II 2 ème année Licence Appliquée IAG Faculté des Sciences Economiques et de Gestion de Nableul Université 7 novembre à Carthage Années.
Le langage XHTML 420-S4W-GG Programmation Web Client
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Le langage XML.
LES INFOS de Philippe et Patrick Journal d'informations en ligne Infospp.free.fr Mai 2006.
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
XML: Plan I. Origines et base 3 II. DTD et Schéma 47
S'initier au HTML et aux feuilles de style CSS Cours 5.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
IUT SRC Année 2004/2005Antonio Capobianco 1 HTML>Formater du texte>Les titres Définir les titres HTML distingue 6 niveaux de titre : Titre N°1 Titre N°2.
Introduction à XML Yves Bekkers. Plan Introduction - structurer l’information Les langages à balises - un peu d’histoire XML - concepts de base Outils.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
1. Introduction 2. DTD 3. Schémas
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
Document Type Definition (DTD) Plan 2.1Introduction 2.2Déclaration de Document Type 2.3Déclaration d’élément Type 2.3.1Séquences, Choix, indicateurs d’Occurrence.
eXtensible Markup Language. Généralités sur le XML.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
Comprendre le SGBDR Microsoft Access – partie 2
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
LDAP (Lightweight Directory Access Protocol)
Nouvelles Technologies Internet & Mobile
Objectifs du développement Des agendas culturels et services quotidiens de La Libre Belgique et de La Dernière Heure et proposera des services d’informations.
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Initiation aux bases de données et à la programmation événementielle
XML : un métalangage pour la description de documents structurés XML a été défini par le consortium W3 en fonction de 2 objectifs: Compenser les limitations.
Introduction Module 1.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Dreamweaver Séance 1.
Bloc 1 - UE 5 - Technologies de l’information et de la communication TIC Bachelier en immobilier T. SOUMAGNE.
Présentation de Facebook
XML les données réellement portables La nécessité d’un format de données universel et lisible se faisait sentir depuis longtemps, aujourd’hui avec le développement.
DTD EAD.
INF2005– Programmation web– A. Obaid Variantes de HTML.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Programmation Web Programmation WAMP/LAMP Premiers principes.
Transcription de la présentation:

XML Introduction et concepts

Généralités Historique Tous les langages de développement sur Internet ont un ancêtre commun : SGML soutenu par IBM pour la saisie et la mise en page de texte Le plus connu d'entre eux est : HTML devenu à ce jour le standard du développement Internet au début : n'était pas destiné à ses applications complexes servait uniquement à de la publication d'information sur Internet Différents langages ont été associés à HTML mais nos besoins ont évolué c'est là que XML intervient… 2

Généralités Vision du document par ces langages Tous ces langages essaient de représenter le document par ses structures On distingue dans un document : Le contenu (ou le texte) La structure logique (ou éditoriale) La structure physique (ou présentation, affichage) La sémantique (ou la signification) SGML met en avant la structuration logique HTML met en avant la structuration physique D'autres langages mélangent les structures 3

Généralités Qu'entend-on par structure ? Titre Auteur Section XML: Des BD aux services Web Auteur Georges Gardarin Section 1. Introduction Ces dernières années ont vu l'ouverture des systèmes Paragraphe d'information à l'Internet. Alors que depuis les années 1970, ces systèmes se développaient souvent par applications plus ou moins autonomes, le choc Internet … Paragraphe Ainsi, on a vu apparaître une myriade de technologies nouvelles attrayantes mais peu structurantes voir perturbantes. Certaines n'ont guère survécues. D'autres ont laissé des systèmes peu fixables et peu sécurisés. … L'urbanisation passe avant tout par la standardisation des échanges : il faut s'appuyer sur ses standards Paragraphe ouverts, solides, lisibles, sécurisés, capable d'assurer l'interopérabilité avec l'Internet et les systèmes d'information. XML, "langua franca" … 2. La société ProXML Section 4

Généralités Vue balisée de la structure logique <Livre> <Titre> XML : Des BD aux Services Web</Titre> <Auteur> Georges Gardarin </Auteur> <Section titre = "Introduction" > <Paragraphe> Ces dernières années ont vu l'ouverture ses systèmes d'information à l'Internet. Alors que depuis les années 1970, ces systèmes se développaient souvent par applications plus ou moins autonomes, le choc Internet … </Paragraphe> <Paragraphe> Ainsi, on a vu apparaître une myriade de technologies nouvelles attrayantes mais peu structurantes voir perturbantes. Certaines n'ont guère survécues. . … </Paragraphe> <Paragraphe> L'urbanisation passe avant tout par la standardisation des échanges : il faut s'appuyer sur des standards ouverts, solides, lisibles, sécurisés, capable d'assurer l'interopérabilité avec l'Internet et les systèmes d'informat…, "langua franca" … </Paragraphe </Section> Les tags peuvent porter <Section titre= « la Société ProXML" > … plus ou moins de sémantique </Section> </livre> 5

Généralités Tag ou Balise ou Label Marque de début et fin permettant d'identifier un élément d'un texte Les balises sont de la forme classique < balise> valeur ou bloc </balise> Les balises peuvent être imbriquées <personne> <adresse> <rue>A. Briand</rue> <ville>Paris/ville> Éléments de données </adresse> </personne> Les langages à balises sont idéaux pour organiser une information structurée Un objet balise s’auto-décrit 6

Retour sur les origines SGML : Standard Generalized Markup Language premier essai de normalisation concernant les documents électroniques a été adopté comme standard en 1986 est constitué de plusieurs éléments qui changent pour chaque application : 1. Définition du type du document (DTD) : sert à préciser la structure du document 2. Instance du document : texte réel du document comportant les éléments SGML définis selon la DTD et qui identifient les différentes parties du document 3. Synthèse du document : options d’affichage (fonte, jeu de caractères, style…) 7

Retour sur les origines SGML : critiques Langage très complexe à utiliser beaucoup de rigueur est demandée à l'entrée du document Connaissance de la DTD (complexe) liens hypertextes possibles mais complexes Nécessite beaucoup d'investissement (temps + outils) si le but est une utilisation répandue sur Internet Pour que l'application du SGML soit des plus simples et potables sur Internet une application de ce langage a été créée : HTML 8

Retour sur les origines HTML C'est aujourd'hui le standard de développement Web Langage très simple car très intuitif un seul document peut comprendre aussi bien le texte à afficher que la manière de l'afficher Un grand nombre de logiciels disponibles pour créer des documents HTML Cela va du simple éditeur de texte comme vi sur Linux et bloc- note sous Windows jusqu'à des logiciels WYSIWYG comme FrontPage ou Dreamweaver HTML étant une application de SGML a une syntaxe à respecter dépendant d'une DTD il en existe une par version : actuellement la 4.01 9

Retour sur les origines HTML : critiques Syntaxe un peu trop statique Ne permet pas l'ajout de balises personnalisées …ce n'était pas son but premier Le but de HTML est de : permettre à un grand nombre d'utilisateurs de publier leurs documents sur le Web de la manière la plus simple possible, fonction qu'il remplit très bien Mais…depuis quelques années avec l'expansion de l'Internet : ce que l'on y trouve et ce que l'on y fait a totalement changé faisant que HTML a atteint ses limites 10

Origine et objectifs XML : objectifs XML dérivé du SGML tente de prendre ce qui est bien dans SGML et HTML les concepteurs ont essayé de ne garder que ce qui est nécessaire à une utilisation sur Internet On est passé d'une spécification de 155 pages à une spécification de 35 pages Le plus important point commun avec SGML : le fait que tout document XML peut être basé sur une DTD ou un schéma mais il n'est pas obligatoirement associé à une DTD ou un schéma Dans un document XML la mise en forme est séparée du document lui-même 11

Origine et objectifs XML : objectifs XML Fût au départ développé pour l'Internet Mais grâce aux DTD qui peuvent lui être associées Il peut aujourd'hui servir à différentes applications comme format d'échange ou comme mode de stockage de données Le fait que c'est un langage plus facile que son prédécesseur HTML : il est plus facile de créer les balises quand on en a besoin de bien connaître les balises et l'usage que l'on peut en faire ce qui rend XML très compréhensible par tous Une des grosses différences avec HTML : La présentation est séparée du texte A un même contenu peuvent être associées plusieurs mises en forme 12

Mise en œuvre de XML XML Permet de nettement séparer forme et fond Pour produire un document HTML, par ex., à partir de données en utilisant le format XML, il faut utiliser 2 fichiers : Données à mettre en forme Informations nécessaires à cette mise en forme En pratique, et dans un souci de généralisation et normalisation, il s'est avéré nécessaire d'ajouter un troisième 1. Optionnel : fichier précisant les types de balises utilisées jouant le rôle de DTD ou de schéma 2. Le document XML proprement parlé 3. le document contenant les informations de mise en forme dans sa sortie désirée : une feuille XSL 4. Dans le cas de sortie HTML, il peut être utile d'ajouter une feuille de style CSS (pour HTML) 13

Origine et objectifs XML au centre de la galaxie de standard XML Schéma Schémas de documents ebXML XSL Feuilles de styles DOM XSchema SAX API de programmation événementielle RDF XML DOM SAX API de programmation objet SOAP XSL Protocole Web Services SOAP RDF Description de ressources Web ebXML XQuery standards de e-Commerce 14

Origine et objectifs Exemple : publication multi-supports 15

Origine et objectifs Exemple 2 : Interrogation sur le Web : le XML permet de mettre au même format les documents : référence, ceux du Web 16

Origine et objectifs Exemple 3 : envoi de message : XML sert de langage descriptif pour l’uniformisation des protocoles de communication avec les Web-services 17

Structure d’un document XML a la structure suivante Prologue Prologue Élément racine 1rbre d'éléments ou structure Le prologue peut contenir : Arbre d’éléments une déclaration XML (structure du des instructions de traitement document) une DTD 18

Structure d'un document XML Exemple <!-- Prologue --> <?xml version=“1.0" encoding="ISO-8859-1" standalone="yes"?> <!-- Elément racine --> <biblio> <!-- Premier enfant --> <livre> <!-- Elément enfant titre --> <titre>Les Misérables</titre> <auteur>Victor Hugo</auteur> <nb_tomes>3</nb_tomes> </livre> <livre> <titre>L’Assommoir</titre> <auteur>Emile Zola</auteur> </livre> <livre lang="en"> <titre>David Copperfield</livre> <auteur>Charles Dickens</auteur> </livre> </biblio> 19

Document XML Le prologue La déclaration XML <?xml version="1.0" encoding=‘iso-8859-1’ standalone=‘yes’?> Indique au processeur qui va traiter le document : Version du langage : 1.0 (la plus récente) Encoding : jeu de codage de caractères utilisé. Le jeu de caractère standard pour la France est le ISO-8859-1 . Par défaut, l'attribut encoding a la valeur UTF-8 Standalone Si Standalone = 'yes' , le processeur considère que toutes les déclarations nécessaires au traitement du document sont incluses (le document est autonome et ne requiert aucune autre donnée) Cette déclaration est facultative, mais il est préférable de d'utiliser. Les attributs version, encoding et standalone doivent être placés dans cet ordre 20

Document XML Le prologue Les instructions de traitement Facultatives XML procure un mécanisme "Instruction de traitement" Permettant de saisir, dans le XML, des instructions ne faisant pas partie du document réel, mais transmises à des applications pour modifier les conditions de traitement du document Forme d’une instruction <?cible instruction ?> cible : nom de l’application vers laquelle l’instruction est dirigée Les instructions de traitement qui servent le plus souvent sont : la déclaration XML la déclaration de feuille de style 21

Document XML Le prologue Exemple : <?xml-stylesheet type= " text/css" href="Inventaire02.css" ?> L'application xml-stylesheet est le processeur de feuille de style du XML Deux feuilles de style différentes peuvent être utilisées : XSL : propres au XML CSS : feuilles de style apparues avec le HTML L'attribut type indique : de quel type de fichier il s'agit : text/css pour les feuilles de style CSS, par exemple L'attribut href indique : l'URL du fichier 22

Document XML le prologue La déclaration de type de document (DTD) Indique, dans le cas où le document se conforme à une structure de type particulier, quel est ce type Exemple 1 : <!DOCTYPE biblio SYSTEM "biblio.dtd"> Ce type de déclaration est celui d'une déclaration de DTD externe Elle définit : l'élément à partir duquel les déclarations seront utilisables, la racine du document ( biblio) ainsi que le nom de fichier biblio.dtd dans lequel se trouve la structure du document 23

Document XML Le prologue Exemple 2 : <!DOCTYPE bibliothèque [ <!ELEMENT bibliothèque (livre+)> <!ELEMENT livre (titre, auteur, ref)> <!ATTLIST livre type (policier | science-fiction | aventure) #REQUIRED> <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT ref (#PCDATA)> ] > Ce type de déclaration est celui d‘une déclaration de DTD interne Elle définit : Les éléments : leur structure et leurs attributs 24

Document XML L'arbre d’éléments Tout document XML est représenté sous la forme d'un arbre d'éléments Comme tout arbre, il comporte : une racine, des branches et des feuilles qui pour nous seront les éléments <liste.cd> <cd> <interprète>Keith Jarret</interprète> <titre>The Köln Concert</titre> <specif type="Live" nb_cd="1"/> </cd> <cd> <interprète>Keith Jarret</interprète> <titre>La Scala</titre> <specif type="Live" nb_cd="1"/> </cd> </liste.cd> 25

Document XML L'élément racine Tout document XML comprend un seul élément racine (en anglais : document élément) Cet élément englobe tous les autres, qu'ils soient : texte, éléments, attributs, entités, ou bien encore sections CDATA Dans notre précédent exemple, l'élément racine est liste.cd 26

Document XML Les éléments Exemple d'élément contenant du texte : Sont les composants majeurs du contenu du document Ils peuvent contenir du texte ou d'autres éléments Lorsqu'un élément contient d'autres éléments, ils sont appelés éléments enfants Exemple d'élément contenant du texte : <interprète>Keith Jarret</interprète> Exemple d'élément contenant d'autres éléments : <cd> <interprète>Keith Jarret</interprète> <titre>The Köln Concert</titre> <specif type="Live" nb_cd="1"/> </cd> 27

Document XML Les attributs Tous les éléments peuvent contenir un ou plusieurs attributs Chaque élément ne peut contenir qu'une fois le même attribut sinon, le document est dit "non bien formé" Un attribut est composé d'un nom et d'une valeur Il ne peut être présent que dans la balise ouvrante de l'élément Forme : Balise : <Nom-elem attribut1, attribut2, …> Attribut : nom="valeur" Exemple d'utilisation d'un élément avec attribut : <instrument type="vent">trompette</instrument> Exemple d'utilisation d'un élément vide avec attributs : <specif type="Live" nb_cd="1"/> 28

Document XML Support par les navigateurs Netscape Seuls Netscape 6 et 7 affichent les fichiers XML à condition toutefois qu'une feuille de style XSL soit déclarée dans le prologue Néanmoins son implémentation est encore partielle Internet Explorer Une implémentation partielle est disponible à partir de la version 5 Internet Explorer 6 ajoute l'implémentation d'un processeur XSL permettant la prise en compte du formatage lors de l'affichage d'un document XML Autres navigateurs Mozilla offre les mêmes fonctionnalités qu'Internet Explorer 5 Opera offre les mêmes fonctionnalités que Netscape 6 29

Document XML Exemple : bibliotheque1.xml <?xml version="1.0"?> <bibliothèque> <livre type="policier"> <titre>N ou M</titre> <auteur>Agatha Christie</auteur> <ref>Policier-C-15</ref> </livre> <livre type="policier"> <titre>Le chien des Baskerville</titre> <auteur>Sir Arthur Conan Doyle</auteur> <ref>Policier-D-3</ref> </livre> <livre type="science-fiction"> <titre>Dune</titre> <auteur>Franck Heckbert</auteur> <ref>Fiction-H-1</ref> </livre> </bibliothèque> 30

Prise en main par XmlSpy Généralités Interface offrant un certain nombre de possibilités facilitant la saisie, l'affichage et la manipulation de documents XML Version complète sur Internet Nous utilisons la version Home Editor 31

Prise en main par XmlSpy Modes d'affichage Affichage en mode grille 4 niveaux : Élément racine Éléments Attributs Données 32

Prise en main par XmlSpy Modes d'affichage Affichage en mode texte 33

Prise en main par XmlSpy Modes d'affichage Affichage en mode Navigateur 34

XML: DTD et Schémas 1. Validité des documents 2. DTD 3. Schémas

Validité des documents Document bien formé (well formed document) Balises correctement imbriquées Parsable et manipulable Pas nécessairement valide par rapport à la DTD Document valide (valid document) Bien formé + conforme à la DTD (ou au schéma) 36

DTD Permet de définir le «vocabulaire» et la structure qui seront utilisés dans le document XML A deux représentations physiques Peut faire partie du document XML Elle est alors dite interne Etre un fichier à elle seule, lui permettant d'être utilisable par d'autres documents XML Elle sera alors dite externe Les DTD externes peuvent être séparées en deux catégories : privée (SYSTEM) et publique (PUBLIC) La première catégorie est représentée par un fichier accessible uniquement en local La seconde sera disponible pour tout le monde via une URI (Uniform Resource Identifier) 37

DTD DTD interne Déclaration <!DOCTYPE elt.racine déclarations> Exemple <!DOCTYPE liste.cd [ <!ELEMENT liste.cd (cd*)> <!ELEMENT cd (interprete, titre, specif)> <!ELEMENT interprète (#PCDATA)> <!ELEMENT titre (#PCDATA)> <!ELEMENT specif (#PCDATA)> <!ATTLIST specif type (B.O.F.|Live|Compilation) #IMPLIED nbcd CDATA "1" > ]> 38

DTD DTD externe Déclaration de DTD externe de type SYSTEM : <!DOCTYPE liste.cd SYSTEM "listecd.dtd"> Le fichier associé est le suivant : <?xml version="1.0" encoding="ISO-8859-1"?> <!ELEMENT liste.cd (cd+)> <!ELEMENT cd (interprète, titre, specif)> <!ELEMENT interprète (#PCDATA)> <!ELEMENT titre (#PCDATA)> <!ELEMENT specif (#PCDATA)> <!ATTLIST specif type (B.O.F.|Live|Compilation) #IMPLIED nbcd CDATA "1" > 39

DTD DTD externe 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"> La chaîne de caractères après le mot PUBLIC fait référence : tout d'abord à l'identifiant de la DTD (ici -, qui signifie que la DTD n'a pas de numéro d'enregistrement officiel) au propriétaire de la DTD (ici le W3C) puis son nom enfin sa langue 40

DTD Déclaration d'élément Définition Exemple Chaque élément du document doit être défini par une commande du type <!ELEMENT nom (contenu) > où nom est le nom de l'élément (balise) et où contenu décrit : soit la structure de l’élément s’il est composé soit #PCDATA si c’est une feuille Exemple <!ELEMENT livre (auteur, editeur)> définit un élément livre composé d'une séquence d'éléments auteur et éditeur 41

DTD Forme du contenu Notations Exemples (a, b) séquence (nom, prénom, rue, ville) (a|b) liste de choix (oui|non) a? élément optionnel [0,1] (nom, prénom?, rue, ville) a* élément répétitif [0,N] (produit*, client) a+ élément répétitif [1,N] (produit*, vendeur+) 42

DTD Le choix Exemples 43

DTD Autre exemple <!ELEMENT anthologie (poème+)> <!ELEMENT poème (titre?, strophe+)> <!ELEMENT titre (#PCDATA)> <!ELEMENT strophe (ligne+)> <!ELEMENT ligne (#PCDATA)> 44

DTD Autre Exemple XML DTD possible <?xml version="1.0" encoding="ISO- 8859-1"?> <!ELEMENT annuaire (personne*)> <!DOCTYPE annuaire SYSTEM <!ELEMENT personne "annuaire.dtd"> (nom, prenom, email+)> <!ATTLIST personne type (étudiant | <annuaire> professeur | chanteur | musicien) <personne type="étudiant"> "étudiant"> <nom>HEUTE</nom> <!ELEMENT nom (#PCDATA)> <prenom>Thomas</prenom> <!ELEMENT prenom (#PCDATA)> <email>webmaster@xmlfacile.com <!ELEMENT email (#PCDATA)> </email> </personne> <personne type="chanteur"> <nom>CANTAT</nom> <prenom>Bertrand</prenom> <email>noir@desir.fr</email> </personne> </annuaire> 45

DTD Élément vide Un élément vide est un élément qui n’a aucun contenu Déclaration : <!ELEMENT elem.vide EMPTY> Exemples : img, hr, br dans HTML Un élément vide peut avoir des attributs Déclaration dans le Body : <img width="100" height="30" src="paysage.jpg" alt="Paysage de neige"/> 46

DTD Elément vide : Exemple <contacts> <personne> <!ELEMENT contacts (personne+)> <nom>Chazalon</nom> <!ELEMENT personne (nom, prénom, <prénom>Grégory</prénom> dateDeNaissance?, adresse, email+, <dateDeNaissance>1977-07-09 téléphone*)> </dateDeNaissance> <!ELEMENT nom (#PCDATA)> <adresse pays="France"/> <!ELEMENT prenom (#PCDATA)> <email>gchazalon@voila.fr</email> <!ELEMENT dateDeNaissance (#PCDATA)> <email>gchazalon@hotmail.com</email> <!ELEMENT adresse EMPTY> <téléphone>01 23 45 67 89</téléphone> <!ELEMEN email (#PCDATA)> </personne> <!ELEMENT téléphone (#PCDATA)> <personne> <!ATTLIST adresse pays CDATA <nom>Lemoine</nom> #REQUIRED> <prénom>Joséphine</prénom> <dateDeNaissance>1977-01-06 </dateDeNaissance> <adresse pays="France"/> <email>joe6@voila.fr</email> </personne> </contacts> 47

DTD Élément quelconque : ANY (déconseillé) peut contenir zéro, un ou plusieurs éléments enfants, dans n'importe quel ordre ou avec n'importe quel nombre de répétitions, avec ou sans données textuelles C'est la spécification la plus souple ; elle crée un élément sans contrainte de contenu Déclaration : <!ELEMENT elt.quelconque ANY> 48

DTD Élément à contenu mixte Exemple de déclaration : est une liste de choix d'éléments qui peut contenir du texte en plus des éléments Le texte contenu peut se trouver à n'importe quel endroit dans l'élément Ce texte peut être une section CDATA Exemple de déclaration : <!ELEMENT bonjour (#PCDATA | cible*)> Exemple d'utilisation : <bonjour> Hello <cible> World </cible> </bonjour> 49

DTD : exemple 50

DTD Constat : La structuration en XML doit vous faire penser à une vision du document en termes : d’objets (Java) Organisation + propriétés + qualifications + actions (imaginez des besoins) Il faut bien penser à la bonne organisation avant : car il sera difficile de revenir sur les DTDs pour découper les champs Il sera impossible de le faire automatiquement 51

DTD Niveaux de structuration On peut penser à 3 niveaux de structuration 1. Contenu : (organisation de la descendance) Décrire ce que l’on veut comme contenu (nœuds) on cherche plus tard à récupérer ce contenu 2. Informatif : (attributs) : intérêt ponctuel sur un nœud Sert lors de la recherche Décrit des propriétés, infos annexes sur les nœuds comme des dates, des types de publication, etc. On cherche plus tard à récupérer un nœud ayant cette propriété 52

DTD 3. Contrôle et validation (classes d’attributs) Exemple : si on met un attribut "prix", on peut vouloir vérifier que c’est compris entre deux seuils d’où plus de précision sur les attributs Ce travail de vérification pourra se faire de manière automatique Ceci est possible grâce à une extension de la DTD au schéma 53

DTD : attribut Définition Les attributs portés par un élément sont définis par une commande du type : <!ATTLIST tag [ attribut type #mode [valeur]]* > Définit la liste d’attributs pour une balise, comme par exemple les attributs genre et ville pour la balise auteur, et l'attribut ville pour la balise éditeur : <!ATTLIST auteur genre CDATA #REQUIRED ville CDATA #IMPLIED> <!ATTLIST editeur ville CDATA #FIXED "Paris"> 54

DTD Déclaration d'attributs Déclaration d'un attribut obligatoire : <!ATTLIST elt attr CDATA #REQUIRED> Lors du traitement par le processeur, si un attribut obligatoire n'est pas présent dans un élément, cela provoquera une erreur Déclaration d'un attribut optionnel : <!ATTLIST elt attr CDATA #IMPLIED> Déclaration d'un attribut avec une valeur fixe : <!ATTLIST elt attr CDATA "valeur"> Lors du traitement par le processeur, si la valeur d'un attribut à valeur fixe est différente de la valeur qui lui a été fixée dans la DTD, cela provoquera une erreur 55

DTD Déclaration d'attributs identificateurs Type ID Permet d'associer à un élément un identificateur unique Exemple : chaque produit dans un magasin doit avoir un code unique dans ce cas : l’élément produit aura comme attribut code dont la valeur sera unique dans le document XML Déclaration : <!ATTLIST elt attr ID> ici <!ATTLIST produit code ID> La valeur d'un attribut ID doit être un nom XML valide, c'est-à- dire, composé de lettres, de chiffres, de soulignés, de tirets, de points ou de deux-points De plus, cette valeur doit être évidemment unique. Dans le cas contraire, le processeur XML renverra une erreur d'analyse lorsqu'il rencontrera un second identificateur identique 56

DTD Déclaration d'attributs identificateurs Exemple : <!DOCTYPE magasin [ <!ELEMENT magasin (service+)> <!ELEMENT service (produit)> <!ATTLIST service code ID #REQUIRED> <!ELEMENT produit (#PCDATA)> <!ATTLIST produit code ID #REQUIRED> ]> <magasin> <service code="A001"> <produit code="DE205"> Soupe </produit> <produit code="TM206"> Condiment </produit> On vérifie que service et produit <produit code="KJ227"> Conserve </produit> sont accompagnés chacun d’un </service> attribut code dont la valeur est à <service code="A003"> chaque fois différente <produit code="OU152"> Lessive </produit> <produit code="AH070"> Essuie-tout </produit> </service> </magasin> 57

DTD Déclaration d'attributs identificateurs Type IDREF : Permet à une valeur d'attribut de faire référence à l'identificateur (ID) d'un autre élément De cette manière, il est possible de relier des éléments entre eux, à l'instar des index clés des enregistrements d‘une base de données permettant de relier des tables entre elles IDREFS permet d'associer plusieurs identificateurs (ID) en les séparant par des espaces blancs dans la valeur d'un attribut 58

DTD Exemple <!DOCTYPE société [ <!ATTLIST société codes_services IDREFS #IMPLIED> <!ELEMENT société (service+)> <!ELEMENT service (employé+)> <!ATTLIST service code ID #REQUIRED> <!ELEMENT employé (#PCDATA)> <!ATTLIST employé code ID #REQUIRED> <!ATTLIST employé code_service IDREF #REQUIRED> ]> <société codes_services="A001 A003"> <service code="A001"> <employé code="E205" code_service="A001"> Jean Dupont </employé> <employé code="E206" code service="A001"> Frédéric Marc </employé> <employé code="E207" code_service="A001"> Fabrice Detterne </employé> <employé code="H107" code_service="A003"> Angélique Millet </employé> </service> <service code="A003"> <employé code="A115" code_service="A003"> Isabelle Mascot </employé> </service> </société> 59

ID et IDREF IDExemple.xml Exemple : L’élément est en même temps ID et IDREF <!DOCTYPE INVENTAIRE [ <!ELEMENT INVENTAIRE (ITEM*)> <!ELEMENT ITEM (#PCDATA)> <!ATTLIST ITEM CodeStock ID #REQUIRED VaAvec IDREF #IMPLIED> ]> <INVENTAIRE> <!-- Chaque ITEM doit avoir une valeur CodeStock différente. --> <ITEM CodeStock="S021"> Theiere</ITEM> <ITEM CodeStock="S034"> Moulin a cafe electrique</ITEM> <ITEM CodeStock="S086" VaAvec="S021"> Thermometre</ITEM> </INVENTAIRE> 60

ID et IDREF Autre exemple : IDREFExemple.xml … <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT (PERSONNE*)> <!ELEMENT PERSONNE (#PCDATA)> <!ATTLIST PERSONNE PNUM ID #REQUIRED> <!ATTLIST PERSONNE MERE IDREF #IMPLIED> <!ATTLIST PERSONNE PERE IDREF #IMPLIED> ]> < DOCUMENT > <PERSONNE PNUM = "P1">Marie</PERSONNE> <PERSONNE PNUM = "P2">Jean</PERSONNE> <PERSONNE PNUM = "P3" MERE="P1" PERE="P2">Pierre</PERSONNE> <PERSONNE PNUM = "P4" MERE="P1" PERE="P2">Julie</PERSONNE> </ DOCUMENT > 61

DTD Type énuméré Le type énuméré définit une liste de choix de valeurs possibles pour un attribut. La valeur de l'attribut étant connue (on ne peut pas en donner une autre que celles de la liste), cela permet à une feuille de style de travailler directement par rapport à cette valeur Exemple de déclaration d'une liste de choix d'attributs : <!ATTLIST img format (BMP | GIF | JPEG) "JPEG" > Cet exemple déclare un attribut format d'un élément img. La valeur de cet attribut peut être BMP, GIF ou JPEG. Si aucune valeur n'est affectée à cet attribut, la valeur par défaut lui sera affectée, ici JPEG 62

DTD : Entité paramètre But Exemple : Une entité simple permet de remplacer par un nom une portion de texte dans un document <!ENTITY nom "texte de remplacement"> L'entité (i.e. le texte de remplacement) est alors rappelée dans le document par utilisation de &nom Exemple : <!ENTITY magasin "Primevère"> définit une entité magasin correspondant à la chaîne de caractères "Primevère" le document XML <message>Bienvenu au &magasin</message> sera compris par l'analyseur comme : <message>Bienvenu au Primevère</message> 63

DTD : Entité paramètre Peut être externe : Exemple : Comme pour les DTD, une entité peut être définie dans un fichier externe local ou public. Par exemple, l'entité vins pourra être définie comme suit dans un fichier vins.dtd en interne vu en externe à l'URL www.gardarin.org Exemple : <!ENTITY % vins PUBLIC " http://www.gardarin.org/vins.dtd " ou <!ENTITY % vins SYSTEM " vins.dtd " <!ELEMENT cru (#PCDATA)> <!ELEMENT mil (#xCDATA)> <!ELEMENT degre (#PCDATA)>…"> Utilisation en XML %vins 64

Validité des documents Exemples 65

Validité des documents Exemples 66

Validité des documents Exemples 67

Validité des documents Exemples 68