0% ont trouvé ce document utile (0 vote)
45 vues52 pages

Introduction à la technologie XML

Transféré par

elleuchbrahimkhalil04
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
45 vues52 pages

Introduction à la technologie XML

Transféré par

elleuchbrahimkhalil04
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Sana FAKHFAKH KESSENTINI

2023-2024 [email protected]
Code du cours: yfunjpa
Technologie XML
Introduction

Besoin :Utilisation d’une structure de données 2


2023-2024 Sana Fakhfakh Kessentini
Technologie XML
Introduction
Structure:

 Efficace,

 Pertinente.
Structure

Application Application

Permet:

 Traitement automatique rapide et simple,

 Diminuer la complexité,

 Diminuer le taux d'erreurs. 3


2023-2024 Sana Fakhfakh Kessentini
Technologie XML
Introduction
 Le Langage XML: eXtensible Markup Language:
 Une spécification du W3C, Février 1998.
 Une succession d'un ensemble de technologies: SGML,
HTML.

1 SGML:Standard Generalized Markup Language:1986


•Diffusion électronique de documents
Syntaxe complexe

2 HTML:HyperText Markup Language:1991


•Présentation des documents sur le web
Non flexible, figé

XML:eXtensible Markup Language: 1996


3
•Structuration, échange des documents
Plus simple que SGML
Plus souple que HTML

Document XML: description, organisation, archivage et échange des données.

2023-2024 Sana Fakhfakh Kessentini


Technologie XML
Introduction

XML
eXtensible Markup Language
.XML

5
2023-2024 Sana Fakhfakh Kessentini
XML Pourquoi XML?

 Séparation entre le contenu et la forme


 Structure hiérarchique: l’arborescence,
 Un méta langage: la définition de langages adaptés à des besoins
spécifiques.

 Lisible : texte balisé avec marquage.


 Extensible : supporte les évolutions applicatives.

2023-2024 Sana Fakhfakh Kessentini


XML Pourquoi XML?

 Pour structurer l'information dans des fichiers textes.


 Pour enregistrer des résultats
 XML peut être un fichier de configuration
 Pour garantir l’interopérabilité, l’échange et réutilisation.

7
2023-2024 Sana Fakhfakh Kessentini
XML Arborescence XML
CV
CV

Informations Expériences

Compétences

Résumé

coordonnées Loisir
stages
Etudes

2023-2024 Sana Fakhfakh Kessentini


XML Arborescence XML
Nœud
racine

Nœud 1

Nœud
Nœud n
2

Nœud
1.1
Nœud Nœud
1.2 1;n

Document XML: composé de plusieurs nœuds


9
2023-2024 Sana Fakhfakh Kessentini
XML Structure d’un document XML

Un prologue

Le corps: l'arbre des éléments

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<Catalog>
<Book id="bk101">
<Author>Garghentini, Davide</Author>
<Title>XML Developer's Guide</Title>
<Genre>Computer</Genre>
<Price>44.95</Price>
</Book>
</Catalog>
XML
2023-2024 Sana Fakhfakh Kessentini
Structure
XML d'un document
Structure XML
d’un document XML
•Le prologue

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

La dépendance
le codage
la version à des documents
du langage XML des caractères
extérieurs

11
2023-2024 Sana Fakhfakh Kessentini
Structure
XML d'un document
Structure XML
d’un document XML
• Le corps d’un document XML

Il existe 4 éléments syntaxiques XML:

1 Les éléments

2 Les attributs

3 Les commentaires

4 Les entités
12
2023-2024 Sana Fakhfakh Kessentini
Structure
XML d'un document
Structure XML
d’un document XML

1 Les éléments
 Un élément s’ouvre et se ferme par une balise
 Le nom de l’élément est repris dans la balise ouvrante et dans la
balise fermante.

<Author>Garghentini, Davide</Author>

Balise ouvrante Balise fermante

13
2023-2024 Sana Fakhfakh Kessentini
Structure
XML d'un document
Structure XML
d’un document XML

