1 données structurées et xml quest ce quun document xml ? comment traduire la structure dun...
TRANSCRIPT
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 . <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.
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
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
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
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)
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>
18
Autre document généré
< personne >
< nom> Rossi </nom>
< prénom> Fabrice </prenom>
<bureau> B520 </bureau>
< poste> 4823 < / poste>
<personne>
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
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.
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 :
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.
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 .
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>
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
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>
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) >
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
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) >• ]>