CHAPITRE 6 INTRODUCTION A XML.

Slides:



Advertisements
Présentations similaires
Transformation de documents XML
Advertisements

Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Les espaces de nommage XML par Philippe Poulard 1
XML schema Objectifs Valider un doc. XML pour des contraintes syntaxiques Documenter un type de documents XML caractérisé par des contraintes Encadrer.
Données structurées et XML
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
le langage les éléments
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
version Beta Marie Calberg Ninni Louhelainen SLFN7
XML en 10 points1 Jean-Daniel Fekete Département Informatique École des Mines de Nantes
TP 3-4 BD21.
Manipulation d’XML avec XSL
INTRODUCTION.
Introduction et Concepts : De SGML à XML
Adamou Mahamane Sidi Maman Bachir
Langage de structuration des données: XML
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Initiation à la conception de systèmes d'information
Introduction à DOM Maroua Bouzid
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Web Structurel
28 novembre 2012 Grégory Petit
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
XML: Syntaxe XML, DTD et Schémas
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
XSLT Langage de transformation darbre par Yves Bekkers.
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Jonathan Montois Cyrille Kriegel
Support des connaissances TP2 XSL-T
Les feuilles de style CSS
Langages de requêtes XML
8 - XML Cours XML.
1 Programmation Web II 2 ème année Licence Appliquée IAG Faculté des Sciences Economiques et de Gestion de Nableul Université 7 novembre à Carthage Années.
Le langage XHTML 420-S4W-GG Programmation Web Client
Le langage du Web CSS et HTML
PROGRAMMATION WEB FRONT-END.
JavaScript Nécessaire Web.
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Le langage XML.
Cours de programmation web
L’ ACCESSIBILITE « C’est mettre le Web et ses services à la disposition de tous les individus, quels que soient leur matériel ou logiciel, leur infrastructure.
Les balises HTML et les objets JavaScript correspondants Objet document L'objet document est important dans la mesure ou il contient tous les objets du.
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
S'initier au HTML et aux feuilles de style CSS Cours 5.
SMIL Synchronized Multimedia Integration Language
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
1. Introduction 2. DTD 3. Schémas
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
eXtensible Markup Language. Généralités sur le XML.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
Vers la modularisation des données du web XHTML. Qu'est-ce que XHTML ? ● XHTML est une famille de types de documents futurs et actuels et de modules :
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
XML : un métalangage pour la description de documents structurés XML a été défini par le consortium W3 en fonction de 2 objectifs: Compenser les limitations.
Introduction Module 1.
Bloc 1 - UE 5 - Technologies de l’information et de la communication TIC Bachelier en immobilier T. SOUMAGNE.
XML les données réellement portables La nécessité d’un format de données universel et lisible se faisait sentir depuis longtemps, aujourd’hui avec le développement.
Transcription de la présentation:

CHAPITRE 6 INTRODUCTION A XML

Plan Historique XML Exo 1 DTD Exo 2 XSL Exo 3 SAX DOM

Les TP Exo 1 : Ecrire un document XML valide Exo 2 : Ecrire la DTD Exo 3 : Ecrire une feuille de style XSL

1. Généralités - Historique XML signifie Extensible Markup Language C ’est standard reconnu par le W3C depuis février 1998, Il est dérive du SGML dont il représente un sous ensemble, Il avait pour intérêt initial de faciliter l ’échange de données informatique en remplaçant l ’EDI. La version 1.0 est disponible depuis 1998

1. Généralités - Historique Le SGML à l’origine du XML ! SGML (Standard Generalized Markup Language) (ISO 8879) est le langage de référence en GED. SGML est devenu une norme internationale en 1986. SGML dissocie la structure d'un texte de sa présentation physique. La typographique, elle est laissée à l’outil de mise en page qui en donne une forme physique. SGML permet de distinguer la structure d'un texte de son contenu.

1. Généralités - Comparer HTML & XML : Les forces de HTML Standard sur les navigateurs du marché, Filtre générant 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.