1 Les éléments
Un élément peut être :

Vide:
<vide><\vide> ou <vide/>

Contenir une chaîne de caractères


<Author>Garghentini, Davide</Author>

Contenir des éléments fils


• <Book id="bk101">
• <Author>Garghentini, Davide</Author>
•<Title>XML Developer's Guide</Title>
• <Genre>Computer</Genre>
•<Price>44.95</Price>
•</Book>
2023-2024 Sana Fakhfakh Kessentini
Structure
XML d'un document
Structure XML
d’un document XML

2 Les attributs
 L’attribut se trouve dans la balise ouvrante d’un élément

 L’attribut n’est pas repris dans la balise fermante

 Un élément peut contenir plusieurs attributs

 Un même attribut ne peut être présent qu’une seule fois dans un


élément

 L’ordre des attributs n’a pas d’importance au sein d’un élément

 La valeur de l’attribut est indiquée entre guillemets

<Book id="bk101">
15
2023-2024 Sana Fakhfakh Kessentini
Structure
XML d'un document
Structure XML
d’un document XML

3 Les commentaires

<!-- rédiger un commentaire -->

Le commentaire:

 Non analysé
 Ignoré lors de l’interprétation du document XML.

16
2023-2024 Sana Fakhfakh Kessentini
XML Règles syntaxiques

 Chaque document XML a un seul élément racine


 Le nom d’élément contient:
• des lettres
• des chiffres
• des soulignés
• des tirets
• des points
 Le nom d’élément commence par une lettre ou un – ,

 Le séparateur d’éléments possible sont: retour à la ligne,


espace, tabulation, =, ", ’

Document XML bien formé.

17
2023-2024 Sana Fakhfakh Kessentini
XML Exemple d’un document XML

Prologue <?xml version="1.0" encoding=" UTF-8 " standalone="yes"?>


id ="bk101"
<Catalog> Catalog
<!-- Votre premier document XML-->
<Book id="bk101">
<Author>Garghentini, Davide</Author> Book
<Title>XML Developer's Guide</Title>
<Price>44.95</Price>
<PublishDate>2000-10-01</PublishDate>
Corps <Description>Applications with XML. Author Price Title
</Description>
</Book>
PublishDate Description
</Catalog>

Catalog.xml

2023-2024 Sana Fakhfakh Kessentini


XML Editeurs XML

 Jaxe: éditeur XML

 XML SPY

 XML Editor
Free Online XML Validator:
https://www.liquid-technologies.com/online-xml-validator

19
2023-2024 Sana Fakhfakh Kessentini
XML Atelier n°1
Exercice1:
Soit le document ci-dessous.

Il présente des erreurs de syntaxe .


Pour chaque erreur indiquer la ligne où elle se trouve, sa nature et la
correction à apporter pour que le document soit bien formé.

20
2023-2024 Sana Fakhfakh Kessentini
XML xml en minuscules
"encodage" "encoding"
perso-1

travail-2
téléphone="0245664442"

</contact>

21

2023-2024 Sana Fakhfakh Kessentini


Technologie XML
Introduction

DTD
Document Type Definition
.DTD

22
2023-2024 Sana Fakhfakh Kessentini
DTD Qu’est-ce qu’une DTD?

 Une DTD :Document Type Definition


 Définir une structure type de document XML.
 Une grammaire qui décrit la façon de construire les documents XML
valide.

 RéUtilisable

2023-2024 Sana Fakhfakh Kessentini


DTD Contenu d’une DTD

Une DTD peut contenir des déclarations:

 Des éléments
 De listes d'attributs
 Des des entités
 Des commentaires

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Syntaxe

<!DOCTYPE nom_element racine ……..


.
.
.
.
>
DTD

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
DTD interne: dans le fichier xml
<!DOCTYPE nom_element racine [………………….]>

<?xml version="1.0" encoding=« UTF-8 "standalone="yes" ?>


<!DOCTYPE Catalog [………………….]>

