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

Données structurées et XML

Embed Size (px)

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

Citation preview

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)

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.

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.

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.

5

Exemple de structure HTML

<HTML>

<HEAD>

<TITLE>essai</TITLE>

</HEAD>

<BODY>

<P>paragraphe </P>

</BODY>

</HTML>

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]

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>

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.

9

Arbre de l’exemple

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>

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.

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 ‘ ‘ .

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)

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)

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>

16

Autre document généré

< personne >

< nom> Rossi </nom>

< prénom> Fabrice </prenom>

<bureau> B520 </bureau>

< poste> 4823 < / poste>

<personne>

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

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.

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 :

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.

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 .

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>

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

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>

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

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