29
1 Données structurées et XML Qu’est ce qu’un document XML ? Comment traduire la structure d’un document en XML ? notion de DTD ( Définition d’un Type de Document)

1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

Embed Size (px)

Citation preview

Page 1: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

1

Données structurées et XML

Qu’est ce qu’un document XML ?

Comment traduire la structure d’un document en XML ?

notion de DTD ( Définition d’un Type de

Document)

Page 2: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

2

Données structurées et XML

XML permet de représenter des données structurées: Données textuelles Organisées: on manipule un document constitué d ’éléments Un élément : un texte ou constitué d’autres éléments ou

un mélange des deux . <livre>Hernani <editeur>Gallimard</editeur> </livre>

Un élément peut être associé à des informations complémentaires , les attributs.

La structure est celle d’un arbre; un élément un nœud de l’arbre.

Page 3: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

3

Langage de balisage

Les informations, isolées en éléments sont encadrées par une paire de balises (tags) et son contenu:

< chapitre > …….< / chapitre> (intitulé de balise)

Les balises ouvrantes portent les attributs( s’ils y en a ) < chapitre version = date = >….< / chapitre> L’imbrication et l’ordre des éléments reflètent la

structure. Un document au format XML est un document texte

constitué de balises.

Page 4: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

4

XML ( extensible markup language)

Les principaux avantages de ce langage: Possibilité de définir librement les balises utilisées

( contrairement à HTML) Distinction claire de la forme et du contenu du

document XML + XSL : représentation d’un document : ajouter

des feuilles de style Facilité pour établir la correspondance entre les

données du document et les systèmes de stockage des données.

Page 5: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

5

Exemple de structure HTML

<HTML>

<HEAD>

<TITLE>essai</TITLE>

</HEAD>

<BODY>

<P>paragraphe </P>

</BODY>

</HTML>

Page 6: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

6

Exemple

• But : stocker l’annuaire d’une administration ( nom, prénom, bureau , numéro de poste, email).

Le texte du document: les informations. Organisation: ne pas mélanger les données:

annuaire

personne

nom prénom bureau poste email

Rossi Fabrice B520 4823 [email protected]

Page 7: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

7

Exemple (suite)

• Traduction en XLM de l’arbre: annuaire.xml

1 <?xml version = « 1.0 » encoding= « ISO-8859-1 »?>2 <annuaire>3 <personne>4 <nom> Rossi </nom>5 <prénom> Fabrice </prénom>6 <bureau> B520</bureau>7 <poste> 4823</poste>8 <email> Fabrice.Rossi @dauphine.fr </email>9 </personne>10 <! – suite de l’annuaire ---11 </annuaire>

Page 8: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

8

Exemple de fichier XML

Hello.xml:1 <?xml version = « 1.0 » standalone = « yes»?> 2 < conversation>3 <bienvenue > Salut à vous </bienvenue>4 <réponse > Laissez moi seul </réponse>

5 </conversation> 1. En tête obligatoire, instruction de traitement 2. Balise ouvrante ( la racine de l’arbre) début d’un nœud. 3. Un élément de l’arbre 4. Un élément de l’arbre de même niveau 5 . Balise fermante associée la ligne 2.

Page 9: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

9

Arbre de l’exemple

Page 10: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

10

Exemple de code en XML

<?xml version=« 1.0 »?><!—ceci est un commentaire--><article><auteur>Boby Lapointe</auteur><titre>Une introduction à xml</titre><section><titre>Présentation de xml</titre><paragraphe>ce document est bien formé</paragraphe></section></article>

Page 11: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

11

Documents xml bien formés

Les éléments: <truc> : balise ouvrante: 1. Doit toujours correspondre à une balise

fermante , ici </truc> 2. Le texte entre <> est le nom de l’élément,

constitué de lettres, chiffres,’.’, ‘-’,’_’ et ‘:’. Le contenu d’un nœud de l’arbre, d’un élément, entre

balise ouvrante et balise fermante. <et_hop/> : balise mixte pour les éléments

vides.

Page 12: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

12

fragments xml mal formés