<Catalog>
.
.
.
</Catalog>

Catalog.xml

2023-2024 Sana Fakhfakh Kessentini


Déclaration
DTD Déclaration d’une
d'une DTD DTD
DTD externe: DTD dans un fichier séparé
<!DOCTYPE nom_element racine SYSTEM " URI " >
URI : identifie l'emplacement de la DTD.

<?xml version="1.0" encoding= " UTF-8 " "standalone="no"?>


<!DOCTYPE Catalog SYSTEM " cat.dtd " >
<Catalog>
.
.
Cat.dtd
.
</Catalog>

Catalog.xml

27
2023-2024 Sana Fakhfakh Kessentini
Déclaration
DTD Déclaration d’une
d'une DTD DTD
DTD mixte

<?xml version="1.0" encoding= " UTF-8 " "standalone="no" ?>


<!DOCTYPE Catalog SYSTEM " cat.dtd " [
.
.
. > ]
Cat.dtd
<Catalog>
.
.
.
Catalog.xml
</Catalog>

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Les éléments
<!ELEMENT nom modèle>

Nom Le contenu que doit avoir la balise soit:


de la balise * Avec sous éléments
* Sans élément enfant

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Modèle d'un élément
Sans élément enfant
• L’ élément doit contenir un flot de caractère
<!ELEMENT nom (#PCDATA)>

NB: <!ELEMENT article (#PCDATA, titre, corps)>

• Obligatoirement être vide

<!ELEMENT nom EMPTY>


• Peut contenir n'importe quel type d'arbre

<!ELEMENT nom ANY>


2023-2024 Sana Fakhfakh Kessentini
DTD Déclaration d’une DTD
Modèle d'un élément
Avec sous éléments
• Une séquence de fils ordonnés :
<!ELEMENT nom-element(fils_1, fils_2, ..., fils_n) >

<?xml version="1.0" encoding= " UTF-8 " "standalone="no" ?>


<!DOCTYPE chapitre SYSTEM " chap.dtd " >
<chapitre>
<titre>...</titre>
<intro>...</intro> <!ELEMENT chapitre (titre, intro, section)>
<section>...</section>
chap.dtd
</chapitre>

chap.xml

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Modèle d'un élément
Avec sous éléments
• Choix d'éléments:
<!ELEMENT nom-element(fils_1| fils_2| ...| fils_n) >
<?xml version="1.0" encoding= " UTF-8 " "standalone="no" ?>
<!DOCTYPE date SYSTEM " d.dtd " >
<date> <date>
<mois>...</mois> <annee>...</annee>
<!ELEMENT date (annee | mois)>
</date> </date> d.dtd

d.xml

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Modèle d'un élément
Quantificateur: autoriseation des répétitions :
? : zéro ou un élément.
* : zéro ou plusieurs éléments.
+ : un ou plusieurs éléments.
<?xml version="1.0" encoding= " UTF-8 " "standalone="no" ?>
<!DOCTYPE chap SYSTEM " chap.dtd " >
<chap>
<titre>...</titre> <chap>

<intro>...</intro> <titre>...</titre>
<!ELEMENT chap (titre,
</chap> <intro>...</intro>
intro+)>
<intro>...</intro>
chap.dtd
</chap>
chap.xml

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Modèle d'un élément
Imbriquer les déclarations :
<?xml version="1.0" encoding= " UTF-8 " "standalone="no" ?>
<!DOCTYPE chap SYSTEM " chap.dtd " >
<chap> <chap>
<titre>...</titre> <titre>...</titre>
<intro>...</intro> <intro>...</intro>
<section>...</section> <section>...</section>
<devel>….<\devel> <devel>….<\devel>
<section>...</section> </chap>
chap.dtd
<devel>….<\devel>
<!ELEMENT chap (titre,
</chap> intro, (section, devel)+)>
chap.xml

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Les attributs

<!ATTLIST nom-élément
nom-attribut_1 type-attribut_1 valeur-par-défaut_1
.

nom-attribut_n type-attribut_n valeur-par-défaut_n >

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Les types des attributs

 CDATA : Une chaîne quelconque de caractères sans contraintes


 ID :unique pour cette instance de l'élément.
 IDREF référence à l'élément avec un attribut ID ayant même valeur que
IDREF
 IDREFS Liste de plusieurs IDREF séparés par des espaces.
 NMTOKEN ou NMTOKENS permettra à l'attribut de prendre comme
valeur le nom d'un token, ou de plusieurs, c'est-à-dire un ou des noms.
 ENTITY nom d'une entité prédéfinie
 ENTITIES listes d'entités prédéfinies séparées par des espaces

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Les valeurs par défaut
• “value” ou ‘value’

Valeur
<tag meta="Hello World!"> Hello World!
<tag> Valeur par défaut default
<tag meta=""> Chaîne vide

.dtd
<!ATTLIST tag meta CDATA "default">
.xml type-attribut_tag

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Les valeurs par défaut
• #REQUIRED: L'attribut est obligatoire et il n'a pas de valeur par
défaut.

Valeur
<person number="5677" />
Valide

<person />
Invalide

Chaîne vide .dtd


<!ATTLIST person number CDATA #REQUIRED>
.xml

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Les valeurs par défaut
• #IMPLIED: L'attribut est optionnel et il n'a pas de valeur par
défaut. Si l'attribut est absent, il n'a pas de valeur

Valeur
<person number="5677" />
Valide

<person />
valide

Chaîne vide .dtd


<!ATTLIST person number CDATA # IMPLIED >
.xml

2023-2024 Sana Fakhfakh Kessentini


DTD Déclaration d’une DTD
Les valeurs par défaut
• #FIXED: La valeur de l'attribut est fixe et non modifiable
Valeur
<person number="5677" />
Valide

<person number="5679" /> Invalide

.dtd
<!ATTLIST person number CDATA # FIXED
“5677 " >
.xml

<book lang="fr">
book.dtd
<!ELEMENT book (#PCDATA)>
<book lang="en">
<!ATTLIST book lang CDATA #FIXED “fr">
book.xml

2023-2024 Sana Fakhfakh Kessentini


DTD
DTD Déclaration
Déclarationd’une
d’uneDTD?
DTD
Exemple:

<?xml version="1.0" encoding= " UTF-8 " "standalone="no" ?>


<!DOCTYPE address SYSTEM " adr.dtd " >
< address Ville=“sfax” CP=“3002”</ address >

<!ELEMENT address ( #PCDATA )>


<!ATTLIST address adr.dtd
CP CDATA #IMPLIED
adr.xml
Ville CDATA #REQUIRED>

41
2023-2024 Sana Fakhfakh Kessentini
DTD Déclaration d’une DTD
Exemple:
<?xml version="1.0" encoding=" UTF-8 " ?>
<!DOCTYPE book [
<!ELEMENT book (section)*>
<!ELEMENT section (#PCDATA | ref | refs)*>
<!ATTLIST section id ID #IMPLIED>
<!ELEMENT ref EMPTY>
<!ATTLIST ref idref IDREF #REQUIRED>
<!ELEMENT refs EMPTY>
<!ATTLIST refs idrefs IDREFS #REQUIRED> ] >

<book>
<section id="sec0">Une référence <ref idref="sec1"/> </section>
<section id="sec1">Des références <refs idrefs="sec0 sec2"/></section>
<section id="sec2">Section sans référence</section>
<section id="sec3">Une auto-référence <refs idrefs="sec3"/></section>
</book>
book.xml
42
2023-2024 Sana Fakhfakh Kessentini
DTD Déclaration d’une DTD
Les types des attributs
Enumérations: Liste de valeurs
<!ATTLIST nom-élément
nom-attribut_1 (valeur_1 | valeur_2 | ... | valeur_n) valeur-par-défaut_1 >

<book lang="fr">
bib.dtd
<!ELEMENT bib (book)*
<book lang="en"> <!ELEMENT book (#PCDATA)>
<!ATTLIST book lang (fr|ar|en) #REQUIRED>
bib.xml

2023-2024 Sana Fakhfakh Kessentini


XML-DTD Atelier n°2 n°2
Atelier
Atelier n°2
Exercie1:
Solution 1: DTD interne Solution 2: DTD externe
note.xml note.xml
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE note [ <!DOCTYPE note SYSTEM "note.dtd">
<!ELEMENT note (to,from,heading,body)> <note>
<!ELEMENT to (#PCDATA)> <to>Tove</to>
<!ELEMENT from (#PCDATA)> <from>Jani</from>
<!ELEMENT heading (#PCDATA)> <heading>Reminder</heading>
<!ELEMENT body (#PCDATA)> <body>Don't forget me this
]> weekend!</body>
</note>
<note>
<to>Tove</to> note.dtd
<from>Jani</from> <!ELEMENT note (to,from,heading,body)>
<heading>Reminder</heading> <!ELEMENT to (#PCDATA)>
<body>Don't forget me this <!ELEMENT from (#PCDATA)>
weekend</body> <!ELEMENT heading (#PCDATA)>
</note> <!ELEMENT body (#PCDATA)>
44
2023-2024 Sana Fakhfakh Kessentini
XML-DTD Atelier n°2 n°2
Atelier
Atelier n°2
Exercie3:

Adr.XML
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
Solution 1: Elément Solution 2:Attribut
<!DOCTYPE address [ <!DOCTYPE address [
<!ELEMENT address(Ville,CP)> <!ELEMENT address ( #PCDATA )>
<!ELEMENT Ville (#PCDATA > <!ATTLIST address
<!ELEMENT CP (#PCDATA > Ville CDATA #IMPLIED
]> CP CDATA #REQUIRED>
<address> ]>
<Ville>sfax</Ville>
<CP>3002</CP> <address Ville=“sfax”
</address> CP=“3002”</address>

45
2023-2024 Sana Fakhfakh Kessentini
XML-DTD Atelier n°2 n°2
Atelier
Atelier n°2
Exercice 4
Soit la DTD suivante

Écrire un document XML valide (conforme à la DTD ci-dessus)


2023-2024 Sana Fakhfakh Kessentini
47
XML-DTD Atelier n°2 n°2
Atelier
Exercice 5:
Ecrire une DTD biblio.dtd pour une bibliographie d'articles. Les
informations associées à un article sont :
 son titre;
 les noms des auteurs ;
 ses références de publication: nom du journal, numéro des pages, année
de publication et numéro du journal
On réserve aussi un champ optionnel pour un avis personnel.
biblio.dtd

48
2023-2024 Sana Fakhfakh Kessentini
XML-DTD Atelier n°2 n°2
Atelier
biblio.xml

49
2023-2024 Sana Fakhfakh Kessentini
XML-DTD Atelier n°2 n°2
Atelier
Exercice 6:

Modifier la DTD biblio.dtd précédente:

 en faisant de l'élément nom_journal un attribut de l'élément journal et


en lui donnant comme valeur par défaut ACM ;
 en faisant de l'élément annee un attribut de type énuméré, prenant
comme valeurs possibles 2012, 2013, 2014, "avant_2012" et
proposant comme valeur par défaut "avant_2012".
Utiliser cette DTD pour créer un fichier XML valide

50
2023-2024 Sana Fakhfakh Kessentini
XML-DTD Atelier n°2 n°2
Atelier
biblio.dtd

51
2023-2024 Sana Fakhfakh Kessentini
XML-DTD Atelier n°2 n°2
Atelier
Exercice 7:
•Un carnet d’adresses:
• la personne possède un identifiant unique (obligatoire), un nom, un
prénom
• on veut connaître le sexe de la personne (attribut optionnel) • on veut
connaître son email (optionnel)

52
2023-2024 Sana Fakhfakh Kessentini

Vous aimerez peut-être aussi