La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

XML origine - concept - techniques

Présentations similaires


Présentation au sujet: "XML origine - concept - techniques"— Transcription de la présentation:

1 XML origine - concept - techniques
Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin Cours 1/2

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

3 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

4 Origine et objectif De HTML et SGML vers XML HTML : la forme
SGML : le fond XML : le fond pour la forme

5 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 nom prenom profession Mulder Fox Agent du FBI Fox Mulder, Agent du FBI nom: Mulder prenom: Fox profession: Agent du FBI Agent du FBI : Fox Mulder Tuyêt Trâm DANG NGOC - Université de Versailles

6 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 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 : chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%' Présentation d'un document Note: [Abiteboul 1998] Semistructured Data Tutorial 1998

7 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 HTML 1.0 Juin 1993 HTML 3.0 XHTML 1.0 26 Jan. 2000 HTML 3.2 14 Jan. 1997 HTML 4.0 24 Avr. 1998 Tuyêt Trâm DANG NGOC - Université de Versailles

8 Quelques balises HTML standards
Signification <html> défini le contenu comme étant un document HTML <title> Pour donner un titre à la fenêtre <body> Corps de la page <bf> Mettre en gras une partie de texte <i> Mettre en italique <ul> définir une liste d'item <li> définir un item <ol> définir une liste numérotée <p> définir un paragraphe <hr> créer une ligne droite <font> changer la fonte (police, couleur) Balises Signification <pre> afficher un code litéral <h1>, <h2>, <h3> Definir un titre de niveau 1, 2 ou 3 <img src> Insérer une image <blink> Faire clignoter <a href> Créer un hyperlien <a name> définir une référence <table> définir un tableau <tr> définir une nouvelle ligne <td> définir une nouvelle colonne <br> Passage à la ligne Tuyêt Trâm DANG NGOC - Université de Versailles

9 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> <a href="mailto: <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> 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

10 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

11 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

12 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

13 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

14 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