1. Généralités - Comparer HTML & XML : Les lacunes de HTML HTML ne permet pas de distinguer la partie présentation, de la partie données. Une page HTML est difficilement exploitable pour extraire l’information et la retraiter : Exemple : constituer une base de données de recette en exploitant les nombreux sites disponibles sur Internet ..! Effectuer une recherche dans un ensemble de fichiers HTML donne des résultats approximatif. Exemple : Une recherche dans un moteur de recherche fournit un nombre important de référence sans rapport avec la requête lancée. Impossible de présenter de façons différentes les données d ’une page HTML. Exemple : références croisées. Difficile de compléter les données d ’une page HTML statique. HTML ne permet pas de compléter les balises en fonction des besoins. Evolution des balises soumises au W3C

1. Généralités - Comparer HTML & XML : Les Avantages de XML XML est un langage de spécification Permet la création de balises : Les balises et leurs contenus représentent un structure de données. Séparation du contenu et de la représentation : Les feuilles de styles XSL permettent de formater les données. La définition des Balises est contenu dans un dictionnaire appelé Document Type Definition (DTD) optionnel permettant de créer un dialecte XML. Exemple : Mathematical Markup Language (MathML) Utilisation de XML pour les équations mathématiques Chemical Markup Language (CML) Utilisation de XML pour les objets chimiqies La rédaction d ’un document XML est soumise à des règles strictes, évitant ainsi toute ambiguïté.

1. Généralités - Comparer HTML & XML : Les Inconvénients de XML On ne peut pas aujourd’hui architecturer entièrement un système d’information en XML. XML n’est qu’un élément d’une architecture plus complexe. Les outils de conception actuels sont encore incomplets. Seul IE 5 reconnaît actuellement XML. Navigator à partir de la version 6 interprétera également ce langage. La plupart des navigateurs utilisés aujourd’hui n’interprète pas le XML. Les parseurs disponibles donnent des résultats quelques fois différents. Principalement dans l’interprétation des feuilles de styles.

2. Le XML - Spécifications de XML XML développé 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 variété 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 réduit au minimum, idéalement à aucune ; 6. Les documents XML devraient être lisibles par l'homme et raisonnablement clairs ; 7. La conception de XML devrait être préparée rapidement ; 8. La conception de XML sera formelle et concise ; 9. Il sera facile de créer des documents XML ; 10. La concision dans le balisage de XML est de peu d'importance.

2. Le XML - Structure d ’un fichier XML Un document XML peut être représenté sous la forme d’un Arbre. Il possède une racine et chaque Elément représente un nœud. <Document> <Intro/> <Chapitre_1> <Titre_1> <Titre_1-1/> <Titre_1-2/> <Titre_1-3/> </Titre_1> <Titre_2/> <Titre_3/> <Chapitre_2/> <Chapitre_3/> <Conclusion/> </Document>

2. Le XML - Définition Déclaration : En première ligne dans un document XML Facultative mais recommandée par le W3C Racine : Elément UNIQUE Eléments : Définissent le contenu d ’une balise XML Peuvent contenir d ’autres éléments Peuvent être vides Peuvent contenir du texte. Attributs : Ajoutent des données à un éléments Entités : Raccourcis Similaires aux constantes

Le XML permet de créer ses propres balises. 2. Le XML - Exemple Le XML permet de créer ses propres balises. Exemple de document structuré en XML : <?xml version version="1.0"?> <MOTEURS> <MOTEUR marque = ‘Peugeot’>         <PUISSANCE>5</PUISSANCE>         <CYLINDREE>1.2</CYLINDREE>         <CARBURATION>Essence</CARBURATION > </MOTEUR> <MOTEUR marque = ‘Renault’>         <PUISSANCE>4</PUISSANCE>         <CYLINDREE>1.3</CYLINDREE>         <CARBURATION>Diesel &amp Diesel</ CARBURATION > </MOTEUR> </MOTEURS> Déclaration Racine Elément Attribut Entité

2. Le XML - Type d ’encodage XML utilise les jeux de caractères de la norme ISO 10646 ou Unicode. Standard contrôlé par le W3C, permet de supporter les caractères de tous les langages. Ainsi tous les caractères internationaux peuvent être référencés en utilisant leur représentation Unicode : Ex pour Ä utiliser &#196 Les caractères sont codés sur 4 octets pour réduire la taille des chaînes un différents types de codage peut être utilisé : Les plus fréquemment utilisés sont : · UTF-16 : codage des caractères sur 16 bits · UTF-8  : codage des caractères sur 8 bits . UTF-7  : codage des caractères sur 7 bits · ISO-8859-1 <?xml version='1.0' encoding='UTF-8'?>