<a><b></a></b>: mal formé <p> bla, bla,bla <br> bla, bla, bla </p> :mal formé <nom.pas:très_bien-choisi/> : bien formé <a> contenu de l’élément </A> ( sensible à la

casse): mal formé <un/truc> par exemple </un/truc> <pas texte=‘de problème’ > </pas> : bien forméL’attribut ( toujours dans une balise ouvrante)

texte , sa valeur entre «  » ou ‘ ‘ .

Page 13: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

13

Instructions xml

Le document commence par une déclaration:1 <?xml version = « 1.0 » encoding= « ISO-8859-1 »?>1 <?xml version = « 1.0 » standalone = « yes»?> <?xml ?> est une déclaration L’attribut encoding précise l’encodage des

caractères du document :ISO-8859-1 , notre ascii français.

L’attribut standalone précise si le document est seul ( sans DTD) ou non ( auquel cas une instruction <!Doctype … est nécessaire)

Page 14: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

14

XML dans la pratique

• Structuration de documents• Description de présentation multimédia• Echange de descriptions d’emploi et de CV• Description de structures moléculaires• Échange de données astronomiques• Echange de données relatives aux assurances• Echange de données sur les transactions

immobilières

Page 15: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

15

DTD : une grammaire qui définit et limite la structure du document

• Les DTD assurent l’homogénéïté des documents• Présentation

pas de balise arbitraire

pas d’information dans le mauvais ordre• Echange de données entre applications

être sûr que le document sera reconnu par le logiciel de traitement

Page 16: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

16

La DTD : Définition d’un type de document

Un document XML peut posséder une Déclaration formelle de sa structure, une sorte de grammaire (avec des règles d’utilisation ) que doit respecter le document.

La DTD de l’annuaire :

< ! ELEMENT personne ( nom, prénom, bureau, poste, email?) >

