Sie sind auf Seite 1von 93

Introduction XML eXtensible Markup Language

Fondements, modlisation, prsentation et programmation


RT3 et GL3 L.A Ben Sassi Manel 2010/2011
1

Sommaire du cours
Fondements de la technologie XML Document Type Dfinition (DTD) et schma XML Linterrogation du Fichier XML : Xpath et XQUERY Programmation en utilisant XML Application du XML: Les services Web, Ajax

XML: eXtensible Markup Language

Partie 1: fondements et notions de base

Notion de document lectronique


Dfinitions: Objet qui joue un rle de mdiateur entre les hommes

dans le temps et l'espace (change dinformation) Se prsente sous la forme de textes, tableaux, dessins, photos, ... Un document a un contenu (structure logique) et un fond (structure physique) Un document est un ensemble form par un support et une information (ISO TC-46)
4

Modles de document
Structure logique Dcrit le contenu dun document (information) Par exemple: Chapitre, section, paragraphes, figures,

notes Structure physique Dcrit la forme et le support du document (formatage) Par exemple: tomes, pages, cadres, pavs, fentres

Exemple dun document

Exemple dun document: Structure Logique

Exemple dun document: Structure Physique

Langages de reprsentation de documents


Par ordre chronologique: SGML (Norme ISO 8879 en 1986, rvise en 1988 et

1994) Mta-langage gnral HTML (Standard W3C depuis 1989) Structure gnrale fige XML (Standard W3C depuis 1998) Mta-langage simplifi compatible SGML

SGML: brve prsentation


Une norme internationale : Standard Generalized Markup Language ISO 8879 - 1989 Un mta langage de balisage de documents lisible par ltre humain et traitable par une machine permet de dfinir des langages de balisage Les documents sont baliss conformment la grammaire (la

DTD: Document Type Definition)


instances de DTD permet un balisage smantique du fond. Implique la notion de validit d'un document
10

SGML: Objectifs
Sparation du fond et de la forme possibilit de multiples prsentations un seul document en SGML (regroupant les deux structures) plusieurs formats : Postcript, HTML, etc. Support de traitements sur le contenu des documents

sans prise en compte de la forme Format de stockage et dchange normalis

11

SGML: Critiques
Un langage professionnel, concis et abstrait Trs

lourd et complexe pour la mise en uvre de documents respectant ce format


Une grande rigueur est demande l'entre des

documents Standard complexe et complet pour le traitement des documents Liens hypertextes possibles mais complexes
12

HTML : prsentation
HyperText Markup Language, Propos par le W3C

comme format de documents sur le Web Langage simple avec des balises standardises permettant la mise en forme dun texte. Standard reconnu par tous les navigateurs. Langage trs populaire sur le Web!!

13

HTML : inconvnients
Normalisation des diffrentes balises est difficile
Les constructeurs ont eu tendance dfinir leurs propres balises

pour rpondre leurs besoins (incompatibilit) HTML est ddi pour un seul type de terminaux
Mises jour difficiles

Restructuration ou remise en forme de lensemble des pages du

site est un travail fastidieux !! Incapacit dextension sans "plugins" cot client (formules mathmatiques, modlisations de molcules, scnes 3D).
Mlange de structures logique et physique
Donnes utiles mlanges avec la mise en forme Difficults trouver linformation recherche!!
14

SGML et HTML : Rsum


SGML
Langage puissant pouvant dcrire toute structure Documents difficile dfinir Documents difficiles utiliser

HTML
Spcialisation de SGML Adapt la prsentation
Inadapt

l'change entre

programmes

15

XML : Prsentation
XML=>eXtensible Markup Language , un nouveau langage

d'change bas sur le balisage XML=> un sous ensemble de SGML, mais plus simple que SGML! XML=> plus ouvert que HTML XML => fut dvelopp en 1996, et standardis par le W3C en 1998. XML est lun des membres dune grande et grandissante famille de langages connexes et cooprant qui inclue: DTD, XSL, XSTL, CSS, XPath, XPointers, XLinks, XML Schema...
16

XML: objectifs fixs par le W3C (1)


XML doit pouvoir tre utilis sans difficult sur Internet

simplicit ??!! XML doit soutenir une grande varit d'applications portabilit?? XML doit tre compatible avec SGML et HTML Il doit tre facile d'crire des programmes traitant les documents XML Facile?? Le nombre d'options dans XML doit tre rduit au minimum, idalement aucune. Les documents XML doivent tre lisibles par l'homme.
17