2. Le XML - Document XML Bien Formé Un document XML doit répondre aux critères suivants: ·les valeurs d'attributs doivent être entre en guillemets " " ·les noms des attributs doivent tous être en minuscules ·toute balise ouverte doit être fermée ex : <p>.......</p> ·les balises uniques doivent être de la forme <balise/>, ·les caractères < et & écrits < et & ·un document commence par la déclaration suivante : <?xml version="1.0" standalone="yes"?> (yes, s'il est seul et no s'il est accompagné d'une DTD)

Donner toujours la préférence aux Eléments 2. Le XML - Eléments ou Attributs ??? Aucune règle existe. Eléments : Pour les informations faisant partie de l ’objet ex Titre d ’un livre. Pour les informations répétées. Pour les informations pouvant être regroupées en unitié logique. Attributs : Les identifiants. Pour éviter des arborescences profondes. Pour limiter les valeurs. Donner toujours la préférence aux Eléments Pour des raisons de performances : Chargement plus rapide Indexation plus rapide (implique une recherche plus rapide)

Un document BIEN FORME n’est pas forcément VALIDE 3. La DTD - Définition DTD (Document Type Definition) est l'acronyme Définition de type de document. Elle va permettre de définir la structure interne d’un document XML, Son l'utilisation est facultative. Un document répondant à une DTD est dit VALIDE. La Validation processus de vérification d ’un document XML : Les données sont dans le bonne ordre, Les données sont dans le bon format, Les champs obligatoires sont présents,…. Un document BIEN FORME n’est pas forcément VALIDE

