Text of CHAPITRE 6 INTRODUCTION A XML. Plan Historique XML Exo 1 DTD Exo 2 XSL Exo 3 SAX DOM
Page 1
CHAPITRE 6 INTRODUCTION A XML
Page 2
Plan Historique XML Exo 1 DTD Exo 2 XSL Exo 3 SAX DOM
Page 3
Les TP Exo 1 : Ecrire un document XML valide Exo 2 : Ecrire la
DTD Exo 3 : Ecrire une feuille de style XSL
Page 4
1. Gnralits - Historique XML signifie Extensible Markup
Language C est standard reconnu par le W3C depuis fvrier 1998, Il
est drive du SGML dont il reprsente un sous ensemble, Il avait pour
intrt initial de faciliter l change de donnes informatique en
remplaant l EDI. La version 1.0 est disponible depuis 1998
Page 5
1. Gnralits - Historique Le SGML lorigine du XML ! SGML
(Standard Generalized Markup Language) (ISO 8879) est le l angage
de rfrence en GED. SGML est devenu une norme internationale en
1986. SGML dissocie la structure d'un texte de sa prsentation
physique. La typographique, elle est laisse loutil de mise en page
qui en donne une forme physique. SGML permet de distinguer la
structure d'un texte de son contenu.
Page 6
1. Gnralits - Comparer HTML & XML : Les forces de HTML
Standard sur les navigateurs du march, Filtre gnrant du HTML dans
la plupart des outils Bureautique, Portable d un environnement l
autre : UNIX, WINDOWS, APPLE,.. Facile d utilisation &
comprendre, Existence d une gamme importante d outils sur le march,
Editable & modifiable avec un simple diteur de textes.
Documents souvent peu volumineux.
Page 7
1. Gnralits - Comparer HTML & XML : Les lacunes de HTML
HTML ne permet pas de distinguer la partie prsentation, de la
partie donnes. Une page HTML est difficilement exploitable pour
extraire linformation et la retraiter : Exemple : constituer une
base de donnes de recette en exploitant les nombreux sites
disponibles sur Internet..! Effectuer une recherche dans un
ensemble de fichiers HTML donne des rsultats approximatif. Exemple
: Une recherche dans un moteur de recherche fournit un nombre
important de rfrence sans rapport avec la requte lance. Impossible
de prsenter de faons diffrentes les donnes d une page HTML. Exemple
: rfrences croises. Difficile de complter les donnes d une page
HTML statique. HTML ne permet pas de complter les balises en
fonction des besoins. Evolution des balises soumises au W3C
Page 8
1. Gnralits - Comparer HTML & XML : Les Avantages de XML
XML est un langage de spcification Permet la cration de balises :
Les balises et leurs contenus reprsentent un structure de donnes.
Sparation du contenu et de la reprsentation : Les feuilles de
styles XSL permettent de formater les donnes. La dfinition des
Balises est contenu dans un dictionnaire appel Document Type
Definition (DTD) optionnel permettant de crer un dialecte XML.
Exemple : Mathematical Markup Language (MathML) Utilisation de XML
pour les quations mathmatiques Chemical Markup Language (CML)
Utilisation de XML pour les objets chimiqies La rdaction d un
document XML est soumise des rgles strictes, vitant ainsi toute
ambigut.
Page 9
1. Gnralits - Comparer HTML & XML : Les Inconvnients de XML
On ne peut pas aujourdhui architecturer entirement un systme
dinformation en XML. XML nest quun lment dune architecture plus
complexe. Les outils de conception actuels sont encore incomplets.
Seul IE 5 reconnat actuellement XML. Navigator partir de la version
6 interprtera galement ce langage. La p lupart des navigateurs
utiliss aujourdhui ninterprte pas le XML. Les parseurs disponibles
donnent des rsultats quelques fois diffrents. Principalement dans
linterprtation des feuilles de styles.
Page 10
2. Le XML - Spcifications de XML XML dvelopp par le XML Working
Group form par le W3C en 1996. Les objectifs de conception de XML
sont les suivants : 1.XML sera utilisable sans difficult sur
Internet ; 2.XML soutiendra une grande varit d'applications ; 3.XML
sera compatible avec SGML ; 4.Il sera facile d'crire des programmes
traitant les documents XML ; 5.Le nombre d'options dans XML doit
tre rduit au minimum, idalement aucune ; 6.Les documents XML
devraient tre lisibles par l'homme et raisonnablement clairs ; 7.La
conception de XML devrait tre prpare rapidement ; 8.La conception
de XML sera formelle et concise ; 9.Il sera facile de crer des
documents XML ; 10.La concision dans le balisage de XML est de peu
d'importance.
Page 11
2. Le XML - Structure d un fichier XML Un document XML peut tre
reprsent sous la forme dun Arbre. Il possde une racine et chaque
Elment reprsente un nud.
Page 12
2. Le XML - Dfinition Dclaration : En premire ligne dans un
document XML Facultative mais recommande par le W3C Racine : Elment
UNIQUE Elments : Dfinissent le contenu d une balise XML Peuvent
contenir d autres lments Peuvent tre vides Peuvent contenir du
texte. Attributs : Ajoutent des donnes un lments Entits :
Raccourcis Similaires aux constantes
Page 13
Le XML permet de crer ses propres balises. Exemple de document
structur en XML : 5 1.2 Essence 4 1.3 Diesel & Diesel 2. Le
XML - Exemple Dclaration Attribut Racine Elment Entit
Page 14
2. Le XML - Type d encodage XML utilise les jeux de caractres
de la norme ISO 10646 ou Unicode. Standard contrl par le W3C,
permet de supporter les caractres de tous les langages. Ainsi tous
les caractres internationaux peuvent tre rfrencs en utilisant leur
reprsentation Unicode : Ex pour utiliser Les caractres sont cods
sur 4 octets pour rduire la taille des chanes un diffrents types de
codage peut tre utilis : Les plus frquemment utiliss sont : UTF-16
: codage des caractres sur 16 bits UTF-8 : codage des caractres sur
8 bits.UTF-7 : codage des caractres sur 7 bits ISO-8859-1
Page 15 Les types d attributs : #REQUIRED: obligatoire
#IMPLIED: facultatif #FIXED: valeur par dfaut spcifie Exemple :
>">
3. La DTD - Les Attributs Linstruction ATTLIST Cette
instruction associe des attributs un lment : Les types d attributs
: #REQUIRED: obligatoire #IMPLIED: facultatif #FIXED: valeur par
dfaut spcifie Exemple : >
Page 22
3. La DTD - Les Schmas Sous limpulsion de Microsoft, la notion
de schma a t introduite dans XML. Lacune de la DTD : La DTD ne
permet pas de spcifier le type dun lment (string, date,..) Le Schma
devrait remplacer terme la DTD. Plus complte elle introduit les
notions : De contrainte sur le contenu du modle. Ordre et squence
des Elments. De contrainte sur les types de donnes. Valeurs valides
pour une donnes. Nanmoins, l absence de spcification, est un frein
au dveloppement des Schmas. Les principales propositions sont : XML
Data/XML Data Reduced Document Content Description (DCD) : Typage
Fort des Donnes, Limite des valeurs, Hritage.
Page 23
3. La DTD - Les Schmas 5 1.2 Essence 4 1.3 Diesel &
Diesel
Page 24
3. La DTD - Les Schmas
Page 25
3. La DTD - Les Schmas
Page 26
4. Les NAMES SPACES Ils correspondent une recommandation du W3C
datant de janvier 1999. Ils permettent didentifier de manire unique
les balises utilises dans un document XML. Les espaces de nom sont
utiliss afin de bien dissocier les diffrentes syntaxes que l'on
peut trouver dans un document XML. Dclaration : Plusieurs names
spaces peuvent tre utilis dans la rdaction d un document XML.
xmlns:name1="http//../nspaces/name1.dtd"
xmlns:name2="http//../nspaces/name2.dtd" Dans le Document les
lments seront alors prfixs de nom correspondant leur names
spaces.
Page 27
5. Feuilles de Style XSL - Dfinition Langage de mise en forme
de feuille de Style : Il permet la transformation dune feuille XML.
Il permet la manipulation dun arbre ou chaque lment XML reprsente
un nud. Il en rsulte un nouvel arbre. XSL fournit la plupart des
structures de contrle dun langage classique. XSL permet de gnrer
des arbres sous diffrents formats (XML, HTML,..). La transformation
XSL : Le rsultat s obtient en appariant les structures (Pattern
matching). Ceci permet donc de slectionner le nud, l attribut sur
lequel doit s appliquer une transformation. Un modle (template)
permet d indiquer les actions raliser lors de l appariement. Il est
compos de rgles de mise en forme.
Page 28
5. Feuilles de Style XSL - Rle XSL est utiliser pour
transformer un page XML en HTML en WML... Une page XML est une
source de donnes. Les pages XSL sont des reprsentations diffrentes
des donnes : Rfrences croises, cumuls, tris, traitements divers sur
les donnes, Une page XSL est un document XML bien form. Attention
la DTD de l arbre destination peut-tre diffrente de l arbre d
origine. On compare souvent CSS XSL. CSS ne dispose pas de
structure de contrle, il ne permet que la mise en forme.
Page 29
5. Feuilles de Style XSL - Exemple page XML
5. Feuilles de Style XSL - Le matching * correspond n'importe
quel lment element1 | element2 trouve tous les lment element1 et
element2 element1 / element2 trouve tous les lments elemen2 ayant
element1 comme parent element1 // element2 correspond n'importe
quel lment element2 dont un anctre est element1 / correspond au
noeud racine text() correspond n'importe quel noeud textuel
processing-instruction() correspond n'importe quel instruction de
traitement node() correspond n'importe quel noeud autre qu'un noeud
attribut et que le noeud racine element1 [1] correspond au premier
des lments element1 d'un parent element1 [last()=1] correspond
n'importe quel lment element1 qui est l'unique lment element1 de
son lment parent element1 / element2[position()>1] correspond
tous les lments element2, autres que le premier, et dont le parent
est element1 @class correspond tous les attributs class @*
correspond n'importe quel attribut
Page 32
5. Feuilles de Style XSL - Structures de contrles Cration de
variables Cration d'lments : Cration dattributs : Cration dun text
: blabla
Page 33
5. Feuilles de Style XSL - Structures de contrles Insertion de
la valeur dun lment : Boucle : Tri : Alternative : Exemple :
Page 34
5. Feuilles de Style XSL - Exemple Liste Employe Rgle
modleBoucleAppel d'une rgleParamtreCration d'un Element
Page 35
5. Feuilles de Style XSL - Exemple z Rcupration du Paramtre
ConditionnelleAffichage d'une variable Rgle modle
Page 36
6. Les API - SAX Interface Simple API for XML (SAX). Ces API
sont orientes vnements. Le gestionnaire d vnement est similaire
celui de Windows pour grer les IHM. Le moteur SAX dclenche un
vnement lorsquil dtecte une balise de dbut ou une balise de fin.
Implment en JAVA, Python, PHP. Avantage : Ne charge pas globalement
le fichier XML en mmoire avant de commencer le traitement.
Inconvnient : Pas de construction darbre Fonction PHP3 : int
xml_set_element_handler(int parser, string startElement, string
endElement); parser : pointeur sur un objet parseur startElement :
fonction dclenche lorsquune balise de dbut est rencontre.
endElement : fonction dclenche lorsquune balise de fin est
rencontre.
Page 37
6. Les API - SAX Exemple en PHP $file = "data.xml"; $depth =
array(); function startElement($parser, $name, $attrs) {... }
function endElement($parser, $name) {... } $xml_parser =
xml_parser_create(); xml_set_element_handler($xml_parser,
"startElement", "endElement"); if (!($fp = fopen($file, "r"))) {
die("could not open XML input"); } while ($data = fread($fp, 4096))
{ if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML
error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser))); }
xml_parser_free($xml_parser); Fonction excute pour traiter le dbut
dun lment Fonction excute pour traiter la fin dun lment Objet
ParserAssocie les EvtsTraite le fichierGestion des Erreurs
Page 38
6. Les API Appariage en PHP 4 Chaine XSLChaine
XMLAppariage
7. Les API - DOM Parcours dun arbre en ASP Objet DOMChargement
SynchroneChargement du documentRacineNbre de Nuds Fils Parcours des
FilsTraitement des Fils
Page 42 Doc XMLDoc XSLDOM XMLDOM XSLAppariage">
7. Les API DOM Appariage XSL en ASP Doc XMLDoc XSLDOM XMLDOM
XSLAppariage
Page 43
8. Les logiciels - Les parsers XML Cot Serveur Les parsers
Validant Microstar Aelfred Les parsers non Validant MSXML (intgr
IIS) IBM XMLJ Ct client Internet Explorer 5.0 Netscape Navigator V6
Interface de programmation Interface Simple API for XML (SAX)
Interface Document Oject Model (DOM)
8. Les logiciels - Les langages de requtes XML-QL Propos par
Bell Labs Il permet d'interroger des documents XML Il fournit
galement un interface de cration de document XML Ce langage est
inspir du SQL XQL Propos par Microsoft Il permet d'interroger des
documents XML via XSL Base de donnes Orients Objets Elles gnrent
des documents XML ORACLE v 8i SQL Serveur 2000 fournit des
fonctionnalits XML
Page 47
8. Les logiciels - Les diteurs XML Editeurs XML XML Notepad
(Parser Microsoft) XMLPRO (Parser IBM XML 4J) Xmetal de softquad
Editeurs DTD XML Autority : Construction graphique d un DTD Near
& Far Designer XML Editeurs XSL eXcelon Stylus XML SPY
Page 48
9. Les Rfrences - Les sites WEB La rfrence dans le domaine :
http://www.w3.org
http://msdn.microsoft.com/xml/reference/xsl/XSLElements.asp
http://www.w3schools.com/ http://www.vbxml.com/xsl/
Page 49
9. Les Rfrences - Les ouvrages La rfrence dans le domaine :
XML. Langage et applications de MICHARD, Alain EYROLLES
INTRODUCTION AU XML SAINT-LAURENT Simon OSMAN EYROLLES MULTIMEDIA
2000 XSLT Programmer's Reference Michael KAY Edition WROX