Você está na página 1de 17

HTML: HyperText Markup Language

SLAM1 XML

XML: eXtensible Markup Language

En-tte

2) C o d

1) Aperu dans un navigateur

SLAM1

XML

XML
Introduction : Qui est jean Paoli ? Rappels sur les rles du W3C www.w3c.org

Quelques liens http://www.zvon.org/ http://www.topxml.com/xml/LearnXML.asp http://xhtml.le-developpeur-web.com/index.php

SLAM1 Les standards XML

XML

I.

Comparaison HTML / XML

A partir de lannexe, complter Points communs : Langage balise

Diffrences : - HTML : Prsentation des donnes - XML : Dcrire les donnes

SLAM1

XML

Conclusion Le langage XML permet de sparer la prsentation et les donnes: dans le langage HTML les balises sont utilises pour prsenter les donnes alors quen XML les balises sont utilises uniquement pour dcrire les donnes de faon structur. XML n'est pas un langage fig comme peut l'tre le HTML mais un mtalangage : l'auteur d'un document XML peut crer ses propres balises tandis que lauteur dun document HTML doit utiliser les balises prdfinis (<title>, <p>). Les fichiers XML pourront tre manipuls facilement laide doutils informatiques.

SLAM1

XML

II.

Analyse de la structure dun fichier XML

Mon premier fichier XML

exemples XML\exemple-Un-XmlSimple.xml Ce fichier doit tre analyser (Parser) laide dun outil capable de valider un contenu au format xml. Exemples doutils - IExplorer -FireFox Rsultat affich

Quel sera le rsultat de linterprtation des exemples suivants

exemples XML\exemple-Deux-Xml-A-Valider.xml

SLAM1

XML

exemples XML\exemple-Trois-Xml-A-Valider.xml

SLAM1

XML

III.

Rgles de construction du contenu dun fichier XML

Dclaration XML Prologue Document XML lment Racine


Les instructions de traitement Instruction de traitement adresse au processeur XML : dclaration XML Elle dbute par le mot cl XML Une seule dclaration XML est autorise par document, en premire ligne Elle s'utilise pour dclarer la version XML et le codage des caractres

Instructions de traitement Type de document Nuds XML

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

SLAM1

XML

IV.

Analyse de la structure dun fichier XML

Voici 6 fichiers XML, le premier est le seul bien form, essayez de trouver la cause des malformations des autres fichiers :
<?xml version="1.0" encoding="iso-8859-1" ?> <catalogue> <produit> <reference>0358</reference> <libelle>Graveur DVD</libelle> <prix unite="euro">40</prix> <commentaire /> </produit> <produit> <reference>1235</reference> <libelle>DVD-R 4,7 Go</libelle> <prix unite="euro">1</prix> <commentaire>Nouveaut</commentaire> </produit> </catalogue> 1 <catalogue> 2 <produit> <reference>0358</reference> 3 <libelle>Graveur DVD</libelle> 4 <prix unite="euro">40</prix> 5 6 <commentaire /> 7 </produit> 8 <produit> <reference>1235</reference> 9 <libelle>DVD-R 4,7 Go</libelle> 10 11 <prix unite="euro">1</prix> <commentaire>Nouveaut</commentaire> 12 13 </produit> 14 </catalogue> 15

Document bien form


<?xml version="1.0" encoding="iso-8859-1" ?> <catalogue> <produit> <ReFerence>0358</reference> <LIBELLE>Graveur DVD</libelle> <prix unite="euro">40</PRIX> <commentaire /> </PRODUIT> <prodUIT> <ReFeReNcE>1235</reference> <LIBELLE>DVD-R 4,7 Go</libelle> <Prix unite="euro">1</pRIX> <commentairE>Nouveaut</Commentaire> </PRODuit> </catalogue> 1 <?xml version="1.0" encoding="iso-8859-1" ?> 2 <catalogue> 3 <produit> <reference>0358 4 <libelle>Graveur DVD</libelle> 5 <prix unite="euro">40</prix> 6 7 <commentaire> 8 </produit> <reference>1235</reference> 9 <libelle>DVD-R 4,7 Go</libelle> 10 11 <prix unite="euro">1</prix> <commentaire>Nouveaut</commentaire> 12 13 </produit> 14 </catalogue> 15

<?xml version="1.0" encoding="iso-8859-1" ?> <catalogue> <produit> <reference>0358</reference> <libelle>Graveur DVD</libelle> <prix unite="euro">40</prix> <commentaire /> </produit> </catalogue> <catalogue> <produit> <reference>1235</reference> <libelle>DVD-R 4,7 Go</libelle> <prix unite="euro">1</prix> <commentaire>Nouveaut</commentaire> </produit> </catalogue>

