1 / 59

XML origine - concept - techniques

XML origine - concept - techniques. Tuyêt Trâm DANG NGOC. Laboratoire PRiSM Université de Versailles-Saint-Quentin. <dntt@prism.uvsq.fr>. Cours 2/2. Récapitulatif XML. Résumé des concepts du cours précédent. XML (1/3).

makan
Télécharger la présentation

XML origine - concept - techniques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XMLorigine - concept - techniques Tuyêt Trâm DANG NGOC Laboratoire PRiSM Université de Versailles-Saint-Quentin <dntt@prism.uvsq.fr> Cours 2/2

  2. Récapitulatif XML Résumé des concepts du cours précédent

  3. XML (1/3) • un standard défini par l'organisme de normalisation W3C(World Wide Web Consortium) • dérivé des standards HTML et SGML • séparation du fond et de la forme (du contenu et de la présentation) • semi-structuré • arborescent • structure plus ou moins définie Tuyêt Trâm DANG NGOC - Université de Versailles

  4. XML (2/3) • un langage balisé Déclaration format XML <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE biblio SYSTEM "bibliot_1.dtd"> <?xml-stylesheet type="text/xsl" href="style.xsl"?> <bibliotheque> <livre isbn="2-212-08932-5"> <titre>Programmation Linux 2.0</titre> <prix devise="EUR">28.88</prix> </livre> </bibliotheque> Déclaration schéma associé Déclaration feuille de style Elements Balise ouvrante Contenu Attribut Nom d'attribut Valeur d'attribut Balise fermante Tuyêt Trâm DANG NGOC - Université de Versailles

  5. XML (3/3) • Plus strict que HTML, moins que SGML • Un document XML DOIT être bien formé : • une seule racine • balises correctement imbriquées • attributs correctement spécifiés • caractères XML valides • un document XML PEUT être valide : • structure et les contenus du document conformes à des règles spécifiées par un "vocabulaire (DTD ou XML-Schéma) Tuyêt Trâm DANG NGOC - Université de Versailles

  6. Standards connexes à XML - résumé • Décrire la structure d'un document XML • DTD : anciennement • XML-Schema : intègre typage et contraintes • Présenter un document XML • XSL/XSLT Transformation d'un document XML en un autre document XML ou un document dans un autre format (HTML, PDF) • Se repérer dans un document XML • XPath Navigation dans un document XML à l'aide d'expressions et de prédicats simples • Différencier les documents XML • XMLNamespace Distinction de vocabulaires différents Tuyêt Trâm DANG NGOC - Université de Versailles

  7. Standards XML émergents Normalisé et produits existants, mais peu d'utilisation industrielle encore ou alors très spécialisée En cours de normalisation Etudes de quelques normes XQuery XLink RDF

  8. Langages d’interrogation • Besoins : • Opérateurs standards de requêtes sur bases de données • Navigation dans les données • Recherche par motifs • Interrogation du schéma et des données • Construction du résultat • Type de langages • Extension de langages classiques : SGMLQL, HyOQL, LOREL/OEM-QL • Conçus pour le semi-structuré : XML-QL, XQL, QUILT • Normalisation : XPath, XQuery Tuyêt Trâm DANG NGOC - Université de Versailles

  9. for $varinexpr let $var :=expr whereexpr order-by $var returnexpr • Collection d’arbres utilisés • Equivalent du FROM de SQL F L • Mémorisation d’arbres • Affectation de variables locales W • Condition (élagage) • Equivalent du WHERE de SQL O • Ordonnancement • Equivalent de ORDER-BY de SQL R • Sous-arbres sélectionnés • Présentation des sous-arbres • Equivalent du SELECT de SQL avec une reconstruction Langage de requête sur XML : XQuery Tuyêt Trâm DANG NGOC - Université de Versailles

  10. <hotel> <nom>Le Loir</nom> <adresse> <rue>Nid</rue> <ville>Paris</ville> </adresse> <telephone>0112345678</telephone> <commentaire>On y dort bien!</> </hotel> for $h in collection (« hotels »)/hotel where $h/adresse/ville = « Paris » return <hotelparisien> {$h/nom} </hotelparisien> order-by (nom descending) hotel Collection "hotels" <hotel> <nom>La Marmotte</nom> <adresse> <rue>Terrier</rue> <ville>Versailles</ville> </adresse> <telephone>0124680246</telephone> <telephone>01642086421</telephone> </hotel> nom adresse Requête rue ville Données telephone <hotelparisien> La Marmotte </hotelparisien> <hotelparisien> Le Loir </hotelparisien> <hotel> <nom>La Marmotte</nom> <adresse> <rue>Terrier</rue> <ville>Paris</ville> </adresse> <telephone>0187654321</telephone> </hotel> Résultat Schéma Exemple XQuery (1) • Lister la liste des hôtels de Paris, et les trier par nom descendant Tuyêt Trâm DANG NGOC - Université de Versailles

  11. restaurant nom Collection "restaurants" adresse rue codepostal menu Exemples XQuery (2) • Noms de tous les restaurants sous forme de fragments XML collection (« restaurants »)/restaurant/nom • Lister l’adresse des restaurants dans le 20eme arrondissement de Paris for $r in collection (« restaurant »)/restaurant where $r/adresse/codepostal = « 75020 » return $r/adresse  for $r in collection (« restaurants »)/restaurant[adresse/codepostal=«75020 »] return $r/adresse Tuyêt Trâm DANG NGOC - Université de Versailles

  12. hotel restaurant Collection "restaurants" Collection "hotels" nom nom adresse adresse rue rue codepostal ville telephone menu Exemples XQuery (3) • Lister les noms des hôtels, le nom et le menu des restaurants dans la même rue for $r incollection (« restaurants »)/restaurant for $h incollection (« hotels »)/hotel where $h/adresse/rue = $r/adresse/rue return <hotelresto> {$h/nom} {$r/nom} {$r/menu} </hotelresto> Tuyêt Trâm DANG NGOC - Université de Versailles

  13. XQuery - fonctionnalités • Expression de chemin XPath : /a//b[c = 5] • Expressions FLWR : FOR ... LET ... WHERE ... RETURN • Constructeurs d'éléments : <a> ... </a> • Variables et constantes: $x, 5 • Operateurs et appels de fonctions: x + y, -z, foo(x, y) • Expressions conditionnelles : IF ... THEN ... ELSE • Quantifieurs: EVERY var IN expr SATISFIES expr • Expressions d'ordonnancement : expr ORDER-BY (expr ASCENDING , ... ) • Quelques propositions pour INSERT, REPLACE, DELETE Tuyêt Trâm DANG NGOC - Université de Versailles

  14. XLink • Exprimer des liens entre fragments XML • Aller au delà du simple usage des identificateurs • Différents types de liens • Généricité Tuyêt Trâm DANG NGOC - Université de Versailles

  15. Xlink : exemple [ ... ] <livre id="z42"> <titre>The Design of the UNIX Operating System</titre> <chapitre>General overview of the system</chapitre> <chapitre>Introduction to the kernel</chapitre> <chapitre>The buffer cache</chapitre> [...] </livre> [...] http://.../fichier_livre.xml#ID(z42),CHILD(3,CHAPTER) Tuyêt Trâm DANG NGOC - Université de Versailles

  16. RDF • RDF (Ressource Description Framework) : cadre permettant de décrire et d’échanger les métadonnées. • Une ressource (Ressource) est tout ce qui peut avoir une URI. ex : http://www.w3.org/index.html • Un Type de propriété (Property Type) est une ressource qui a un nom et peut être utilisé comme propriété. ex : Auteur, Titre Tuyêt Trâm DANG NGOC - Université de Versailles

  17. RDF • Une propriété (Property) est une combinaison d’une ressource, d’un type de propriété et d’une valeur. ex : W3C Ressource Description Framework comme titre pour http://www.w3.org/RDF • <RDF: Description href=‘http://www.w3.org/RDF’> • <Titre>W3C Ressource Description Framework</Titre> • <Home-Page RDF: href=‘http://www.w3.org’> • </RDF:Description> Tuyêt Trâm DANG NGOC - Université de Versailles

  18. Outils de programmation XML DOM SAX SOAP

  19. Outils de programmation XML • Interfaces de programmation spécifiées par le W3C • Interfaces de programmation XML en Java, C++, Perl, ... • Implémentation diverses • Apache • IBM • ... Tuyêt Trâm DANG NGOC - Université de Versailles

  20. personne nom #text: Cover prenom #text: Harry adresse rue #text: Stendhal ville #text: Paris Document XML – Flux SAX – Arbre DOM startDocument () startElement (personne) startElement (nom) characters (Cover) endElement (nom) startElement (prenom) characters (Harry) endElement (prenom) startElement (adresse) startElement (rue) characters (Stendhal) endElement (rue) startElement (ville) characters (Paris) endElement (ville) endElement (adresse) endElement (personne) endDocument () <personne> <nom> Cover </nom> <prenom> Harry </prenom> <adresse> <rue> Stendhal </rue> <ville> Paris </ville> </adresse> </personne> Tuyêt Trâm DANG NGOC - Université de Versailles

  21. SAX (Sample API for XML) • Modèle simplifié d'événement. • Types d'événement : • début et fin de document ; • début et fin d'éléments ; • attributs, chaîne de caractères. • Utilisé dans les implémentations des parseurs XML du domaine public. Tuyêt Trâm DANG NGOC - Université de Versailles

  22. SAX • Fonctionne sur le principe des callbacks (rétro-appels) • Au fur et à mesure de la lecture document XML, le parseur appelle des fonctions correspondants aux évènements rencontrés avec les paramètres appropriés • Ces fonctions sont définies par une interface standards et doivent être implémentées de telle sorte à répondre aux besoins de l'application Tuyêt Trâm DANG NGOC - Université de Versailles

  23. Application Handler startDocument () startElement ("livre", [isbn="2-212-08932-5", date="1995">]) startElement ("titre", []) characters ("Linux Kernel 2.0", 0, 16) endElement ("titre") startElement ("auteur", [id="1"]) startElement ("nom", []) characters ("Card", 0, 4) endElement ("nom") endElement ("auteur") Debut - livre [2-212-089-5, 1995]: ( endElement ("livre") titre [] : ( Linux Kernel 2.0 ) auteur [1] : ( endDocument () ) ) ) nom [] : ( - Fin Card <livre isbn="2-212-08932-5" date="1995"> <titre> Linux Kernel 2.0 </titre> <auteur id="1"> <nom> Card </nom> </auteur> </livre> startDocument () { Afficher "Debut -"} startElement (nom_balise, tableau_attributs){ Afficher nom_balise Afficher attributs entre crochets Afficher ':' Ouvrir parenthèse} XML characters (contenu, debut, longueur){ Afficher contenu en bleu} Parseur SAX endElement (nom_balise){ Fermer parenthèse} endDocument () { Afficher "- Fin"} Résultat Tuyêt Trâm DANG NGOC - Université de Versailles

  24. DOM (Document Object Model) • API d'accès aux documents XML • Interfaces d'accès en IDL • Modèle de traitement d'arbres pour l'accès et la mise à jour • API de manipulation d'arbres, d'objets typés avec des attributs • parcours • ajout • suppression Tuyêt Trâm DANG NGOC - Université de Versailles

  25. Modèle DOM • Dans le modèle DOM, toute les classes dérivent du typeNode. • La classe Document représente le document XML • La classeElementreprésente les éléments du document XML. • Documentne peut posséder qu’un seul fils de typeElement(XML n'a qu'une seule racine dudocument) • Attribute représente les attributs d'un élément • La classeTextreprésente le contenu textuel d'un Elementou d'un Attribute Tuyêt Trâm DANG NGOC - Université de Versailles

  26. Document nodeValue : [] Element Text nodename : livre nodevalue : [] Value : "1995" Attribute Attribute Attribute Element name : isbn nodeValue : [] name : date nodeValue : [] name : id nodeValue : [] nodename : titre nodevalue : [] Text Text Element Value : "1" Value : "2-212-08932-5" nodename : auteur nodevalue : [] Element nodename : nom nodevalue : [] Text Value : "Linux Kernel 2.0" <livre isbn="2-212-08932-5" date="1995"> <titre> Linux Kernel 2.0 </titre> <auteur id="1"> <nom> Card </nom> </auteur> </livre> Text Value : "Card" Tuyêt Trâm DANG NGOC - Université de Versailles

  27. publier publier publier publier requete reponse chercher Invocation de services • Invocations d'objets • RPC (1980) • CORBA • Java RMI • Microsoft DCOM • Format spécifique • Protocole de transport spécifique service service service Services registry service Application cliente Tuyêt Trâm DANG NGOC - Université de Versailles

  28. WSDL WSDL WSDL WSDL UDDI SOAP Invocation de services • Format XML ? • Système de typage (XML-Schema) • Format de codage universel • Sécurisation • Authentification, Gestion de clef • Chiffrement, Signature • Contrôle de transaction • Protocole • HTTP : protocole web • SMTP : protocole de mail service service publier service publier publier publier Services registry service requete reponse chercher Application cliente Tuyêt Trâm DANG NGOC - Université de Versailles

  29. SOAP (Simple Object Access Protocol) • Défini par le W3C • Envoi de message formaté en XMLen utilisant HTTPpour les véhiculer • Pour invoquer des services web • Pour récupérer des réponses en XML • Utilisation de XML comme format universel d'encodage • Possibilités de contrôles(transaction, sécurité) Tuyêt Trâm DANG NGOC - Université de Versailles

  30. WSDL, USSDI • WSDL (Web Service Description Language) : • description d'une API en XML • récupérable par l'intermédiaire d'un registry UDDI • UDDI (Universal Description, Discovery and Integration) • répertoire de services (spécifiés en documents XML) • défini en WSDL Tuyêt Trâm DANG NGOC - Université de Versailles

  31. Pare-feux (firewall) Protocole SOAP Serveur Web Port de connexion <requete/> Traducteur SOAP Serveur d'application HTTP Application cliente <réponse/> RPC local Parseur XML Internet Tuyêt Trâm DANG NGOC - Université de Versailles

  32. En-tête du protocole (HTTP, SMTP) En-tête SOAP Corps du message Composition d'un message SOAP Tuyêt Trâm DANG NGOC - Université de Versailles

  33. Requête SOAP <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:chercherAuteur xmlns:m="http://livre.com"> <titre>La Huitieme Couleur</titre> <edition>Atalante</edition> </m:chercherAuteur> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Tuyêt Trâm DANG NGOC - Université de Versailles

  34. Réponse SOAP <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:chercherAuteurReponse xmlns:m="http://ns.livre.com"> <auteur>Terry Pratchett</auteur> </m:chercherAuteurReponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Tuyêt Trâm DANG NGOC - Université de Versailles

  35. Definition WSDL ... <wsdl:types> <xsd:element name="chercherAuteur"> <xsd:complexType> <xsd:sequence> <xsd:element name="titre" type="string"/> <xsd:element name="edition" type="string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="chercherAuteurReponse"> <xsd:complexType> <xsd:all> <xsd:element name="auteur" type="string"/> </xsd:all> </xsd:complexType> </xsd:element> ... Tuyêt Trâm DANG NGOC - Université de Versailles

  36. Langages XML VML MathML SMIL XHTML

  37. Langages XML • XML est un méta-langage • Chacun peut créer son propre langage à l'aide de XML • Certains langages basés sur XML sont standardisés et spécialisés Tuyêt Trâm DANG NGOC - Université de Versailles

  38. VML (Vector Markup Language) • XML et les données spatiales <v:shape type="#downArrow" style='position: absolute; left: 77; top: 16; width: 64; height: 128' /> <v:shape type="#downArrow" style='position: absolute; left: 149; top: 16; width: 64; height: 128' adj=", 9450" /> <v:shape style='top: 0; left: 0; width: 250; height: 250' stroke="true" strokecolor="red" strokeweight="2" fill="true" fillcolor="green" coordorigin="0 0" coordsize="175 175"> <v:path v="m 8,65 l 72,65,92,11,112,65,174,65,122,100,142,155,92,121,42,155,60,100 x e"/> </v:shape> Tuyêt Trâm DANG NGOC - Université de Versailles

  39. MathML (Math Markup Language) <reln> <eq/> <ci>A</ci> <matrix> <matrixrow> <ci>x</ci> <ci>y</ci> </matrixrow> <matrixrow> <ci>z</ci> <ci>w</ci> </matrixrow> </matrix> </reln> • Recommandation W3C depuis avril 1998 • Approche mixte présentation / sémantique • exploitable par des logiciels mathématiques très utilisés. ex. Mathematica, Maple <apply><plus/> <apply><power/> <ci>x</ci> <cn>2</cn> </apply> <apply> <times/> <cn>4</cn> <ci>x</ci> </apply> <cn>4</cn> </apply> x2 + 4x + 4 =0 Tuyêt Trâm DANG NGOC - Université de Versailles

  40. synchronisation : en parallèle sons affichage textuel image SMIL (Synchronized Multimedia Integration Language) Format basé sur XML pour la présentation multimédia (audio, vidéo, image, texte, etc.). <smil xmlns="http://www.w3.org/2001/SMIL20/Language"><head><meta name="base" content="rtsp://helixserver.example.com/"/>...layout information...</head><body><par><audio src="titre1.rm"/><textstream src="lyrics/paroles1.rt" .../><img src="http://www.musique.com/images/album3.gif"/></par></body> </smil> Tuyêt Trâm DANG NGOC - Université de Versailles

  41. <!DOCTYPE html PUBLIC "-//W3C//DTD html 4.0 transitional//fr"> <html> <head> <title>Mon CV</title> </head> <body> <p>Voici ma photo <br/> <img src="photo.jpg"></img> </p> <p>C'est tout</p> </body> </html> <html> <head> <title>Mon CV</title> </head> <body> <p>Voici ma photo<br> <img src="photo.jpg"> <p>C'est tout Mon CV Voici ma photo C'est tout HTML XHTML XHTML (eXtendel Hyper-Text Markup Language) • Langage HTML rendu conforme à XML • Un XML-Schéma a été associé à XHTML Rendu Tuyêt Trâm DANG NGOC - Université de Versailles

  42. Déploiement d'un site web avec XML

  43. Navigateur Navigateur HTML "interne" HTML "public" PDF public HTTP (GET, POST) PDF interne Script2 Script3 Script4 SQL (ODBC, PLSQL...) TUPLES Scénario courant Serveur Web interne Serveur Web public Script1 (CGI-BIN, MS ASP, Servlet,...) Base de données existante relationnelle (postgres, oracle, sybase, ...) Tuyêt Trâm DANG NGOC - Université de Versailles

  44. Navigateur Navigateur HTML "interne" HTML "public" PDF public HTTP (GET, POST) PDF interne XSL XSL XSL XSL Scénario avec XML Serveur Web interne Serveur Web public Processeur XML XML Programme d'interrogation et récupération XML TUPLES SQL Base de données existante relationnelle (postgres, oracle, sybase, ...) Tuyêt Trâm DANG NGOC - Université de Versailles

  45. Pages web dynamiques • JSP, ASP et PHP : des portions de code de programmation sont incluses dans le document HTML • Servlets ou CGI : le document HTML est construit et renvoyé dans un flux HTTP • Cocoon : le processus de production d'un document Web peut se décomposer en 3 logiques particulières Tuyêt Trâm DANG NGOC - Université de Versailles

  46. Cocoon • Permet de séparer le contenu et la présentation de sites Web • Accepte de nombreuses sources de données. fichiers, SGBD, LDAP, et des bases de données XML natives. • Nombreux formats de sortie : HTML, WML, PDF, RTF, etc. • Doit être installé au sein d'un moteur de Servlets pour fonctionner (ex : Jakarta Tomcat). Tuyêt Trâm DANG NGOC - Université de Versailles

  47. Cocoon (caractéristiques) • Aucune ligne de code Java n'est nécessaire • Souplesse et réutilisabilité grâce à la séparation totale entre contenu du document et sa présentation • Implémentation de XSL pour le format PDF • Gestion des documents dynamiques et les outils disponibles • Solutions simples aux incompatibilités entre browsers • Authentification • Administration du portail par une interface web • Open-source, maintenu et de plus en plus utilisé Tuyêt Trâm DANG NGOC - Université de Versailles

  48. <XML/> <XML/> <HTML/> <HTML/> <XML/> <HTML/> <XSLT> <XSLT> <XSL> Environnement classique/cocoon : statique <HTML> Transform. XSL <HTML> I Documents III Présentation II Traitement Tuyêt Trâm DANG NGOC - Université de Versailles

  49. <XML/> <XML/> <HTML/> <HTML/> <XML/> <HTML/> <XSLT> <XSLT> <XSL> Environnement classique/cocoon : dynamique Processeur <HTML> Perl Shell Tcl Processeur XSP Transform. XSL <HTML> Java XSP tags I Documents III Présentation II Traitement Tuyêt Trâm DANG NGOC - Université de Versailles

  50. Outils XML

More Related