15 Tuyêt Trâm DANG NGOC - Université de Versailles
CSS <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 ; @import "truc.css" BODY { color: #000 ; background: #FBFBFF ; margin-left: 9% ; margin-right: 6% ; font-family: "Helvetica", sans-serif ; line-height: 1.35 ; } Tuyêt Trâm DANG NGOC - Université de Versailles

16 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

17 Fédération de données semi-structurées avec XML
Note: [Abiteboul 1998] Semistructured Data Tutorial 1998 TITRE RESUME AUTEUR PRENOM VILLE PARA CODE NOM ADRESSE SOUSSECTION SECTION ENTETE CORPS RUE ORGANISATION CODEPOSTAL FNOTE 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 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 : chercher tous les livre dont le titre contient LINUX 2 SELECT * 3 FROM livre 4 WHERE titre LIKE '%LINUX%'

18 Tuyêt Trâm DANG NGOC - Université de Versailles
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> </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

19 Tuyêt Trâm DANG NGOC - Université de Versailles
Vue Arborescente ARTICLE ENTETE CORPS FTNOTE ID TITRE AUTEUR ABSTRACT PARA PRENOM NOM ADRESSE PARA PARA SECTION SECTION TITRE PARA PARA SOUSSECTION SOUSSECTION FTNOTE REFLOC CODE POSTAL ORGANISATION VILLE PAYS TITRE PARA PARA TITLE PARA CODE ADRESSE Tuyêt Trâm DANG NGOC - Université de Versailles

20 Correspondance arborescence/balises
bar nom adresse rue ville boisson (#attribut : 42) id Lacépède Paris Maple Kiss L'Envol telephone (#attribut : 43) cour Saint Emilion chaîne Le Frog's Gin Tonic sorties <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> <nom id="43"> Le Frog’s </nom> <telephone> </telephone> <rue>cour Saint-Emilion</rue> <ville>Paris</ville> </sorties> Tuyêt Trâm DANG NGOC - Université de Versailles

21 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 Web ex : projet de documentation FreeBSD : : 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

22 L’approche XML Par rapport à SGML Par rapport à HTML
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

23 Normalisation Syntaxe
La norme XML Normalisation Syntaxe

24 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

25 Tuyêt Trâm DANG NGOC - Université de Versailles
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> Elément <cite id="C42F" > Un trou noir est le resultat de la division de l'univers par zero</cite> id = "C42F" attribut Contenu balise de fin balise de début nom d'attribut valeur d'attribut Tuyêt Trâm DANG NGOC - Université de Versailles

26 Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (1/6) Déclaration XML 01 <?xml version="1.0" encoding="ISO "?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> <livre code="C4242F"> <titre>Programmation Linux 2.0</titre> <prix devise="EUR">28.88</prix> </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles

27 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 "?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> <livre code="C4242F"> <titre>Programmation Linux 2.0</titre> <prix devise="EUR">28.88</prix> </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles

28 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 "?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> <livre code="C4242F"> <titre>Programmation Linux 2.0</titre> <prix devise="EUR">28.88</prix> </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles

29 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 "?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> <livre code="C4242F"> <titre>Programmation Linux 2.0</titre> <prix devise="EUR">28.88</prix> </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles

30 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 "?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> <livre code="C4242F"> <titre>Programmation Linux 2.0</titre> <prix devise="EUR">28.88</prix> </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles

31 Tuyêt Trâm DANG NGOC - Université de Versailles
Syntaxe XML (6/6) Contenu (text content) 01 <?xml version="1.0" encoding="ISO "?> 02 <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> 03 <?xml-stylesheet type="text/xsl" href="style.xsl"?> 04 <bibliotheque> <livre code="C4242F"> <titre>Programmation Linux 2.0</titre> <prix devise="EUR">28.88</prix> </livre> 09 </bibliotheque> Tuyêt Trâm DANG NGOC - Université de Versailles

32 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

33 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

34 Technologies XML Règle de structure Interrogation Présentation DTD
XML-Schema Interrogation XPath XQuery Présentation XSL

35 Tuyêt Trâm DANG NGOC - Université de Versailles
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

36 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> <nom id="43"> Le Frog’s </nom> <telephone> </telephone> <rue>cour Saint-Emilion</rue> <ville>Paris</ville> bar chaîne nom chaîne id (#attribut : nombre) telephone type_telephone adresse noeud rue chaîne ville chaîne boisson chaîne * Tuyêt Trâm DANG NGOC - Université de Versailles

37 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

38 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

39 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

40 Tuyêt Trâm DANG NGOC - Université de Versailles
DTD : syntaxe (3/3) CDATA Données brutes qui ne seront pas analysées PCDATA Elé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

41 Tuyêt Trâm DANG NGOC - Université de Versailles
Exemple de DTD <!ELEMENT bibliotheque (livre)*> <!ELEMENT livre (titre, auteur+, date, ISBN, editeur)> <!ATTLIST livre code #REQUIRED> <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT date (#PCDATA)> <!ELEMENT ISBN (#PCDATA)> <!ELEMENT editeur (#PCDATA)> Tuyêt Trâm DANG NGOC - Université de Versailles

42 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

43 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 A single document can use multiple DTDs But! Two DTDs can use the same element name with different rules Solution: Namespaces Must prefix tag name with namespace name e.g. <xsl:apply-templates select="."/> <xsl:apply-templates select="."/> Tuyêt Trâm DANG NGOC - Université de Versailles

44 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: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: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

45 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) . self::node() .. parent::node() // descendant-or-self::node() @ attribute:: Tuyêt Trâm DANG NGOC - Université de Versailles

46 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 attribut "langage" du noeud "chapitre" du noeud courant Tuyêt Trâm DANG NGOC - Université de Versailles

47 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

48 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"> 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

49 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")] para[lang("en")] matches <para xml:lang="en-uk">…</para> Tuyêt Trâm DANG NGOC - Université de Versailles

50 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

51 Tuyêt Trâm DANG NGOC - Université de Versailles
XSL : Syntaxe (1/4) Associé à un document XML par un appel <?xml-stylesheet type="text/xsl" href="livre.xsl"> <xsl : template match=nom> Définit les règles pour la balise dont le nom est spécifié par match. ex : <xsl: template match="auteur"> Tuyêt Trâm DANG NGOC - Université de Versailles

52 Tuyêt Trâm DANG NGOC - Université de Versailles
XSL : Syntaxe (2/4) <xsl : value-of select=nom> Retourne la valeur de l’attribut de la balise spécifiée ou le texte associé au noeud. Nom d’attribut préfixé noeud atteint par /. ex: <xsl: value-of <xsl: template match="auteur"> <b><xsl: value-of /></b>, <xsl: value-of />, <i><xsl: value-of /></i> </xsl template> Soit la ligne dans le document XML : <auteur date_naissance="1783" ville "Grenoble">Stendhal</auteur> On affichera : Stendhal, Grenoble, 1783 Tuyêt Trâm DANG NGOC - Université de Versailles

53 Tuyêt Trâm DANG NGOC - Université de Versailles
XSL : Syntaxe (3/4) <xsl : for-each select=nom></xsl: for-each> Répète ce qui suit pour chaque élément correspondant au mot-clef demandé ex : <xsl : for-each select="livre/auteur"> <xsl: value-of /> <xsl: eval>AjouteVirgule ( )</xsl: eval> </xsl : for-each> Cela écrira à la suite tous les noms d’auteurs séparés par une virgule. Tuyêt Trâm DANG NGOC - Université de Versailles

54 Tuyêt Trâm DANG NGOC - Université de Versailles
XSL : Syntaxe (4/4) <xsl : apply-templates match=nom> Applique tous les templates possible aux éléments correspondant à la description. ex : <xsl: for-each select="livre"> <xsl: apply-templates select="auteur" /> <hr /> <xsl: apply-templates select="critique" /> </xsl: for-each> Affiche le détail sur les auteurs et les critiques des livres comris dans le document XML, chacun formatté avec leur propre template. <xsl : eval>Fonction ( )</xsl : eval> Evalue une fonction JavaScript ou VBScript. Le retour de la fonction remplace la commande. Tuyêt Trâm DANG NGOC - Université de Versailles

55 XSL : exemple pour se référer à l'espace de noms XSL
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table cellpadding="2" cellspacing="0" border="1" bgcolor="#FFFFD5"> <tr> <th>TITLE</th> <th>AUTHOR</th> <th>DATE</th> <th>ISBN</th> </tr> <xsl:for-each select="bibliotheque/livre"> <tr><td><xsl:value-of select="titre"/></td> <td><xsl:value-of select="auteur"/></td> <td><xsl:value-of select="date"/></td> <td><xsl:value-of select="ISBN"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> pour se référer à l'espace de noms XSL on trouve l'élément racine Ce qu'on fait si on trouve l'élément racine aller dans chaque élément "livre" de l'élément "bibliothèque" et afficher le titre, l'auteur, la date et l'ISBN 1997 M.J. Bach conception du systeme UNIX 2000 R.Card Programmation linux 2.0 ISBN DATE AUTHOR TITLE Tuyêt Trâm DANG NGOC - Université de Versailles

56 XSL-FO (extended Style Sheet Formatting Object)
permet d’exprimer de manière très précise le rendu d’un document. Il gère la pagination d’un document, les notes de bas de page, les marges,… Il est possible de préciser avec exactitude l’emplacement des différents objets sur la page, les polices des caractères, l’affichage de tableaux, etc. Un document XSL-FO est assez pénible à réaliser à la main, c’est pourquoi on utilise XSLT dans le but de générer du XSL-FO à partir d'une feuille de style XSLT. Tuyêt Trâm DANG NGOC - Université de Versailles

57 FOP (Formatting Objects Processor)
FOP utilise XSL-FO pour générer des documents sous des formats indépendant FOP est une application java qui lit un arbre de formatage d'objet (FO) et renvoie une page suivant le format de sortie souhaité. Format de sortie actuellement supporté par FOP : PDF, PCL, PS, SVG, XML, Print, AWT, MIF and TXT. La cible principale est le PDF. XML XSLT Processeur XSLT XSL-FO Processeur FOP Supports 95% or so of the XML Formatting Objects recommendation Can generate very complex PDF files from files of formatting objects: Page number references Running headers and footers PDF bookmarks Support for JPEGs, GIFs, and SVG (limited) Syntaxe pour créer un fichier pdf: fop -xml fichier.xml -xsl fichierfo.xsl -pdf fichier.pdf PDF Tuyêt Trâm DANG NGOC - Université de Versailles

58 XML et les bases de données
Pourquoi les SGBD-R ? Pourquoi XML ?

59 XML et bases de données relationnelles
Pourquoi les bases de données relationnelles ? La plupart des données sont stockées dans des SGBD-R Peu d'évolution prévue dans un avenir proche dimensionnable, sûr, performant, beaucoup d'outils existants Besoin de moyen efficace pour publier des données relationnelles comme des documents XML Pourquoi XML ? Modèle élégant complexe, arborescent, structuré balises spécifiques descriptives Standardisé ! Standard dominant d'échange sur le web. Tuyêt Trâm DANG NGOC - Université de Versailles

60 Inconvénients des modèles de données classiques
bar nom adresse rue ville telephone boisson L'Envol NULL LaCépède Paris Maple Kiss, Gin Tonic Le Frog's 25, Cour Saint Emilion, Paris L'Apparement Café , Café, Thé, Chocolat, Margarita, Gin Tonic INCONVENIENT DES MODELES DE DONNEES CLASSIQUES Valeurs nulles coûteux Attributs multi-valués difficultés de manipulation Difficultés d'extensions Ajout ou suppression d'un objet ayant un nouveau type d'attribut relationnel : rajouter encore des NULL et/ou créér un nouveau schéma et exporter/importer les anciennes données objets : types génériques ou modification du schéma Valeurs nulles Attributs multi-valués Difficultés d'extensions Exportation de données complexe Tuyêt Trâm DANG NGOC - Université de Versailles

61 Tuyêt Trâm DANG NGOC - Université de Versailles
Données XML Structure arborescente Structure irrégulière données multi-valuées données manquantes données de types différents Structure implicite définie dans les données elles-mêmes Représentation XML <bar> <nom> L’Envol </nom> <adresse> <rue> Lacépegrave;de </rue> <ville> Paris </ville> </adresse> <boisson> Maple Kiss </boisson> <boisson> Gin Tonic </boisson> </bar> <nom> Le Frog’s </nom> <telephone> </telephone> <adresse> 25, cour Saint-Emilion Paris,</adresse> DONNEES SEMI-STRUCTUREES Structure arborescente Structure irrégulière données multi-valuées données manquantes données de types différents Structure implicite définie dans les données elles-mêmes Représentation XML, OEM Les données semi-structurées de par leur nature ne peuvent se « classer » de façon simple ; leur structure évolutive rend les mises à jour difficiles. Le schéma est partiellement défini par la donnée elle-même et encapsulé dans cette dernière, mais, il arrive aussi qu'un schéma complet soit fourni, il est utile de le prendre en compte. De plus, la structure arborescente des données semi-structurées rend la manipulation de ses données complexes. Tuyêt Trâm DANG NGOC - Université de Versailles

62 Oracle XSU (XML-SQL Utility)
XSU est packagé avec Oracle8i (8.1.7 et plus) et Oracle9i XSU permet de transformer des données récupérées de tables ou vues relationnelles-objets en XML XSU peut extraire des données d'un document XML et en utilisant un mapping générique, insérer, supprimer, mettre à jour des données dans les colonnes associées d'une table Tuyêt Trâm DANG NGOC - Université de Versailles


Télécharger ppt "XML origine - concept - techniques"

Présentations similaires


Annonces Google