1 <?xml version="1.0" encoding="iso-8859-1" ?> 2 <catalogue> 3 <produit> <reference>0358 4 <libelle></reference>Graveur DVD</libelle> 5 <prix unite="euro">40</prix> 6 7 <commentaire /> 8 </produit> 9 <produit> <reference>1235</reference> 10 <libelle>DVD-R 4,7 Go</libelle> 11 12 <prix unite="euro">1<commentaire> </prix> Nouveaut</commentaire> 13 14 </produit> 15 </catalogue> 16 17

SLAM1
POINT COURS :

XML

1) - Liste des caractristiques dun fichier XML bien form

Rgles relatives aux lments


Les noms d'lment ne peuvent pas contenir d'espace blanc Ils ne peuvent pas dbuter par un nombre ou un signe de ponctuation Ils ne peuvent pas dbuter par xml ou par une de ses variantes Il ne peut y avoir d'espace aprs le crochet gauche (<) Les balises de dbut et de fin doivent tre de mme casse Le premier lment est l'lment racine L'lment racine doit se composer d'une balise de dbut et d'une balise de fin Tous les lments enfants doivent tre imbriqus dans l'lment racine L'imbrication d'lments ne peut pas engendrer de chevauchement Un lment vide peut tre constitu d'une balise unique

Rgles relatives aux attributs


Un attribut doit tre dclar dans une balise de dbut Des dclarations d'attributs conscutives doivent tre spares par un espace Un attribut est constitu d'un nom et d'une affectation de valeur Chaque nom d'attribut doit tre unique au sein d'un lment donn Un nom d'attribut donn peut tre rcurrent dans un document Un nom d'attribut ne peut pas contenir d'espace Une affectation de valeur peut utiliser des guillemets simples ou doubles

Que pensez-vous du fichier suivant ?


<?xml version="1.0" encoding="iso-8859-1" ?><catalogue><produit><reference>0358 </reference><libelle>Graveur DVD</libelle><prix unit="euro">40</prix><commentaire /> </produit><produit> <reference>1235</reference> <libelle>DVD-R 4,7 Go</libelle><prix unit="euro">1</prix> <commentaire>Nouveaut</commentaire> </produit></catalogue> Trop serr pas de mise en forme.

SLAM1 2) Exercices

XML

a) Exercice 1 : Jeu des 7 erreurs Trouvez les erreurs qui font que ce fichier nest pas bien form
1 <clients> 2 <client> <num>12</num> 3 <nom>Bordas</nom> 4 <prenom>Julien</prenom> 5 6 <adresse> <rue>3 place du march</RUE> 7 <cp>71100</cp> 8 <ville>Chalon sur Sane</ville> 9 10 </adresse> <tel>03-85-12-13-14 11 12 <mel /> 13 </client> 14 15 <client> <num>15</num> 16 <nom>Goussot</nom> 17 <prenom>Mlanie<prenom> 18 19 <adresse> <rue>2 rue de lobelisque </rue> 20 <cp>71100</cp> 21 <ville>Chalon sur Sane</ville> 22 23 </adresse> <tel>06-15-35-58-19<mel> 24 </tel>m.goussot@fai.fr</mel> 25 26 </client> 27 </clients>

10

SLAM1 b) Exercice 2

XML

Ecrire un fichier XML correspondant aux donnes suivantes : Commande n 5 du 03/05/2006 Rfrence 0358 1235 Nom produit Graveur DVD DVD-R 4,7Go Prix (en euros) 40 1 Quantit 1 10

Remarque : plusieurs commandes pourront tre saisies dans le fichier


<?xml version="1.0" encoding="iso-8859-1" ?> <commandes> <commande> <numero>5</numero> <date_cmd>03/05/2006</date_cmd> <produit> <reference>0358</reference> <libelle>Graveur DVD</libelle> <prix unite="euro">40</prix> <qte>1</qte> </produit> <produit> <reference>1235</reference> <libelle>DVD-r 4,7 go</libelle> <prix unite="euro">1</prix> <qte>10</qte> </produit> </commande> </commandes>

3) - Un document bien form est-il suffisant ?


1 <?xml version="1.0" encoding="iso-8859-1" ?> 2 <catalogue> 3 <produit> <reference>1235</reference> 4 <libelle>DVD-R 4,7 Go</ libelle > 5 <libelle >CD-R 700Mo</ libelle > 6 <prix>1</prix> 7 8 </produit> 9 </catalogue> 1 <?xml version="1.0" encoding="iso-8859-1" ?> 2 <catalogue> 3 <libelle>Graveur DVD</ libelle > 4 <prix unite="euro">40</prix> 5 <libelle >DVD-R 4,7 Go</libelle > 6 <prix unite="euro">1</prix> 7 <produit> <reference>0358</reference> 8 9 </produit> 10 <produit> <reference>1235</reference> 11 12 </produit> 13 </catalogue>

