données structurées et xml

27
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)

Upload: lexi

Post on 11-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

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). Données structurées et XML. XML permet de représenter des données structurées: Données textuelles Organisées: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Données structurées et XML

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: Données structurées et XML

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 ( titre d’ouvrage, prix , nomAuteur, …etc)

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: Données structurées et XML

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: Données structurées et XML

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: Données structurées et XML

5

Exemple de structure HTML

<HTML>

<HEAD>

<TITLE>essai</TITLE>

</HEAD>

<BODY>

<P>paragraphe </P>

</BODY>

</HTML>

Page 6: Données structurées et XML

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: Données structurées et XML

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: Données structurées et XML

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: Données structurées et XML

9

Arbre de l’exemple

Page 10: Données structurées et XML

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: Données structurées et XML

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: Données structurées et XML

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: Données structurées et XML

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: Données structurées et XML

14

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 prénom (# PCDATA) < ! ELEMENT bureau (# PCDATA) < ! ELEMENT poste (# PCDATA) < ! ELEMENT email (# PCDATA)(PCDATA: Parsed Character DATA , chaîne de caractères analysée)

Page 15: Données structurées et XML

15

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 16: Données structurées et XML

16

Autre document généré

< personne >

< nom> Rossi </nom>

< prénom> Fabrice </prenom>

<bureau> B520 </bureau>

< poste> 4823 < / poste>

<personne>

Page 17: Données structurées et XML

17

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 18: Données structurées et XML

18

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 19: Données structurées et XML

19

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 ArticeSommaire(ArticeTitre, ArticlePage)> < ! ELEMENT ArticleTitre (# PCDATA)> < ! ELEMENT ArticlePage (# PCDATA)>Construire l’arbre représentant ce sommaire :

Page 20: Données structurées et XML

20

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 21: Données structurées et XML

21

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 22: Données structurées et XML

22

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 23: Données structurées et XML

23

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>Biblio.dtd: < ! ELEMENT bibliothèque ( livre+)> < ! ELEMENT livre (Titre, auteur, ref)> < ! ELEMENT Titre( #PCDATA)> < ! ELEMENT auteur ( #PCDATA)> < ! ELEMENT ref ( #PCDATA)>

Page 24: Données structurées et XML

24

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 25: Données structurées et XML

25

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 26: Données structurées et XML

26

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 27: Données structurées et XML

27

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)>• ]>