< ! ELEMENT nom (# PCDATA) >< ! ELEMENT prénom (# PCDATA) >

< ! ELEMENT bureau (# PCDATA) > < ! ELEMENT poste (# PCDATA) > < ! ELEMENT email (# PCDATA) >(PCDATA: Parsed Character DATA , chaîne de caractères analysée)

Page 17: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

17

Documents générés

< personne >

< nom> Rossi </nom>

< prénom> Fabrice </prenom>

<bureau> B520 </bureau>

< poste> 4823 < / poste>

< email> [email protected] </email>

<personne>

Page 18: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

18

Autre document généré

< personne >

< nom> Rossi </nom>

< prénom> Fabrice </prenom>

<bureau> B520 </bureau>

< poste> 4823 < / poste>

<personne>

Page 19: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

19

Les règles d’utilisation DTD

• notations

Opérateur signification

+ L’élément doit être présent au minimum une fois

* L’élément peut être présent plusieurs fois (ou aucune)

? L’élément peut être optionnellement présent

| L’élément A ou B peuvent être présents

Page 20: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

20

Exemple commenté

< ! ELEMENT carnet ( fiche *) >L’élément carnet peut contenir un nombre arbitraire d’éléments fiche.< ! ELEMENT fiche ( nom, prénom, téléphone, email*)L’élément fiche contient exactement un nom , un prénom, un

téléphone, et autant de email qu’on le souhaite (< ! ELEMENT nom (# PCDATA)>L’élément nom ne contient que du texte< ! ELEMENT téléphone (fixe| fax| portable) *>L’élément téléphone contient dans n’importe quel ordre et en

n’importe quelle quantité des éléments: fixe, fax et portable.

Page 21: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

21

DTD associé à un sommaire

< ! ELEMENT Sommaire ( Numéro, Date, RubriqueSommaire +)>

< ! ELEMENT numéro (# PCDATA)> < ! ELEMENT date(# PCDATA)> < ! ELEMENT RubriqueSommaire( RubriqueTitre,

ArticleSommaire+)> < ! ELEMENT RubriqueTitre(# PCDATA)> <! ELEMENT ArticleSommaire(ArticleTitre, ArticlePage)> < ! ELEMENT ArticleTitre (# PCDATA)> < ! ELEMENT ArticlePage (# PCDATA)>Construire l’arbre représentant ce sommaire :

Page 22: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

22

Validité d’un document

Un document XML qui possède une DTD associée est dit valide s’il respecte les règles de grammaire.

Un document XML est dit bien formé lorsque: toutes les balises ouvrantes ont une balise

fermante associée Les balises sont correctement imbriquées.

Page 23: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

23

Deux types de DTD

Sous forme interne: la grammaire du document est placé au sein même du document.

Sous forme externe: un fichier extérieur contient la grammaire du document .

Page 24: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

24

Doc avec DTD interne• <?xml version = « 1.0  » ?>

• <! DOCTYPE bibliothèque

[ < !ELEMENT bibliothèque ( livre+)> < !ELEMENT livre (Titre, auteur, ref)> < !ELEMENT Titre(# PCDATA)> < !ELEMENT auteur (# PCDATA)> < !ELEMENT ref (# PCDATA)>

] ><bibliothèque><livre> <titre > Dune </titre>

<auteur> Frank Heckbert </auteur> <ref> Fiction-H-1</ref>

</livre></bibliothèque>

Page 25: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

25

Doc avec DTD externe

• <?xml version = « 1.0  » ?>• <! DOCTYPE bibliothèque SYSTEM « biblio.dtd »>• < bibliothèque>< livre> < titre > Dune </titre>

< auteur> Frank Heckbert </auteur> <ref> Fiction-H-1</ref>

< / livre> < / bibliothèque>

< ! ELEMENT bibliothèque ( livre+)> < ! ELEMENT livre (Titre, auteur, ref)> < ! ELEMENT Titre( #PCDATA)> < ! ELEMENT auteur ( #PCDATA)> < ! ELEMENT ref ( #PCDATA)>

biblio.dtd

Page 26: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

26

Exemple (XML) disques.xml

• 1 <?xml version="1.0" encoding="ISO-8859-1"?>• 2 <!DOCTYPE disques SYSTEM "DisquesML.dtd">• 3 <disques>• 4 <groupe >• 5 <nom>MUSE</nom>• 6 <membre>Matthew Bellamy</membre>• 7 <membre>Dominic Howard</membre>• 8 <membre>Chris Wolstenholme</membre>• 9 </groupe>• 10 <disque>• 11 <interprete > TOTO </interprete>• 12 <titre>Showbiz</titre>• 13 </disque>• 14 <disque>• 15 <interprete> RIRI </interprete>• 16 <titre>Origin of symmetry</titre>• 17 </disque>• 18 </disques>

Page 27: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

27

Exemple (DTD)

• DisquesML.dtd• 1 <?xml version="1.0" encoding="ISO-

8859-1"?>• 2 <!ELEMENT disques (groupe*, disque*) >• 3 <!ELEMENT groupe (nom,membre+) >• 4 <!ELEMENT nom (#PCDATA) >• 5 <!ELEMENT membre (#PCDATA) >• 6 <!ELEMENT disque (interprete, titre)>• 7<!ELEMENT interprete (#PCDATA) >• 8 <!ELEMENT titre (#PCDATA) >

Page 28: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

28

DTD INTERNE

• DTD interne :• 1 <?xml version="1.0" encoding="ISO-8859-

1"?>• 2 <!DOCTYPE carnet [• 3 <!-- contenu de la DTD -->• 4 ]>• le nom qui suit DOCTYPE est celui de l’élément

racine

Page 29: 1 Données structurées et XML Quest ce quun document XML ? Comment traduire la structure dun document en XML ? notion de DTD ( Définition dun Type de Document)

29

Décrire une conversation

• Une DTD pour définir la structure d’un document XML, valide pour une conversation.

• [<?xml version="1.0" encoding="iso-8859-1"?>• <!DOCTYPE log [• <!ELEMENT log ( message*)>• <!ELEMENT message (From, To, Text)>• <!ELEMENT From (User)>• <!ELEMENT To (User)>• <!ELEMENT User( #PCDATA) >• <!ELEMENT Text ( #PCDATA) >• ]>