620 likes | 740 Views
XML origine - concept - techniques. Tuyêt Trâm DANG NGOC. Laboratoire PRiSM Université de Versailles-Saint-Quentin. <dntt@prism.uvsq.fr>. Cours 1/2. XML : Origine, concept, technique (Plan 1/2). Origine et objectifs Le fond et la forme : SGML, HTML et XML La norme XML Le rôle du W3C
E N D
XMLorigine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin <dntt@prism.uvsq.fr> Cours 1/2
XML : Origine, concept, technique (Plan 1/2) • Origine et objectifs • Le fond et la forme : SGML, HTML et XML • La norme XML • Le rôle du W3C • Définition du standard XML • La technologie XML • Métadonnées : DTD et XML-Schéma • Espace de noms : XML namespace • Présentation : XSL • Interrogation : XPath, XQuery Tuyêt Trâm DANG NGOC - Université de Versailles
XML : Origine, concept, technique (Plan 2/2) • XML et les bases de données • Déploiement d'un site web avec XML • Les produits XML • Stockage : natif, middleware ou extension de SGBD • Services WEB et serveurs d'application • Outils de manipulation XML • Conclusion • Références Tuyêt Trâm DANG NGOC - Université de Versailles
Origine et objectif De HTML et SGML vers XML • HTML : la forme • SGML : le fond • XML : le fond pour la forme
nom: Mulder prenom: Fox profession: Agent du FBI Origine et objectifs • Un document peut se définir par le fond et par la forme. • Multiples approches dont les plus connues sont le HTML pour le format et le SGML pour la structuration. nom: Mulder prenom: Fox profession: Agent du FBI Fox Mulder, Agent du FBI Agent du FBI : Fox Mulder Tuyêt Trâm DANG NGOC - Université de Versailles
Présentation d'un document Fédération de données semi-structurées avec XML Tuyêt Trâm DANG NGOC Laboratoire PRiSM – Université de Versailles 45, avenue des Etats-Unis 78035 Versailles CEDEX email: dntt@prism.uvsq.fr Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML" 1 Introduction L'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés. 2 Problématique 2.1 Requête sur données semi-structurées Evaluer une requête sur des données semi-structurées [1] implique de naviguer à travers la structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours. 2.2 Médiation de données semi-structurées Les sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD relationnel sera interrogé suivant le langage SQL suivant : 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%' Note: [Abiteboul 1998] Semistructured Data Tutorial 1998
HTML (Hyper Text Markup Language) : présentation • Proposé par le W3C comme format de documents sur le Web. • Langage simple avec des balises standardisées permettant la mise en forme d’un texte. • Standard reconnu par tous les navigateurs. • Langage très populaire sur le Web XHTML 1.1 31 Mai 2001 HTML 2+ 1996 HTML 4.01 24 Dec. 1999 HTML 2.0 (RFC 1866) Nov. 1995 XHTML 1.0 26 Jan. 2000 HTML 1.0 Juin 1993 HTML 3.0 HTML 3.2 14 Jan. 1997 HTML 4.0 24 Avr. 1998 Tuyêt Trâm DANG NGOC - Université de Versailles
Quelques balises HTML standards Tuyêt Trâm DANG NGOC - Université de Versailles
Source HTML <html> <body bgcolor="#ffffff" fgcolor="#000000"" <font color="#0000FF"><h1>Fédération de données semi-structurées avec XML</h1></font> <p align=right> Tuyêt Trâm DANG NGOC<br>Laboratoire PRiSM – Université de Versailles<br> 45, avenue des Etats-Unis<br>78035 Versailles CEDEX<br> email: <a href="mailto: dntt@prism.uvsq.fr">dntt@prism.uvsq.fr</a></p> <p align=center> <i>Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML"</i></p> <font color="#0000FF"><h1>1 Introduction</h1></font> <p>L'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés.</p> <font color="#0000FF"><h1>2 Problématique</h1></font> <font color="#0000FF"><h2>2.1 Requête sur données semi-structurées</h2></font><p> Evaluer une requête sur des données semi-structurées <a href="note.txt">[1] </a> implique de naviguer à travers la structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours.</p> <font color="#0000FF"><h2>2.2 Médiation de données semi-structurées</h2></font> <p>Les sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD relationnel sera interrogé suivant le langage SQL suivant :</p> <pre> 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%' </pre> </body> </html> Tuyêt Trâm DANG NGOC - Université de Versailles
Limitation de HTML (1) • HTML est conçu pour la présentation d'information sous forme de pages web • HTML contient un nombre limité de balises défini • La conception de HTML n'est pas appropriée pour les données • les balises ne renseignent pas sur les valeurs incluses entre les balises • Les balises ne sont pas extensibles Tuyêt Trâm DANG NGOC - Université de Versailles
Limitation de HTML (2) • Lorsque les balises ne suffisent pas, les constructeurs ont tendance à définir leurs propres balises pour répondre à leurs besoins (Þincompatibilité) ex. HTML 2+, HTML 3.0 • Mise à jour d’un ensemble de pages web très complexe : • hyperliens pointant dans tous les sens ; • restructuration ou remise en forme de l’ensemble des pages du site fastidieux. Tuyêt Trâm DANG NGOC - Université de Versailles
Limitation de HTML (3) • Une fois le document HTML réalisé, il est figé : • de la façon dont l’a définie l’auteur de la mise en page (Þ pas de possibilité pour les clients de le présenter différemment) • Traitement entre sites rendu compliqué (problème pour le commerce «électronique». Tuyêt Trâm DANG NGOC - Université de Versailles
HTML : extensions • Pour résoudre les problèmes de mises à jour, plusieurs «bidouilles» et/ou solutions propriétaires : • Microsoft ASP, Cold fusion... • Langages restent propriétaires et sont tous incompatibles entre eux. • La présentation est toujours aussi figée Tuyêt Trâm DANG NGOC - Université de Versailles
Feuilles de style CSS (Cascading Style Sheet) • Recommandation W3C en décembre 1996 • Mécanisme simple pour ajouter un style (fonte, couleur, etc.) aux documents Web • Intégré dans HTML 4.0 • Changement de présentation des documents limitées Tuyêt Trâm DANG NGOC - Université de Versailles
CSS @import "truc.css" BODY { color: #000 ; background: #FBFBFF ; margin-left: 9% ; margin-right: 6% ; font-family: "Helvetica", sans-serif ; line-height: 1.35 ; } <LINK REL="stylesheet" HREF="fichier.css"> [ ... ] TD, TH { font-family: "Helvetica", sans-serif line-height: 1.35 ; } H1, H2 { margin-top: 1.2em ; margin-left: -7% ; color: #900 ; clear: both ; } [ ... ] Tuyêt Trâm DANG NGOC - Université de Versailles
SGML (Standard Generalized Markup Language) • Créé en 1986 [ISO 8879] • Séparation du fond et de la forme • Permet des puissants traitements informatiques sur les documents • Proposition d’un cadre défini pour l’expression des modèles documentaires (validité, contrôle) • Fournir un format de stockage et d’échange normalisé • Très lourd et complexe pour la mise en œuvre de documents respectant ce format • Une grande rigueur est demandée Tuyêt Trâm DANG NGOC - Université de Versailles
TITRE ENTETE CORPS AUTEUR ORGANISATION CODEPOSTAL RUE ADRESSE PRENOM NOM NOM VILLE RESUME Note: [Abiteboul 1998] Semistructured Data Tutorial 1998 SOUSSECTION PARA PARA SECTION SOUSSECTION SECTION FNOTE TITRE TITRE TITRE TITRE TITRE CODE Composants imbriqués Fédération de données semi-structurées avec XML Tuyêt Trâm DANG NGOC Laboratoire PRiSM – Université de Versailles 45, avenue des Etats-Unis 78035 Versailles CEDEX email: dntt@prism.uvsq.fr Résumé: Nous décrivons dans ce papier une architecture de médiation "tout-XML" 1 Introduction L'évolution constante en matière de réseaux et de base de données ces trente dernières années a mené à une demande toujours croissante d'accès rapides à une large quantité d'informations variés. 2 Problématique 2.1 Requête sur données semi-structurées Evaluer une requête sur des données semi-structurées [1] implique de naviguer à travers la structure en examinant à la fois les valeurs des éléments et le nom auto-descriptif de l'élément tout au long du parcours. 2.2 Médiation de données semi-structurées Les sources sont hétérogènes et peuvent être interrogées de manière différentes. Par exemple un SGBD relationnel sera interrogé suivant le langage SQL suivant : 1 -- chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'
Vue Balisée <ARTICLE> <ENTETE> <TITRE>Fédération de données semi-structurées avec XML.</TITRE> <AUTEUR CONTACT ="1"> <PRENOM>Tuyêt</PRENOM> <PRENOM>Trâm</PRENOM> <NOM>DANG</NOM><NOM>NGOC</NOM> <ADRESSE> <ORGANISATION>Laboratoire PRiSM – Université de Versailles<ORGANISATION> <ADRESSE>45, avenue des Etats-Unis</ADRESSE> <VILLE>Versailles CEDEX</VILLE> <PAYS>France</PAYS> <CODEPOSTAL>78035</CODEPOSTAL> <EMAIL>dntt@prism.uvsq.fr</EMAIL> </ADRESSE> </AUTEUR> </ENTETE> <CORPS> <SECTION><TITRE>Introduction</TITRE> <PARA> L'évolution constante en matière de réseaux et de base de données ces... </PARA> [...] </CORPS> <FTNOTE ID=NT1><PARA>[Abiteboul 1998] Semistructured Data Tutorial 1998</PARA></FTNOTE> </ARTICLE> Tuyêt Trâm DANG NGOC - Université de Versailles
ARTICLE ENTETE CORPS FTNOTE ID TITRE AUTEUR ABSTRACT PARA PRENOM NOM ADRESSE PARA PARA SECTION SECTION SOUSSECTION TITRE PARA PARA SOUSSECTION FTNOTE REFLOC CODE POSTAL ADRESSE VILLE PAYS EMAIL TITRE PARA PARA TITLE PARA CODE ORGANISATION Vue Arborescente Tuyêt Trâm DANG NGOC - Université de Versailles
sorties bar L'Envol nom (#attribut : 42) id adresse rue Lacépède ville Paris boisson Maple Kiss boisson Gin Tonic bar Le Frog's nom (#attribut : 43) id telephone 01 43 40 70 71 adresse rue cour Saint Emilion ville chaîne Correspondance arborescence/balises <sorties> <bar> <nom id="42"> L’Envol </nom> <adresse> <rue> Lacépède </rue> <ville> Paris </ville> </adresse> <boisson> Maple Kiss </boisson> <boisson> Gin Tonic </boisson> </bar> <bar> <nom id="43"> Le Frog’s </nom> <telephone> 01 43 40 70 71</telephone> <adresse> <rue>cour Saint-Emilion</rue> <ville>Paris</ville> </adresse> </bar> </sorties> Tuyêt Trâm DANG NGOC - Université de Versailles
Séparation du fond et de la forme • Permettre la diffusion du même document sous plusieurs formats différents et sous plusieurs supports. ex: format Postscript pour un document sous forme papier, format HTML pour le même document "en-ligne" sur le Webex : projet de documentation FreeBSD : http://www.freebsd-fr.org/ : on écrit une seule fois en SGML, et on génère automatiquement les formats HTML, Postscript, ASCII. Mise à jour du site et des documents très simple (une recompilation) Tuyêt Trâm DANG NGOC - Université de Versailles
L’approche XML • Par rapport à SGML • Très semblable (balisés, DTD: schéma de définition du vocabulaire du document) • plus léger et moins strict (le DTD n’est pas obligatoire et n’a pas besoin de coller exactement au document) • Par rapport à HTML • plus strict (oubli des guillemets ou de fin de balises non accepté). • balisage non prédéfini : une syntaxe plus forte et plus souple SGML (Documentation structurée) XML HTML (Présentation web) Tuyêt Trâm DANG NGOC - Université de Versailles
La norme XML Normalisation Syntaxe
La norme XML (eXtensible Markup Language) • Recommandation W3C en février 1998 • but: ajouter une signification au contenu à travers sa structure • Définition de la structure à travers des balises (tags) XML 1.0 10 fev. 1998 XML 1.0 (2nd edition) 6 Oct. 2000 XML 1.1 15 Oct. 2002 Tuyêt Trâm DANG NGOC - Université de Versailles
Elément balise de début balise de fin attribut Contenu id = "C42F" nom d'attribut valeur d'attribut Balises • Les langages à balises sont idéaux pour organiser une information structurée. • Un objet balisé s’auto-décrit. • Les balises sont de la forme classique :<balise> valeur ou bloc </balise> <cite id="C42F" > Un trou noir est le resultat de la division de l'univers par zero</cite> Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (1/6) • Déclaration XML 01 <?xml version="1.0" encoding="ISO-8859-1"?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> 05 <livre code="C4242F"> 06 <titre>Programmation Linux 2.0</titre> 07 <prix devise="EUR">28.88</prix> 08 </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (2/6) • Déclaration du type de document XML 01 <?xml version="1.0" encoding="ISO-8859-1"?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> 05 <livre code="C4242F"> 06 <titre>Programmation Linux 2.0</titre> 07 <prix devise="EUR">28.88</prix> 08 </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (3/6) • Instruction de formatage (processing instruction) 01 <?xml version="1.0" encoding="ISO-8859-1"?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> 05 <livre code="C4242F"> 06 <titre>Programmation Linux 2.0</titre> 07 <prix devise="EUR">28.88</prix> 08 </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (4/6) • Balises d'éléments (element tags) 01 <?xml version="1.0" encoding="ISO-8859-1"?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> 05 <livre code="C4242F"> 06 <titre>Programmation Linux 2.0</titre> 07 <prix devise="EUR">28.88</prix> 08 </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (5/6) • Attributs de balises d'éléments (attributes) 01 <?xml version="1.0" encoding="ISO-8859-1"?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> 05 <livre code="C4242F"> 06 <titre>Programmation Linux 2.0</titre> 07 <prix devise="EUR">28.88</prix> 08 </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (6/6) • Contenu (text content) 01 <?xml version="1.0" encoding="ISO-8859-1"?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> 05 <livre code="C4242F"> 06 <titre>Programmation Linux 2.0</titre> 07 <prix devise="EUR">28.88</prix> 08 </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles
Différence avec HTML : plus strict (bien-formé) • Toute balise ouverte doit être fermée et bien imbriquée • <br/> • <b>bold <i> and italic </i> text</b> • <b>bold <i> and italic </b> text</i> • <ul> <li> list item </ul> • Les attributs doivent être spécifiés et mis entre guillemets • <img src=‘images/banner.gif’/> • <img src=images/banner.gif /> • <ul compact> <li> list item </li> </ul> • Différentiation majuscule / minuscule • <prenom>Remy</prenom> • <PRenOM>Remy</prenom> • Tous les caractères spéciaux y compris les accents doivent être codés • <prenom>Rémy</prenom> • <prenom>Rémy</prenom> • <prenom>Rémy</prenom> Tuyêt Trâm DANG NGOC - Université de Versailles
Points importants • Les document DOIVENT être bien-formés (well-formed) • un document ne contient qu'un seul élément racine • les balises ouvrantes doivent être fermées et correctement imbriquées • les attributs doivent être spécifiés et mis entre guillemets • le contenu ne doit contenir que des caractères XML valides • Les documents PEUVENT être valides • la structure et les contenus du document se conforment à des règles spécifiées par un "vocabulaire" (DTD ou XML-Schema) Tuyêt Trâm DANG NGOC - Université de Versailles
Technologies XML Règle de structure DTD XML-Schema Interrogation XPath XQuery Présentation XSL
Technologies XML • Décrire la structure d'un document XML : DTD ou XML-Schema • Présenter un document XML : XSL • Se repérer dans un document XML : XPath • Différencier les documents XML : XML-Namespace • Interroger un document XML : XQuery Tuyêt Trâm DANG NGOC - Université de Versailles
Schéma : notion <bar> <nom id="42"> L’Envol </nom> <adresse> <rue> Lacépegrave;de </rue> <ville> Paris </ville> </adresse> <boisson> Maple Kiss </boisson> <boisson> Gin Tonic </boisson> </bar> <bar> <nom id="43"> Le Frog’s </nom> <telephone> 01 43 40 70 71</telephone> <adresse> <rue>cour Saint-Emilion</rue> <ville>Paris</ville> </adresse> </bar> bar chaîne chaîne nom (#attribut : nombre) id telephone type_telephone adresse noeud rue chaîne ville chaîne boisson chaîne * Tuyêt Trâm DANG NGOC - Université de Versailles
DTD (Document Type Definition) • Permet de définir le «vocabulaire» et la syntaxe qui seront utilisés dans le document XML • Permet de valider un document XML : pour la cohérence • Peut être mis dans un fichier et être appelé dans le document XML par :<!DOCTYPE livre SYSTEM «livre.dtd»> Tuyêt Trâm DANG NGOC - Université de Versailles
DTD : syntaxe (1/3) • !ELEMENT tag (contenu) • Décrit une balise qui fera partie du vocabulaire. • ex : <ELEMENT livre (auteur, edition)> • !ATTLIST tag [attribut type #valeur]* • Définit la liste d’attributs pour une balise • ex : <!ATTLIST auteur genre CDATA #REQUIRED ville CDATA #IMPLIED> <!ATTLIST editeur ville CDATA #FIXED «Paris»> Tuyêt Trâm DANG NGOC - Université de Versailles
DTD : syntaxe (2/3) • !ENTITY %nom «valeur»Une entité est l’équivalent XML d’une macro. Permet de définir un nom qui sera remplacé par le parseur dans le texte • ex : <!ENTITY % genres «homme» | «femme»> <!ATTLIST auteur genre (%genres ; ) #REQUIRED> Tuyêt Trâm DANG NGOC - Université de Versailles
DTD : syntaxe (3/3) • CDATADonnées brutes qui ne seront pas analysées • PCDATAElément de texte sans descendants ni attributs contenant des caractères à analyser. • #FIXED : assigne une valeur ne pouvant être changée dans le document XML #IMPLIED : valeur fixée dans le document XML • #REQUIRED : valeur obligatoire Tuyêt Trâm DANG NGOC - Université de Versailles
Exemple de DTD <!ELEMENTbibliotheque (livre)*> <!ELEMENTlivre (titre, auteur+, date, ISBN, editeur)> <!ATTLISTlivre code#REQUIRED> <!ELEMENTtitre (#PCDATA)> <!ELEMENTauteur (#PCDATA)> <!ELEMENTdate (#PCDATA)> <!ELEMENTISBN (#PCDATA)> <!ELEMENTediteur (#PCDATA)> Tuyêt Trâm DANG NGOC - Université de Versailles
XML-Schema • Syntaxe XML • Manipulation des schémas avec des outils d'édition XML classiques • Les DTD XML ne permettent pas de définir assez de contraintes • Typage étendu (string, Boolean, decimal, integer, date, etc.) • Définition de ses propres types (ComplexType) • Contraintes sur intervalles maxlength, precision, enumeration, maxInclusive (borne supérieure), minInclusive (borne inférieure), encoding (sur les binaires) • Orienté-objet • Dérivation de types par rapport à des types existants Tuyêt Trâm DANG NGOC - Université de Versailles
Disgression : Espaces de noms XML (XML Namespace) • Qu'est ce qu'un espace de noms ? • l'espace de nom d'un élément est le contexte dans lequel il est valide(ex. un bloc {...} en C) • Pourquoi un espace de noms ? • résolution des conflits : si des éléments sont définis dans un contexte global, il risque d'y avoir des problèmes lors de l'utilisation de plusieurs documents. (collision et conflits de noms) • modularité : si un certain vocabulaire existe il est utile de pouvoir le réutiliser pour des applications utilisant le même contexte • Les espaces de noms en XML • c'est une collection de noms identifiée par une référence URI • Les noms d'un espace de nom XML sont représenté comme des noms qualifiés par une partie préfixe et une partie locale. Le préfixe correspond à la référence URI et détermine l'espace de noms • <xsl:apply-templates select="."/> Tuyêt Trâm DANG NGOC - Université de Versailles
Exemple XML-Schema <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.livres.org" xmlns=“http://www.livres.org”> <xsd:element name="bibliotheque"> <xsd:complexType> <xsd:sequence> <xsd:element ref="livre" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="livre"> <xsd:complexType> <xsd:sequence> <xsd:element ref="titre" minOccurs="1" maxOccurs="1"/> <xsd:element ref="auteur" minOccurs="1" maxOccurs=“unbounded”/> <xsd:element ref="date" minOccurs="1" maxOccurs="1"/> <xsd:element ref="ISBN" minOccurs="1"maxOccurs="1"/> <xsd:element ref="editeur" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="titre" type="xsd:string"/> <xsd:element name="auteur" type="xsd:string"/> <xsd:element name="date" type="xsd:date"/> <xsd:element name="ISBN" type="xsd:integer"/> <xsd:element name="editeur" type="xsd:string"/> </xsd:schema> Tuyêt Trâm DANG NGOC - Université de Versailles
XPath • Utilisé dans les standards XML (XSL, XML-Schema, XQuer) • ex. "/livre/auteur/prenom" • Une manière pratique de repérer un élément dans un document XML • (Plus direct que de naviguer dans un arbre DOM ou attendre le bon évènement SAX) Tuyêt Trâm DANG NGOC - Université de Versailles
XPath : Syntaxe (1/4) • livre/titre • fils "titre" du fils "livre" du noeud courant • /livre/titre • fils "titre" du fils "livre" de la racine du document • @langage • attribut "langage" du noeud courant • chapitre/@langage • attribut "langage" du noeud "chapitre" du noeud courant Tuyêt Trâm DANG NGOC - Université de Versailles
XPath : Syntaxe (2/4) • chapitre[3]/para • tous les fils "para" du troisième chapitre • livre/*/titre • tous les fils de "titre" de tous les fils du fils "livre" du noeud courant • chapitre//para • tous les descendants "para" de n'importe quel fils du noeud chapitre • ../../titre • tous les fils "titre" du parent du parent du noeud courant • equiv.parent::node()/parent::node()/child::titre Tuyêt Trâm DANG NGOC - Université de Versailles
XPath : Syntaxe (3/4) • para[1] ou para[position()=1] • le premier noeud fils "para" du noeud courant • para[last()] • para[count(child::note)>0] • tous les paragraphes avec une ou plusieurs notes • para[id("abstract")] • sélectionner tous les noeuds fils de la forme : <para id="abstract"> • para[@type='secret'] or para[attribute::type='secret'] • selectionner tous les noeuds fils de la forme <para type="secret"> Tuyêt Trâm DANG NGOC - Université de Versailles
XPath : Syntaxe (4/4) • para[not(titre)] • sélectionner tous les paragraphe fils sans éléments titre • para[position() >= 2 and position() < last()] • sélectionner tous les paragraphes sauf le premier et le dernier • note[contains(., "toto")] • . veut dire "tester le contenu des fils aussi, récursivement dans ce contexte • note[starts-with(., "toto")] Tuyêt Trâm DANG NGOC - Université de Versailles
XSL (eXtended Style Langage) • Basé sur le principe de DSSL • Plus de fonctionnalités que CSS • Filtrage de données XML • Présentation des données dans n'importe quel ordre • Modification et ajout d'information • Peut inclure des scripts • Prise en compte de XML en plus du HTML XML + XSL => affichage sur le navigateur client Tuyêt Trâm DANG NGOC - Université de Versailles