XML: objectifs fixs par le W3C (2)


Les documents XML doivent tre raisonnablement clairs La spcification de XML doit tre disponible rapidement La conception de XML doit tre formelle et concise Il doit tre facile de crer des documents XML

18

Les points forts de XML


Sparation de la structure et de la prsentation Moins confus que HTML Plus simple que SGML Idal pour l'change de donnes semi-structures Utilisable entre machines htrognes
19

XML: utilits (1)


XML est un Mta-langage universel pour reprsenter les donnes

changes sur le Web, qui permet au dveloppeur de dlivrer du contenu depuis les applications d'autres applications ou aux navigateurs. XML standardise la manire dont l'information est :
change: change facile des donnes entre les applications Prsente: sparation contenu et forme Archive: dans des fichiers structures Retrouve: indexer linformation dune manire la trouver

aisment Crypte: scurit des informations


20

XML: utilits (2)


Dfinir vos propres langages dchange Commande, facture, bordereau de livraison, etc. Modliser des documents et des messages Modle logique de donnes Elments typs agrgs (DTD, XML Schema) Publier des informations Neutre du point de vue format Mise en forme avec des feuilles de style Archiver des donnes Auto-description des archives (recherche dinformation)
21

Concepts de XML
Balise (ou tag ou label)

Marque de dbut et fin permettant de reprer un lment textuel Forme: <balise> de dbut, </balise> de fin
Texte encadr par une balise de dbut et une de fin Les lments de donnes peuvent tre imbriques

Elment de donnes

<producteur> <adresse> <rue>A. Einstein</rue> <ville>Villeurbanne</ville> </adresse> </producteur> Attribut


Doublet nom="valeur" qualifiant une balise

<producteur no="160017" region="Rhne">


22

Exemple 1 dun document XML

23

Exemple 2 dun document XML

24

Structure Arborescente dun document XML

25

La structure dun document XML

Quand utiliser les attributs?


Valeur unique de type simple (information monovalue)

Quand utiliser les lments?


Valeur de type complexe (numrations, possde des proprits)
26

La syntaxe du XML (1)


Le XML est un langage de balises [Markup Language]
Nous pouvons dfinir nos propres balises!! Ok Mais, il faut

respecter les rgles suivantes (drives du JavaScript): 1. Les noms peuvent contenir des lettres, des chiffres ou d'autres caractres 2. Les noms ne peuvent dbuter par un nombre ou un signe de ponctuation. 3. Les noms ne peuvent commencer par les lettres xml (ou XML ou Xml...). 4. Les noms ne peuvent contenir des espaces
27

La syntaxe du XML (2)


5. La longueur des noms est libre mais on conseille de rester

raisonnable. 6. On vitera certains signes qui pourraient selon les logiciels, prter confusion comme "-", ";", ".", "<", ">", etc. 7. Les caractres spciaux pour nous francophones comme , , , , sont priori permis mais pourraient tre mal interprts par certains programmes. 8. Les balises sont sensibles au majuscules et minuscules [case sensitive] exemple: <Message> != <message> 9.Toute balise ouverte doit imprativement tre ferme. Exemple: <li>Point 1</li> ou <image/>
28

La syntaxe du XML (3)


10. Les balises doivent tre correctement imbriques.

Exemple: <parent><enfant>Marine</enfant></parent>
des balises mal imbriques sont des fautes graves de sens:

<parent><enfant>Loc</parent></enfant> incorrecte!!
11. Tout document XML doit comporter une racine.
12. Les valeurs des attributs doivent toujours tre mises

entre des guillemets. Exemple: <date anniversaire="071185">

29

Un premier exemple (1)


<?xml version="1.0" encoding="ISO-8859-1"?> La dclaration <?xml version="1.0"?> indique au navigateur que ce qui suit est un document XML selon sa version 1.0. Le jeu de caractres "ISO-8859-1" est pour nous francophones. Il existe dautres encodages, comme UTF8, <racine> L'lment racine indispensable au XML. ... suite du document XML (bien form!)... </racine> Le document XML se termine obligatoirement la fermeture de la balise de racine.
30

Un premier exemple (2)


1

3
31

Rcapitulons: XML
Xml est un format dchange entre les applications Il permet de dfinir des langages pour dcrire des

donnes cest un mtalangage Permet de reprsenter pratiquement toute information semi-structure il peut jouer le rle dune base de donnes Offre de nombreux outils danalyse, parsing, des standards pour interroger et transformer les document XML, ...

32

