Cours Systèmes d Information Cours 2 : langage XML Plan Présentation de XML Structure d un document XML Z.Zelfani 1
Présentation de XML XML (extensible Markup Language) est un langage de description et d échange de documents structurés proposé en 1998 par le W3C comme base de l Internet et du e- business (commerce électronique). L objectif du W3C était de définir un formalisme permettent d échanger des documents complexes sur Internet en dépassant les limites imposés par HTML 2
Présentation de XML Xml permet d échanger des informations marquées par des balises décrivant la structure et la sémantique des contenus. Ces contenus pourront ensuite être: présentés de manière diversifiée en associant au document xml : des feuilles de style via XLS (exentsible Stylesheet Langage) ou des feuilles de style CSS (Cascading Style Sheets) Document XML + feuilles de style (CSS/XLS)= document stylé Contenu/données Type de présentation interprétés par des divers applications et outils Démo 3
Présentation de XML Intégration, formatage et transformation de documents XML API XSLT XSL-FO Flash, Php, java 4
Exemple :un document XML <?xml version="1.0" encoding="iso-8859-1"?> <RACINE> <COMMANDE> <NUMEROCOMMANDE>1</NUMEROCOMMANDE> <DATECOMMANDE>17/11/2005</DATECOMMANDE> <PRODUIT> <NOM>Graveur DVD *16 double couche</nom> <QUANTITE>1</QUANTITE> <PU>75</PU> </PRODUIT> <PRODUIT> <NOM>DVD-R 4,7 Go</NOM> <QUANTITE>10</QUANTITE> <PU>1</PU> </PRODUIT> </COMMANDE> </RACINE> 5
Présentation de XML Un document XML peut se représenter sous la forme d'une arborescence d'éléments. Cette arborescence comporte une racine (unique), des branches et des feuilles. Exemple: COMMANDE NUMEROCOMMANDE DATECOMMANDE PRODUIT NOM QUANTITE PU 6
Présentation de XML Caractéristiques du XML Il décrit, structure et échange des données. Les composants du documents sont identifiés par le biais de balises; Il est extensible et permet donc de créer ses propres balises en fonction des données que l on souhaite traitées. C est un méta langage Le document est représenté par une arborescence logique; Il est universel et portable (différents jeux de caractères sont pris en compte). Un document XML est utilisable par toute application pourvue d'un parseur (c'est-à-dire un logiciel permettant d'analyser un code XML). Supporté par les navigateurs 7
Présentation de XML XML comporte : une spécification de base, XML 1.0 publié en 1998 Des standards complémentaires ; Schema Definition (XSD) et Documents Type Definition (DTD) pour la définition de la structure des documents XSL ((extensible Stylesheet Language ) désigne un ensemble de normes destinées à exprimer des feuilles de style XML XSLT (XSL-Tranformations *) et XSL-FO (XSL Formating Objects* ) permettent de transformer les données selon les formats de sortie(html, WAP,RTF, PDF,.) Xlink pour la gestion des hyperliens entre documents, XQuery permettant des requêtes sur des collections de documents.. 8
La structure générale d un document XML Un document XML : - Débute par un prologue (facultatif et non répétable) - Contient un et un seul élément racine (obligatoire et non répétable) - Peut par la suite contenir des commentaires, des instructions de traitement ou des espaces (facultatifs et répétables) 9
Le prologue est constitué de : Une déclaration XML Des instructions de traitement Une déclaration de type de document. Tous ces éléments sont facultatifs dans le prologue et font de celui-ci un composant facultatif d'un document XML. Exemple <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="biblio.xsl"?> <!DOCTYPE biblio SYSTEM "biblio.dtd"> 10
Le prologue : Déclaration de XML Exemple <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> version : version du XML utilisée dans le document, 1.0 encoding : le jeu de codage de caractères utilisé. (la France : ISO- 8859-1), (UTF-8 par défaut). standalone : dépendance du document par rapport à une déclaration de type de document (DTD). Si standalone a la valeur yes, le processeur de l'application n'attend aucune déclaration de type de document extérieure au document. Sinon, le processeur attend une référence de déclaration de type de document 11
Code le jeu de caractères ISO encoding="utf-8" international norme ISO/IEC-10646 (8 bits) encoding="utf-16" international norme ISO/IEC-10646 (16 bits) encoding="iso-8859-1" langues de l'europe de l'ouest encoding="iso-8859-2" langues de l'europe de l'est encoding="iso-8859-3" langues de l'europe du sud encoding="iso-8859-4" langues de l'europe du nord encoding="iso-8859-5" langues cyrilliques encoding="iso-8859-6" langues arabes encoding="iso-8859-7" langue grecque encoding="iso-8859-8" langue hébraïque encoding="iso-8859-9" langue turque encoding="iso-8859-10" les langues nordiques 12
Le prologue : Instructions de traitement Une instruction de traitement est une instruction interprétée par l'application servant à traiter le document XML. Exemple : <?xml-stylesheet type="text/xsl" href="biblio.xsl"?> L application est xml-stylesheet, le processeur de feuille de style du XML. Deux feuilles de style différentes peuvent être utilisées, les XSL et CSS. attribut type indique de quel type de fichier text/css : feuilles de style CSS, type="text/xsl : feuilles de style XSL attribut href indique l'url du fichier. 13
Le prologue : Déclaration de type de document (DTD) Elle permet de définir la structure du document. Elle peut être de deux types, externe ou interne. Exemple : <!DOCTYPE biblio SYSTEM "biblio.dtd"> Elle définit l'ensemble des éléments utilisables dans le document, y compris l'élément-racine (biblio) ainsi que le nom de fichier biblio.dtd dans lequel se trouve définie la structure du document. 14
Les commentaires En XML, les commentaires commencent donc par <!-- et se terminent par -->. Ils peuvent être placés à n'importe quel endroit tant qu'ils se trouvent à l'extérieur d'une autre balise. Exemples : <!-- ceci est correct --> <elt> <!-- ceci est correct aussi --> Un peu de texte </elt> 15
Exemple <?xml version="1.0" encoding="iso-8859-1"?> <biblio> <livre> <titre>les Misérables</titre> <auteur>victor Hugo</auteur> <nb_tomes>3</nb_tomes> </livre> <livre> <titre>l'assomoir</titre> <auteur>émile Zola</auteur> </livre> </biblio> 16
Élément racine L'élément-racine est unique et englobe tous les autres éléments. Il s'ouvre juste après le prologue, et se ferme à la toute fin du document. Exemple : <?xml version="1.0" encoding="iso-8859-1"?> <biblio> <livre> <titre>les Misérables</titre> <auteur>victor Hugo</auteur> <nb_tomes>3</nb_tomes> </livre> <livre> <titre>l'assomoir</titre> <auteur>émile Zola</auteur> </livre> </biblio> 17
Un élément Un élément se compose d'une balise d'ouverture, d'un contenu et d'une balise de fermeture. Exemple d'élément contenant du texte : <titre>les Misérables</titre> Un élément peut être vide. <titre></titre> ou <titre/> 18
Le contenu d'un élément peut être du texte, d'autres éléments ou un mélange des deux. Exemple d'élément contenant d'autres éléments : <livre> <titre>l'assomoir</titre> <auteur>émile Zola</auteur> </livre> 19
Les attributs Tous les éléments peuvent contenir un ou plusieurs attributs. Chaque élément ne peut contenir qu'une fois le même attribut. Un attribut est composé d'un nom et d'une valeur. Il ne peut être présent que dans la balise ouvrante de l'élément Les attributs n'ont pas d'ordre; Chaque attribut doit être précédé d'un espace; 20
Exemple <épicerie item="sucre" item="café"></épicerie> Exemple <image source="ours.gif" description="gros ours" largeur="56" hauteur="100" /> 21
La section CDATA (pour "Character Data", données de caractère) Elle figure dans les fichiers XML sous la forme![cdata[ Elle évite que le contenu de cette section soit analysé par le navigateur lors de la lecture du fichier. Le texte sera donc affiché tel qu'il est écrit dans cette section 22
<article> <![CDATA[ Le 27 avril dernier, l'us Patent & Trademark Office accordait à l'éditeur ce brevet pour le moins surprenant. Une information passée inaperçue alors mais qui fait surface aujourd'hui. ]]> </article> 23
Règles de composition d un document XML Un certain nombre de règles de base doivent être respectées : 1. Un nom d'élément peuvent contenir du texte, des nombres. Ils ne peuvent débuter par xml ou XML, par un signe de ponctuation, un nombre ou un espace. Le nom peut être composé de : lettres, chiffres, «-», «_», «:» 2. Il existe un seul élément racine qui contient tous les autres éléments 3. La syntaxe XML est sensible à la casse La balise <CODECLIENT> est différente de la balise <CodeClient>. 24
4. Les noms d'attributs sont en minuscules ; 5. Les valeurs d'attributs doivent être entre guillemets ; 6. Toutes les balises portant un contenu non vide doivent être fermées. La balise de début, la balise de terminaison et le contenu entre deux sont globalement appelés élément ; 7. Les balises n'ayant pas de contenu doivent se terminer par /> <image src="ours.gif" alt="gros ours" width="56" height="100" /> <titre></titre> est équivalente à <titre/> 8. Une balise ouverte doit toujours être fermée et respectée, le cas échéant, l imbrication. <livre><titre>cardoni</titre></livre> Un document respectant ces critères est dit bien formé (well formed). 25
Elément ou Attribut : Quelle est la meilleure structure? 26
Règles de bon sens pour la structuration Visibilité 27
Les éditeurs XML Les editeurs XMLXMLL Adobe FrameMaker, www.adobe.com XML Pro, www.vervet.com XML Writer, xmlwriter.net XML Notepad, dn.microsoft.com/xml/notepad/ Xmetal, SoftQuad, xmetal.com XML Spy, www.xmlspy.com Epic, ArborText, www.arbortext.com XXE, XML Mind, www.xmlmind.com 28