Ces fichiers sont-ils bien forms ? Ces fichiers vous paraissent-ils cohrents ?

11

SLAM1 - Voici les commandes de 2 clients :


Client A : 1 <?xml version="1.0" encoding="iso-8859-1" ?> 2 <racine> 3 <commande numero="5"> <date >03/05/2006</date > 4 5 <produit reference="0358"> <nom>graveur DVD</nom> 6 <prix unite="euro">40</prix> 7 <quantite >1</ quantite > 8 9 </produit> 10 <produit reference="1235"> <nom>DVD-r 4,7 go</nom> 11 <prix unite="euro">1</prix> 12 <quantite>10</ quantite > 13 14 </produit> 15 </commande> 16 </racine>

XML

Client B : 1 <?xml version="1.0" encoding="iso-8859-1" ?> 2 <cmd> <date_cmd>03/05/2006</date_cmd> 3 <num>5</num> 4 5 <prdt> <ref>0358</ref> 6 <nom>graveur dvd</nom> 7 <pu>40</pu> 8 <unite>euro</unite> 9 <qte>1</qte> 10 11 </prdt> 12 <prdt> <ref>1235</ref> 13 <nom>dvd-r 4,7 go</nom> 14 15 <pu>1</pu> <unite>euro</unite> 16 <qte>10</qte> 17 18 </prdt> 19 </cmd>

Ces fichiers sont-ils bien forms ? Ces fichiers vous paraissent-ils cohrents ? Pensez-vous que le programme du fournisseur qui recevra ces 2 fichiers pourra les interprter facilement ?

-Conclusion : Si lon veut effectuer des traitements automatiques sur des documents lectroniques XML : 1- il est ncessaire que le document XML soit 2- il est ncessaire que la structure du fichier XML soit et . Pour rpondre au point n2 la norme XML a dfini une dfinition de document type appele DTD (Document Type Definition)

12

SLAM1

XML

V.
1)

La DTD (Document Type Definition),


- POINT COURS :

XML permet d'utiliser un fichier afin de vrifier qu'un document XML est conforme une syntaxe donne. La norme XML dfinit ainsi une dfinition de document type appele DTD (Document Type Definition), Dfinition : Une DTD (Document Type Definition) reprsente lensemble des rgles et des proprits que doivent suivre les documents XML qui y sont rattachs. Un document XML est dit sil respecte la DTD laquelle il est associ. Remarques : - La norme XML nimpose pas lutilisation dune DTD. - La DTD nest pas crite au format XML.

13

SLAM1 2) -Analyse dune DTD

XML

Exemple de DTD partir de lexemple prcdent (la commande du client A) Fichier XML : commande.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?xml version="1.0" encoding="iso-8859-1" ?> <!DOCTYPE racine SYSTEM "commande.dtd"> <racine> <commande numero="5"> <date >03/05/2006</date > <produit reference="0358"> <libelle>graveur DVD</libelle> <prix unite="euro">40</prix> <quantite >1</ quantite > </produit> <produit reference="1235"> <libelle>DVD-r 4,7 go</libelle> <prix unite="euro">1</prix> <quantite>10</ quantite > </produit> </commande> </racine>

DTD : commande.dtd
1 <!ELEMENT racine (commande+)> 2 <!ELEMENT commande (date,produit+)> 3 <!ATTLIST commande numero CDATA #REQUIRED> 4 5 <!ELEMENT date (#PCDATA)> 6 7 <!ELEMENT produit (libelle,prix,quantite)> 8 <!ATTLIST produit reference CDATA #REQUIRED> 9 10 <!ELEMENT libelle (#PCDATA)> 11 12 <!ELEMENT prix (#PCDATA)> 13 <!ATTLIST prix unite (euro|livre) #REQUIRED> 14 15 <!ELEMENT quantite (#PCDATA)> 16 17

1- Expliquer la ligne 2 du document XML : <!DOCTYPE racine SYSTEM "commande.dtd">

2- Expliquer la ligne 8 de la DTD : <!ELEMENT produit (libelle,prix,quantite)>

3- Expliquer la ligne 11 de la DTD : <!ELEMENT libelle (#PCDATA)>

4- Expliquer la ligne 4 de la DTD : <!ATTLIST commande numero CDATA #REQUIRED>

5- Expliquer la ligne 14 de la DTD : <!ATTLIST prix unite (euro|livre) #REQUIRED>

6- Expliquer la ligne 3 de la DTD : <!ELEMENT commande (date,produit+)>

14

SLAM1
3)