3. La DTD - Interne ou Externe La DTD peut prendre deux formes : ·soit interne, incluse dans une feuille XML ·soit externe, dans un fichier spécifique permettant sa réutilisation. Document avec DTD externe : <?xml version="1.0" standalone =  "no" ?> <!DOCTYPE accueil SYSTEM    "racine.dtd"> <racine>Bonjour!</racine> Document avec DTD interne : <?xml version="1.0" encoding="UTF-8"  standalone =  "yes"  ? > <!DOCTYPE racine [   <!ELEMENT  racine  (#PCDATA)> ]> <racine >Bonjour!</racine > Ces documents s ’auto décrivent. La DTD doit avoir le même nom que la racine.

3. La DTD - Les Types d’éléments La déclaration de type d'élément La déclaration de type d'un élément spécifie le contenu de cet élément. La notation est la suivante : <!ELEMENT NomElément TypeElément> Les différents types EMPTY : pour les éléments sans contenu. Ex <BR/> ANY : pour les éléments dont on ignore le contenu #PCDATA: pour les données textuelles Exemples <!ELEMENT br EMPTY> <!ELEMENT titre (Chapitre|Introduction|Conclusion)> <!ELEMENT auteur (#PCDATA)>

3. La DTD - Les Répétitions Déclaration de l'élément racine : <!ELEMENT documents(document)> Déclaration des éléments fils de la racine : <!ELEMENT document(titre,auteur,texte)> <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT texte (introduction?,chapitre+,conclusion?)> Répétition : Par défaut répété une seule fois, ? optionnel, * plusieurs fois ou pas du tout, + au moins une fois.

3. La DTD - Les Attributs L’instruction ATTLIST Cette instruction associe des attributs à un élément : <!ATTLIST document prix CDATA #REQUIRED, // valeur donnée promotion (oui|non)   "non" // Liste de valeurs possibles > Les types d ’attributs : #REQUIRED : obligatoire #IMPLIED : facultatif #FIXED : valeur par défaut spécifiée Exemple : <!ATTLIST element           attribut    (valeur1| valeur2 | valeur3)  "valeur1"> >

3. La DTD - Les Schémas Sous l’impulsion de Microsoft, la notion de schéma a été introduite dans XML. Lacune de la DTD : La DTD ne permet pas de spécifier le type d’un élément (string, date, ..) Le Schéma devrait remplacer à terme la DTD. Plus complète elle introduit les notions : De contrainte sur le contenu du modèle. Ordre et séquence des Eléments. De contrainte sur les types de données. Valeurs valides pour une données. Néanmoins, l’absence de spécification, est un frein au développement des Schémas. Les principales propositions sont : XML Data/XML Data Reduced Document Content Description (DCD) : Typage Fort des Données, Limite des valeurs, Héritage.

3. La DTD - Les Schémas <?xml version version="1.0"?> <MOTEURS> <MOTEUR marque = ‘Peugeot’>         <PUISSANCE>5</PUISSANCE>         <CYLINDREE>1.2</CYLINDREE>         <CARBURATION>Essence</CARBURATION > </MOTEUR> <MOTEUR marque = ‘Renault’>         <PUISSANCE>4</PUISSANCE>         <CYLINDREE>1.3</CYLINDREE>         <CARBURATION>Diesel &amp Diesel</ CARBURATION > </MOTEUR> </MOTEURS>

3. La DTD - Les Schémas <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" elementFormDefault="qualified"> <xsd:element name="MOTEURS"> <xsd:complexType> <xsd:sequence> <xsd:element ref="MOTEUR" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="MOTEUR"> <xsd:sequence maxOccurs="1"> <xsd:element ref="CARBURATION"/> <xsd:element ref="CYLINDREE"/> <xsd:element ref="PUISSANCE"/> <xsd:attribute name="marque" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="Peugeot"/> <xsd:enumeration value="Renault"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute>

3. La DTD - Les Schémas <xsd:element name="CARBURATION" type="xsd:string"/> <xsd:element name="CYLINDREE"> <xsd:simpleType> <xsd:restriction base="xsd:decimal"> <xsd:enumeration value="1.2"/> <xsd:enumeration value="1.3"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="PUISSANCE"> <xsd:restriction base="xsd:byte"> <xsd:enumeration value="4"/> <xsd:enumeration value="5"/> </xsd:schema>

4. Les NAMES SPACES Ils correspondent à une recommandation du W3C datant de janvier 1999. Ils permettent d’identifier de manière unique les balises utilisées dans un document XML. Les espaces de nom sont utilisés afin de bien dissocier les différentes syntaxes que l'on peut trouver dans un document XML. Déclaration : <xsl:stylesheet xmlns:"http//www.w3.org/1999/XSL/Tranform" version= "1.0"> Plusieurs names spaces peuvent être utilisé dans la rédaction d ’un document XML. xmlns:name1="http//…../nspaces/name1.dtd" xmlns:name2="http//…../nspaces/name2.dtd" Dans le Document les éléments seront alors préfixés de nom correspondant à leur names spaces. <name1:element> <name2:element/> </name1:element>

5. Feuilles de Style XSL - Définition Langage de mise en forme de feuille de Style : Il permet la transformation d’une feuille XML. Il permet la manipulation d’un arbre ou chaque élément XML représente un nœud. Il en résulte un nouvel arbre. XSL fournit la plupart des structures de contrôle d’un langage classique. XSL permet de générer des arbres sous différents formats (XML, HTML,..). La transformation XSL : Le résultat s ’obtient en appariant les structures (Pattern matching). Ceci permet donc de sélectionner le nœud, l ’attribut sur lequel doit s ’appliquer une transformation. Un modèle (template) permet d ’indiquer les actions à réaliser lors de l ’appariement. Il est composé de règles de mise en forme.

5. Feuilles de Style XSL - Rôle XSL est utiliser pour transformer un page XML en HTML en WML ... Une page XML est une source de données. Les pages XSL sont des représentations différentes des données : Références croisées, cumuls, tris, traitements divers sur les données,… Une page XSL est un document XML bien formé. Attention la DTD de l ’arbre destination peut-être différente de l ’arbre d ’origine. On compare souvent CSS à XSL. CSS ne dispose pas de structure de contrôle, il ne permet que la mise en forme.

5. Feuilles de Style XSL - Exemple page XML Déclaration Lien XSL <?xml version="1.0"? <?xsl:stylesheet type="text/xsl" href="exemple.xsl"?> <documents> <article> <auteur> Dupond </auteur> <date> 01 janvier 2001 </date> <titre> Le XSL </titre> </article> <auteur> Martin </auteur> <date> 10 janvier 2001 </date> <titre> Le XML </titre> </documents> Racine XML

5. Feuilles de Style XSL - Exemple page XSL <?xml version="1.0"?> <xsl:stylesheet xmlns:"http//www.w3.org/1999/XSL/Tranform" version= "1.0"> <xsl:output method="html"/> <xsl:template match="/"> <html> <BODY>    <xsl:apply-templates select=“article”/> </BODY> </html> </xsl:template> <xsl:template match="article"> ... </xsl:template> Déclaration Names Spaces Type de sortie Template racine HTML Application d’un modèle aux noeuds fils Template article

5. Feuilles de Style XSL - Le matching <xsl:template match="…"> </xsl:template> * correspond à n'importe quel élément element1 | element2 trouve tous les élément element1 et element2 element1 / element2 trouve tous les éléments elemen2 ayant element1 comme parent element1 // element2 correspond à n'importe quel élément element2 dont un ancêtre 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 éléments element1 d'un parent element1 [last()=1] correspond à n'importe quel élément element1 qui est l'unique élément element1 de son élément parent element1 / element2[position()>1] correspond à tous les éléments element2, autres que le premier, et dont le parent est element1 @class correspond à tous les attributs class @* correspond à n'importe quel attribut

5. Feuilles de Style XSL - Structures de contrôles Création de variables <xsl:variable  name = variable select = expression> </xsl:variable> Création d'éléments : <xsl:element name = element> </xsl:element> Création d’attributs : <xsl:attribute name = attribut> </xsl:attribute> Création d’un text : <xsl:text> blabla </xsl:text>

5. Feuilles de Style XSL - Structures de contrôles Insertion de la valeur d’un élément : <xsl:value-of select="."/> <xsl:value-of select="nom"/> Boucle : <xsl:for-each select="element"/> … </xsl:for-each> Tri : <xsl:sort select="element" order="descending"/> Alternative : <xsl:if test="expression"/> … </xsl:if> Exemple : <xsl:if test= "position()=last()"/> … </xsl:if> <xsl:choose> <xsl:when test="expression"/> … </xsl:when> <xsl:otherwise> … </xsl:otherwise> </xsl:choose>

5. Feuilles de Style XSL - Exemple Règle modèle <xsl:template match = "personnel"> <center> Liste Employe</center> <xsl:for-each select="employe[position()mod 2 = 1]"> <xsl:sort select="nom"/> <xsl:call-template name="employeCall"> <xsl:with-param name="nom"> <xsl:value-of select="nom"/> </xsl:with-param> </xsl:call-template> <xsl:element name="br"/> </xsl:for-each> </xsl:template> Boucle Appel d'une règle Paramètre Création d'un Element

5. Feuilles de Style XSL - Exemple <xsl:template name="employeCall"> <xsl:param name="nom"/> <b> <xsl:if test="position() mod 2 = 1"> <xsl:value-of select="$nom"/> </xsl:if> </b> </xsl:template> z Règle modèle Récupération du Paramètre Conditionnelle Affichage d'une variable

6. Les API - SAX Interface Simple API for XML (SAX). Ces API sont orientées événements. Le gestionnaire d ’événement est similaire à celui de Windows pour gérer les IHM. Le moteur SAX déclenche un événement lorsqu’il détecte une balise de début ou une balise de fin. Implémenté en JAVA, Python, PHP. Avantage : Ne charge pas globalement le fichier XML en mémoire avant de commencer le traitement. Inconvénient : Pas de construction d’arbre Fonction PHP3 : int xml_set_element_handler(int parser, string startElement, string endElement); parser : pointeur sur un objet parseur startElement : fonction déclenchée lorsqu’une balise de début est rencontrée. endElement : fonction déclenchée lorsqu’une balise de fin est rencontrée.

6. Les API - SAX Exemple en PHP Fonction exécutée pour traiter le début d’un élément $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 exécutée pour traiter la fin d’un élément Objet Parser Associe les Evts Traite le fichier Gestion des Erreurs

6. Les API – Appariage en PHP 4 Chaine XSL <?php $xslData = '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="article"> <h2><xsl:value-of select="title"></h2> <h3><xsl:value-of select="author"></h3> </xsl:template> </xsl:stylesheet>'; $xmlData = ' <?xml version="1.0"> <article> <title>Learning German</title> <author>Sterling Hughes</author> </article>'; if (xslt_process($xslData, $xmlData, $result)){ //OK } else { // Erreur } ?> Chaine XML Appariage

7. Les API - DOM Le DOM est une interface de programmation. Il fournit un ensemble de fonctions : Permettant la manipulation de document XML. La création de document XML. Contrairement à SAX, le document XML est représenté en mémoire sous la forme d ’une structure hiérarchique. Les API disponibles, permettent de charger, parcourir, copier, créer, manipuler les nœuds de l ’arbre représentant ainsi les éléments du document XML. L’inconvénient majeur, est le chargement globale du document XML en mémoire. Peut entraîner des problèmes de temps de réponse lors du traitement des documents volumineux. Le DOM est implémenté dans les langages : JAVASCRIPT, VB SCRIPT donc très souvent utilisé dans les ASP.

7. Les API - DOM Les fonctions de base xmlDoc.documentElement : Elément Racine xmlDoc.load("document.xml") : Chargement en mémoire d’un document XML xmlDoc.async : Mode de chargement en mémoire Asynchrone / Synchrone noeud.firstChild : Premier fils d’un nœud noeud.lastChild : dernier fils d’un nœud noeud.parentNode : Nœud Parent d’un nœud noeud.childNodes[] : Tableau des nœuds fils noeud.selectNodes("nom") : Retourne le tableau des nœuds fils ayant pour nom nom. noeud.getAttributes("att") : la valeur de l ’attribut att du nœud. noeud.setAttributes("att",valeur): Positionne la valeur de l ’attribut att du nœud. noeud.hasChildNodes() createElement("nom") loadXML("chaine")

7. Les API - DOM Parcours d’un arbre en ASP <%@ Language=JavaScript %> <% xmlDoc = Server.CreateObject("MSXML2.DOMDocument"); xmlDoc.async = false; xmlDoc.load(Server.mapPath ("personnel.xml")); racineDoc = xmlDoc.documentElement; for (i = 0 ; i < racineDoc.childNodes.length ; i++) { employe = racineDoc.childNodes[i]; Response.write ("<BR><HR><BR>Nom : "); Response.write (employe.childNodes[0].text + " " + employe.childNodes[1].text + " " + employe.childNodes[2].text); } %> Objet DOM Chargement Synchrone Chargement du document Racine Nbre de Nœuds Fils Parcours des Fils Traitement des Fils

7. Les API – DOM – Appariage XSL en ASP <%@ LANGUAGE = JScript %> <% var sourceFile = Server.MapPath("simple.xml"); var styleFile = Server.MapPath("simple.xsl"); var source = Server.CreateObject("Microsoft.XMLDOM"); source.async = false; source.load(sourceFile); var style = Server.CreateObject("Microsoft.XMLDOM"); style.async = false; style.load(styleFile); Response.Write(source.transformNode(style)); %> Doc XML Doc XSL DOM XML DOM XSL Appariage

8. Les logiciels - Les parsers XML Coté Serveur Les parsers Validant Microstar Aelfred Les parsers non Validant MSXML (intégré à IIS) IBM XMLJ Côté 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 - Parsing coté client IE 5 / Navigator 6

8. Les logiciels - Parsing coté serveur

8. Les logiciels - Les langages de requêtes XML-QL Proposé par Bell Labs Il permet d'interroger des documents XML Il fournit également un interface de création de document XML Ce langage est inspiré du SQL XQL Proposé par Microsoft Il permet d'interroger des documents XML via XSL Base de données Orientés Objets Elles génèrent des documents XML ORACLE v 8i SQL Serveur 2000 fournit des fonctionnalités XML

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

9. Les Références - Les sites WEB La référence 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/

9. Les Références - Les ouvrages La référence 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