Upload
maia-watts
View
25
Download
0
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.
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) >