La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

XML Introduction et concepts.

Présentations similaires


Présentation au sujet: "XML Introduction et concepts."— Transcription de la présentation:

1 XML Introduction et concepts

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 Origine et objectifs Exemple : publication multi-supports 15

16 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

17 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

18 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

19 Structure d'un document XML
Exemple <!-- Prologue --> <?xml version=“1.0" encoding="ISO " 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

20 Document XML Le prologue La déclaration XML
<?xml version="1.0" encoding=‘iso ’ 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 . 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

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

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

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

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

36 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

37 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

38 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

39 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 "?> <!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

40 DTD DTD externe Déclaration de DTD externe de type PUBLIC :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " 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

41 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

42 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

43 DTD Le choix Exemples 43

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

45 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, +)> <!ATTLIST personne type (étudiant | <annuaire> professeur | chanteur | musicien) <personne type="étudiant"> "étudiant"> <nom>HEUTE</nom> <!ELEMENT nom (#PCDATA)> <prenom>Thomas</prenom> <!ELEMENT prenom (#PCDATA)> <!ELEMENT (#PCDATA)> </ > </personne> <personne type="chanteur"> <nom>CANTAT</nom> <prenom>Bertrand</prenom> </personne> </annuaire> 45

46 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

47 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, +, <dateDeNaissance> téléphone*)> </dateDeNaissance> <!ELEMENT nom (#PCDATA)> <adresse pays="France"/> <!ELEMENT prenom (#PCDATA)> <!ELEMENT dateDeNaissance (#PCDATA)> <!ELEMENT adresse EMPTY> <téléphone> </téléphone> <!ELEMEN (#PCDATA)> </personne> <!ELEMENT téléphone (#PCDATA)> <personne> <!ATTLIST adresse pays CDATA <nom>Lemoine</nom> #REQUIRED> <prénom>Joséphine</prénom> <dateDeNaissance> </dateDeNaissance> <adresse pays="France"/> </personne> </contacts> 47

48 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

49 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

50 DTD : exemple 50

51 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

52 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

53 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

54 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

55 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

56 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

57 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

58 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

59 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

60 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

61 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

62 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

63 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

64 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 Exemple : <!ENTITY % vins PUBLIC " " ou <!ENTITY % vins SYSTEM " vins.dtd " <!ELEMENT cru (#PCDATA)> <!ELEMENT mil (#xCDATA)> <!ELEMENT degre (#PCDATA)>…"> Utilisation en XML %vins 64

65 Validité des documents
Exemples 65

66 Validité des documents
Exemples 66

67 Validité des documents
Exemples 67

68 Validité des documents
Exemples 68


Télécharger ppt "XML Introduction et concepts."

Présentations similaires


Annonces Google