Rcapitulons: XML , HTML et XHTML


XHTML est le successeur du Html mais aussi du XML

un mnage ??

cest une reformulation du HTML 4.0 selon la

syntaxe et les rgles du XML.

33

Exemple darchitecture dapplication

34

Gestion de linformation avec XML

35

XML: contextes dutilisation


Stockage de donnes
Format spcifiques (exemple: SVG)

36

XML: contextes dutilisation (2)


Echange de donnes
changes Business to Business, services web

37

Bases de donnes vs XML


Approche Donne
Structuration forte et simple Compatibilit SGBDR existants Mise jour en place Intgrit smantique Indexation exacte Adapt au transactionnel et dcisionnel

Approche Document
Structuration faible et complexe Systmes documentaires spcialiss Gestion de versions Recherche textuelle Indexation approche Accs type moteur de recherche

Performances attendues moyenne Performances attendues moyenne forte pour une volumtrie pour une volumtrie forte moyenne
38

39

XML: eXtensible Markup Language


Partie 2: Modlisation des documents Document Type Dfinition (DTD) et schma XML

40

Document Type Dfinition (DTD)


DTD (Document Type Definition) termes quivalents : type de document, classe de document Une DTD ou/et un schma permettent de dfinir son propre langage

bas sur XML savoir leVocabulaire (balises) et la Grammaire (imbrications) Exemple:


Un document correspondant une uvre littraire comporte:
Un nom d'auteur et plusieurs ouvrages Chaque ouvrage a un titre et s'tend ventuellement sur plusieurs

41

tomes numrots Chaque tome est divis en chapitre Chaque chapitre a un titre et est divis en paragraphes Chaque paragraphes comporte du texte

Document Type Dfinition (DTD)


Validit des documents:
Document bien form (Well Formed document) Guillemets (ou apostrophes) obligatoires autour des valeurs exemple <adresse id=2 type=domicile/> Les lments vides utilisent une notation spcifique exemple: <image src=image3.gif/> <image src=image3.gif></image> Les balises doivent tre correctement imbriques, exemple: <b><i> NON ! </b></i> Le document a une seule racine Un attribut est unique dans son lment Document valide (Valid document) := bien form + conforme la DTD ou au schma qui lui est associ c..d toutes les balises utilises sont dfinies dans la DTD et elles sont utilises dans l'ordre spcifi dans la DTD

42

Exercice: documents bien forms?


QUESTION: Est-ce que les documents suivants sont bien forms ? 1er document:

2me document

3me document

43

Document Type Dfinition (DTD)


On utilise la notion de la DTD lorsquon utilise de faon

rcurrente des balises dans un document XML: exemple , on a plusieurs auteurs pour un livre J Deux manires pour inclure une DTD un document XML: DTD interne au document et externe au document XML
La DTD interne On peut inclure son propre DTD au code source du fichier XML. Syntaxe: <!DOCTYPE element-racine [ declaration des lments ]>
44

Document Type Dfinition (DTD)


Prenons un exemple:
Dbut du DTD interne avec parent comme lment de racine. Dbut du DTD interne avec parent comme lment de racine. La racine parent contiendra les sous lments garcon et fille . #PCDATA indique au Parser XML que l'lment garon contient des donnes exprimes en chiffres ou en lettres.
45

Fin de la DTD

Document Type Dfinition (DTD)


La DTD externe La DTD externe suivra la syntaxe suivante : <!DOCTYPE lment-racine SYSTEM "nom_du_fichier.dtd"> Le mme fichier XML

DTD externe correspondante


46

Document Type Dfinition (DTD)


La dclaration de la DTD externe au niveau du document XML
On annonce la prsence de la DTD pour le document XML La racine du document XML URL de la DTD Niveau de diffusion de la DTD (priv = system | public)
47

Document Type Dfinition (DTD)


Dclaration d'lment simple

<! ELEMENT balise (dfinition) > Le paramtre dfinition reprsente soit un type de donne prdfini, soit un lment de donnes compos, constitu lui mme d'lments Types prdfinis (Types de base ( = type des donnes entre <nomBalise> et / nomBalise> ))
ANY : L'lment peut contenir tout type de donne et/ou balise EMPTY : L'lment ne contient pas de donnes spcifiques #PCDATA : L'lment doit contenir une chane de caractres