XML RECAPITULATIF :

1- Dclaration dune DTD dans le fichier XML : exemple : ligne 2 du fichier XML prcdent
<!DOCTYPE racine SYSTEM nom du fichier.dtd >

2- Dclaration dun lment : exemple : ligne 1, 3, 6, 8, 11, 13 et 16 de la DTD de lexemple prcdent


<!ELEMENT nom de llment type>

2.1- Les types prdfinis : exemple : ligne 6, 11, 13 et 16 de la DTD de lexemple prcdent
Type Prdfini #PCDATA ANY EMPTY Description

2.2-Les lments composs de sous-lments exemple : ligne 1, 3 et 8 de la DTD de lexemple prcdent. Les sous-lments sont :

< !ELEMENT nom (sous-lment n1, sous-lment n2)>

Les sous-lments sont


Elment suivi de : + ? * Rien Signification

Les sous-lments peuvent tre

< !ELEMENT nom (sous-lment1 | sous-lment2)>

3- Dclaration dun attribut :


< !ATTLIST >

exemple : ligne 4, 9 et 14 de la DTD de lexemple prcdent 3.1- Le type Il existe plusieurs types, on retiendra le type CDATA (C'est le type le plus gnral), il permet de saisir un texte quelconque. Il est galement possible de donner une numration au lieu dun type : exemple ligne 14 de la DTD de lexemple prcdent. 3.2 la caractristique
Caractristique #REQUIRED #IMPLIED #FIXED Description

15

SLAM1 4) - Exercices Fichier XML :


1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?xml version="1.0" encoding="iso-8859-1" ?> <!DOCTYPE appart SYSTEM "appart.dtd"> <appart> <adresse> <rue>10 rue Victor Hugo</rue> <cp>71100</cp> <ville> Chalon sur Sane</ville> </adresse> <piece superficie="30">salon</piece> <piece superficie="10">cuisine</piece> <piece superficie="15">chambre</piece> <piece superficie="5">wc</piece> <piece superficie="10">sdb</piece> </appart>

XML

Fichier DTD : appart.dtd


1 )> 2 3 4 5 6 7 8 9 10 11 12 13 14

Travail faire : 1- Trouver une DTD correspondant au fichier XML Fichier XML :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <?xml version="1.0" encoding="iso-8859-1" ?> <!DOCTYPE clients SYSTEM "client.dtd"> <clients> <client> <nom>Gatien</nom> <prenom>Daniel</prenom> <adresse> <rue>15 rue de la libert</rue> <cp>71100</cp> <ville>Chalon sur Sane</ville> </adresse> <mel>d.gatien@fai.fr</mel> </client> <client statut="mauvais"> <nom>Mller</nom> <prenom>Gerard</prenom> <adresse> <rue>3 rue des lilas</rue> <cp>71100</cp> <ville>Chalon sur Sane</ville> </adresse> <tel_port>06-52-63-21-54</tel_port> <tel_fixe>03-85-38-95-87</tel_fixe> </client> </clients> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Fichier DTD : client.dtd

Travail faire : 2- Le document XML est-il valide ?

16

SLAM1

XML

3- Trouver une DTD correspondant au fichier XML Fichier XML :


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE lesClubs SYSTEM "clubs.dtd"> <lesClubs > <club ligue="1" nom="OM" > <president> <personne nom ="DIOUF" prenom="PAPE"/> </president> <joueur numero="30 "> <personne nom="Mandanda " prenom="Steve"> </personne> </joueur> <joueur numero="5"> <personne nom=" Hilton " prenom="Vitorino"> </personne> </joueur> </club> <club ligue ="1" nom ="PSG" classement="1"> <president> <personne nom ="VILLENEUVE" prenom ="Charles"> </personne> </president> <joueur numero="1"> <personne nom="Landreau" prenom=" Mickal "> </personne> </joueur> <joueur > <personne nom="Dembele " prenom=" Bassirou"> </personne> </joueur> </club> </lesClubs> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Fichier DTD : clubs.dtd

3- Crer un fichier XML correspondant au fichier DTD Fichier XML :


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Fichier DTD : books.dtd


<!ELEMENT bookstore (book)*> <!ELEMENT book (title,author*,price)> <!ATTLIST book genre CDATA #REQUIRED> <!ELEMENT title (#PCDATA)> <!ELEMENT author (name | (first-name,last-name))> <!ELEMENT price (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT first-name (#PCDATA)> <!ELEMENT last-name (#PCDATA)>

17

Você também pode gostar