Exemple <! ELEMENT Nom (#PCDATA)> <Nom>Victor Hugo</Nom>


48

Document Type Dfinition (DTD)


Dclaration d'lment compos
Dfinit une squence ou un choix d'lments Syntaxe spcifique avec oprateurs de composition d'lments :

<! ELEMENT balise (composition) >

49

Exemple d'lment compos


Exemple dune DTD

Un document XML

conforme la DTD

50

Dclaration d'attributs
<! ATTLIST balise Attribut Type Mode >
- Balise spcifie l'lment auquel est attach l'attribut - Attribut est le nom de l'attribut dclar - Type dfinit le type de donne de l'attribut choisi parmi:
CDATA
Chanes de caractres entre guillemets ("aa") non analyses

Enumration
Liste de valeurs spares par | <! ATTLIST balise Attribut (Valeur1 | Valeur2 | ... ) >

ID et IDREF
Clef et rfrence clef

Mode prcise le caractre obligatoire ou non de l'attribut #REQUIRED, #IMPLIED (optionnel) ou #FIXED
51

Exemple dune DTD

52

DTD : Entit paramtre


Permet la dfinition d'un groupe d'lments sous un nom (macro)

<!ENTITY %nom "definition">


Rutilisable dans une DTD par simple appel %nom;

Exemple :

<!ENTITY %genres "(homme | femme)"> <!ATTLIST auteur genre %genres; #REQUIRED>

53

Quelques rgles d'criture


Modularit
Dfinir dans des entits spares les parties rutilisables

Prcdence
Regrouper les dclarations d'entits en tte

Abstraction
Utiliser des entits pour les modles de contenus

Spcificit
viter les DTD trop gnrales

Simplicit
Dcouper les DTD trop complexes
54

Insuffisance des DTD


Pas de types de donnes part du texte (#PCDATA) Expression de cardinalits limite (?, * et +) Syntaxe spcifique (pas XML)
Difficile interprter Difficile traduire en schma objets

Propositions de complments
55

XML-schema du W3C

XML Schma
Un schma d'un document dfinit: Les lments possibles dans le document Les attributs associs ces lments La structure du document et les types de donnes Le schma est spcifi en XML Pas de nouveau langage Balisage de dclaration Utilise un espace de nom xs: (ou xsd:) Prsente de nombreux avantages Types de donnes personnaliss Extensibilit par hritage et ouverture
56

Analysable par un parseur XML standard

XML Schma: Objectifs


Reprendre les acquis des DTD
Plus riche et complet que les DTD

Permettre de typer les donnes


Elments simples et complexes Attributs simples

Permettre de dfinir des contraintes


Existence obligatoire ou optionnelle Domaines de valeurs, cardinalits, rfrences ...

S'intgrer la nbuleuse XML


Espace de noms Structure d'arbre logique
57

XML Schma: Les types XML


La base dun schma XML: llment Un lment peut avoir un type: Simple si sa valeur a un type prdfini en XML-SCHEMA

(xs:string, xs:int, xs:decimal, xs:double) ou une extension de ces types Complexe sil contient des sous lments ou sil comporte un attribut
xs:all tous les lments doivent exister (peu importe lordre) xs:choice un des lments doit exister xs:sequence tous les lments doivent exister dans lordre
58

spcifi

XML Schma: Les types simples

59

XML Schma: Les types complexes


Dfinition d'objets complexes <sequence> : collection ordonne d'lments typs <all> : collection non ordonne d'lments typs <choice>: choix entre lments typs Exemple:

60

XML Schma: Les patterns


Permet de dfinir des contraintes sur type simple prdfini Appliquer des restrictions
Exemple de restriction

Autres facettes de restriction


xs:enumeration, xs:length
61

XML Schma: Rutilisation de types


Type simple avec extension

Type complexe (squence)

62

XML Schma: Les occurrences


Une bibliothque contient au moins un livre

infini

63

XML Schma: Les attributs


Les lments contenu complexe avec attributs

<traduction langue="allemand" dateTraduction="2003-12-01"> <traducteur>Michael</traducteur> </traduction>

Les lments en squence Les attributs

64

XML Schma: Groupage dlments

65

Bilan DTD et XML Schma


Les DTD dfinissent la grammaire des documents Les DTD sont crites en SGML Elles sont de plus en plus souvent remplaces par des

schmas.
Le standard XML-Schma est peu complexe

66

67

XML: eXtensible Markup Language


Partie 3: La recherche dans un document XML
Xpath

68

Xpath: ladressage dans XML


XPath est le langage qui permet dadresser une partie ou

plusieurs parties dun document, cest dire un ou plusieurs noeuds du document XML. Considrons cet exemple:

Premire tape: Reprsenter larbre de ce document?


69

Xpath: ladressage dans XML


Larbre correspondante:

70

Xpath: ladressage dans XML


La syntaxe de base XPath est semblable ladressage dans un

systme de fichiers. Syntaxe Xpath: /adresses/personne/nom Rsultat: <nom>Durand<nom>


2me exemple:

71

Xpath: ladressage dans XML

72

Xpath: ladressage dans XML


1.Recherche par contexte
<A> <B att=fr> <C>Bonjour</C> <D/> </B> <B att=en> <C>Hello</C> </B> <D id=12> <G> <H/> </G> </D> <EE/> <DE/> </A>

73

Xpath: ladressage dans XML


2. Recherche par prdicats :

74

Xpath: ladressage dans XML


2. Recherche par prdicats (suite) :

75

Xpath: ladressage dans XML


3.Utilisation doprateurs :

Requte: //*[@att=en and name()=B] Rponse: <B att=en> <C>Hello</C> </B>


76

Xpath: ladressage dans XML


Quelques exemples supplmentaires:

77

78

XML: eXtensible Markup Language


Partie 3: La recherche dans un document XML
Introduction Xquery

79

Do vient lide du Xquery?


Le stockage dinformations?? La plupart des informations disponibles actuellement sont stockes dans des bases relationnelles. Le langage SQL est mature, et bien implant!! Peut-on adapter SQL aux donnes semi- structures ? Rcupration dapplications Il faut ! Rcupration de comptences En quoi les donnes XML sont elles diffrentes ? 80

Xquery Vs SQL
SQL
Type darbre Nature

XML

Arbre deux niveaux (tables Arbre trs vari et tuples) Uniforme et rptitif (tous les comptes bancaires ont presque la mme structure) Trs vari (chaque page est vari) Les rsultats dune requtes XML peuvent tres de types diffrents et des structures complexes. Ces requtes peuvent effectuer des transformations structurelles et retourne un document XML

Les requtes et Retourne un ensemble de les rsultats rsultats homognes

81

Xquery Vs SQL

82

Xquery : Les contrantes du langage


Respect du modle de donnes XML Coordination avec XML Schema Doit supporter des types de donnes simples et complexes Doit supporter les quantificateurs existentiels et universels Doit supporter les oprations sur les hirarchies et squences Doit pouvoir combiner des informations de plusieurs documents Doit pouvoir transformer et crer des structures XML .. 83 Doit tre en XML ? (XQuery)

Rgles gnrales de Xquery


XQuery est un langage sensible la casse Les mots cls sont en minuscules Chaque expression a une valeur, et pas deffet de bord Les expressions sont composables Les expressions peuvent gnrer des erreurs Les commentaires sont possibles (: un commentaire :)
84

Xquery par les exemples


<?xml version="1.0 encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">XQuery Kick Start</title>
85

<author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>

Xquery par les exemples


On utilise des fonctions pour extarire des donnes partir du fichier XML Rsultat de la requte: un document XML
1

Doc(): fonction permet douvrir un fichier XML

Xquery utilise les expressions XPATH pour naviguer dans le document XML

Lexpression path: permet de slectionner tous les lments titres dans le fichier XML

86

Xquery par les exemples

Prdicat: Pour filtrer les informations slectionnes

87

Xquery par les exemples


4

Lexpression FLWOR: le parcours de tout le document


FLWOR est lacronyme de "For, Let,Where, Order by, Return".

88

Xquery par les exemples


4

Lexpression FLWOR: le parcours et le tri

For: slectionne tous les livres sous bookstore element stocks dans la variable $x. Where: selectionne uniquement les livres ayant un prix > 30. order by pour trier selon llment title. Return spcifie le rsultat retourner On peut toujours utiliser les fonctions prdfinis telles que: uppercase, substring

89

Xquery par les exemples


Xquery et HTML J

90

Xquery par les exemples


Xquery et HTML J Affiner laffichage du rsultat: Afficher les nuds textuels uniquement

91

Xquery par les exemples


Les rgles syntaxiques de Xquery J Xquery est sensible la case Les lments, les attributs et les variables doivent tre valides. Les valeurs des chanes de caractres doivent tre en double quotes. Dfinition des variables => prcd par le caractre $ exemple: $bookstore XQuery commentaire (: and:) (: XQuery Comment :)

92

Xquery par les exemples


Les expressions conditionnelles J

Les expressions de comparaison: =, !=, <,>,=<, >=, eq, ne, .


93