XML origine - concept - techniques

Slides:



Advertisements
Présentations similaires
Transformation de documents XML
Advertisements

Xavier Blanc Web Services Xavier Blanc
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
JXDVDTEK – Une DVDthèque en Java et XML
Les espaces de nommage XML par Philippe Poulard 1
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
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 -
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
le langage les éléments
Domaines nominaux XSLT
version Beta Marie Calberg Ninni Louhelainen SLFN7
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
TP 3-4 BD21.
Manipulation d’XML avec XSL
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
Introduction aux services WEB
20 Données semi-structurées et XML
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
le profil UML en temps réel MARTE
Lycée Louis Vincent Séance 1
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Gestion des bases de données
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.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Projet de Master première année 2007 / 2008
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
Les feuilles de style CSS
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Langages de requêtes XML
Introduction.
PHP & My SQL.
Le langage XHTML 420-S4W-GG Programmation Web Client
Les outils de base : XPath, XSL, XLink, XForms
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
Présentation du produit
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Cours de programmation web
Programmation Web : Introduction à XML
Mastère Professionnel Systèmes de Communication et Réseaux
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
 Formulaires HTML : traiter les entrées utilisateur
Soutenance du mémoire de synthèse
Initiation au JavaScript
eXtensible Markup Language. Généralités sur le XML.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Introduction aux technologies des web services en Java EE
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.
Transcription de la présentation:

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ésumé des concepts du cours précédent Récapitulatif XML Résumé des concepts du cours précédent

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

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

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

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 XML Namespace Distinction de vocabulaires différents Tuyêt Trâm DANG NGOC - Université de Versailles

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

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

Langage de requête sur XML : XQuery F Collection d’arbres utilisés Equivalent du FROM de SQL for $var in expr let $var := expr where expr order-by $var return expr L Mémorisation d’arbres Affectation de variables locales W Condition (élagage) Equivalent du WHERE de SQL XQUERY Le langage XQuery se présente sous la forme que l'on appelle FLWOR, qui correspond aux premières lettres des instructions utilisées pour formuler une requête dans ce langage. [CLIC] for permet de spécifier quelles collections de parties de document on utilise let permet de mémoriser une sous-collection where permet d'exprimer des contraintes order-by permet de trier les résultats return permet de sélectionner les résultat et d'exprimer sous quelle forme les présenter [PAGE] Ordonnancement Equivalent de ORDER-BY de SQL O Sous-arbres sélectionnés Présentation des sous-arbres Equivalent du SELECT de SQL avec une reconstruction R Tuyêt Trâm DANG NGOC - Université de Versailles

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

Tuyêt Trâm DANG NGOC - Université de Versailles 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 »] restaurant adresse nom rue codepostal menu Collection "restaurants" Tuyêt Trâm DANG NGOC - Université de Versailles

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

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

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

Tuyêt Trâm DANG NGOC - Université de Versailles 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) This specification defines the XML Linking Language (XLink), which allows elements to be inserted into XML documents in order to create and describe links between resources. It uses XML syn tax to create structures that can describe the simple unidirectional hyperlinks of today's HTML, as well as more sophisticated links. XML Base Description This specification proposes syntax for providing the equivalent of HTML BASE functionality generically in XML documents by defining an XML attribute named xml:base. XML Pointer Language (XPointer) This work defines the XML Pointer Language (XPointer), the language to be used as a fragment identifier for any URI-reference that locates a resource of Internet media type text/xml or application/xml. XPointer has been split into a framework for specifying location schemes, and three schemes: element(), xmlns() and xpointer(). The framework and the first two schemes form the XPointer Recommendation, and provide a minimal inventory of mechanisms. The xpointer() scheme, which is based on the XML Path Language (XPath), is still under development. It supports addressing into the internal structures of XML documents. It allows for traversals of a document tree and choice of its internal parts based on various properties, such as element types, attribute values, character content, and relative position. Tuyêt Trâm DANG NGOC - Université de Versailles

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

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

Outils de programmation XML DOM SAX SOAP

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

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> personne nom prenom adresse rue ville #text: Cover #text: Paris #text: Stendhal #text: Harry Tuyêt Trâm DANG NGOC - Université de Versailles

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

Tuyêt Trâm DANG NGOC - Université de Versailles 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 startDocument début du document endDocument fin de document startElement début element endElement fin élément characters contenu d'élément Tuyêt Trâm DANG NGOC - Université de Versailles

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

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

Tuyêt Trâm DANG NGOC - Université de Versailles Modèle DOM Dans le modèle DOM, toute les classes dérivent du type Node. La classe Document représente le document XML La classe Element représente les éléments du document XML. Document ne peut posséder qu’un seul fils de type Element (XML n'a qu'une seule racine du document) Attribute représente les attributs d'un élément La classe Text représente le contenu textuel d'un Element ou d'un Attribute Tuyêt Trâm DANG NGOC - Université de Versailles

Tuyêt Trâm DANG NGOC - Université de Versailles Document nodeValue : [] Attribute name : isbn nodeValue : [] Text Value : "2-212-08932-5" Element nodename : livre nodevalue : [] Attribute name : date nodeValue : [] Text Value : "1995" Element nodename : titre 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> Attribute name : id nodeValue : [] Text Value : "1" Element nodename : auteur nodevalue : [] Element nodename : nom nodevalue : [] Text Value : "Card" Tuyêt Trâm DANG NGOC - Université de Versailles

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

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 WSDL UDDI SOAP publier publier Services registry service requete reponse chercher Application cliente Tuyêt Trâm DANG NGOC - Université de Versailles

SOAP (Simple Object Access Protocol) Défini par le W3C Envoi de message formaté en XML en utilisant HTTP pour 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

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

Tuyêt Trâm DANG NGOC - Université de Versailles Protocole SOAP Pare-feux (firewall) 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

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

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

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

Tuyêt Trâm DANG NGOC - Université de Versailles 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:all> <xsd:element name="auteur" type="string"/> </xsd:all> <?xml version="1.0"?> <wsdl:definitions name="bibliographie" targetNamespace="http://ns.livre.com" xmlns:es="http://livre.com/livre.wsdl" xmlns:esxsd="http://schemas.livre.com/livre.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <xsd:schema targetNamespace="http://ns.livre.com" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <!-- xsd definition: chercherAuteur [titre string, edition string] --> <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 definition: chercherAuteurReponse [... auteur string ...] --> <xsd:element name="chercherAuteurReponse"> <xsd:all> <xsd:element name="auteur" type="string"/> </xsd:all> <!-- xsd definition: chercherAuteurErreur [... msg_erreur string ...] --> <xsd:element name="chercherAuteurErreur"> <xsd:element name="Erreur" type="string"/> </xsd:schema> </wsdl:types> <!-- wsdl:message elements describe potential transactions --> <!-- request chercherAuteurRequest is of type chercherAuteur --> <wsdl:message name="chercherAuteurRequest"> <wsdl:part name="body" element="esxsd:chercherAuteur"/> </wsdl:message> <wsdl:message name="chercherAuteurResponse"> <wsdl:part name="body" element="esxsd:chercherAuteurResponse"/> <!-- wsdl:portType describes messages in an operation --> <wsdl:portType name="chercherAuteurPortType"> <!-- the value of wsdl:operation eludes me --> <wsdl:operation name="chercherAuteur"> <wsdl:input message="es:chercherAuteurRequest"/> <wsdl:output message="es:chercherAuteurResponse"/> <wsdl:Erreur message="es:chercherAuteurErreur"/> </wsdl:operation> </wsdl:portType> <!-- wsdl:binding states a serialization protocol for this service --> <wsdl:binding name="EndorsementSearchSoapBinding" type="es:chercherAuteurPortType"> <!-- leverage off soap:binding document style @@@(no wsdl:foo pointing at the soap binding) --> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <!-- semi-opaque container of network transport details classed by soap:binding above @@@ --> <!-- again bind to SOAP? @@@ --> <soap:operation soapAction="http://livre.com/EndorsementSearch"/> <!-- furthur specify that the messages in the wsdl:operation "chercherAuteur" use SOAP? @@@ --> <wsdl:input> <soap:body use="literal" namespace="http://schemas.snowboard-info.com/EndorsementSearch.xsd"/> </wsdl:input> <wsdl:output> </wsdl:output> <wsdl:Erreur> </wsdl:Erreur> </wsdl:binding> <!-- wsdl:service names a new service "EndorsementSearchService" --> <wsdl:service name="EndorsementSearchService"> <wsdl:documentation>snowboarding-info.com Endorsement Service</wsdl:documentation> <!-- connect it to the binding "EndorsementSearchSoapBinding" above --> <wsdl:port name="chercherAuteurPort" binding="es:EndorsementSearchSoapBinding"> <!-- give the binding an network address --> <soap:address location="http://livre.com/EndorsementSearch"/> </wsdl:port> </wsdl:service> </wsdl:definitions> Tuyêt Trâm DANG NGOC - Université de Versailles

Langages XML VML MathML SMIL XHTML

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

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' /> 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

MathML (Math Markup Language) <reln> <eq/> <ci>A</ci> <matrix> <matrixrow> <ci>x</ci> <ci>y</ci> </matrixrow> <ci>z</ci> <ci>w</ci> </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> x2 + 4x + 4 =0 Tuyêt Trâm DANG NGOC - Université de Versailles

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> synchronisation : en parallèle sons affichage textuel image Tuyêt Trâm DANG NGOC - Université de Versailles

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

Déploiement d'un site web avec XML

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

Scénario avec XML Navigateur Navigateur HTTP (GET, POST) XSL HTML "public" HTML "interne" XSL PDF public XSL PDF interne XSL 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

Tuyêt Trâm DANG NGOC - Université de Versailles 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 CGI (Common Gateway Interface) Passerelle entre client et serveur. Permet au serveur de lancer un processus externe afin de répondre à la requête du client. NB : A chaque requête, correspond un processus distinct, donc une instance distincte du programme CGI. Servlets: Modules écrits en Java S’exécutent dans une application serveur afin de répondre à la requête du client Non liés à des protocoles client-serveur Création d’extensions sophistiquées du serveur avec un système d’exploitation indépendant Cocoon - Parseur XML - Transformateur XSLT - Formateur XSL Logiques Acteurs I. Document (statique, requête SQL) II. Traitements (filtrage, ajout, ...) II. Présentation (HTML, PDF, WML) Rédacteur Programmeur Web designer. Tuyêt Trâm DANG NGOC - Université de Versailles

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

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é XSP (eXtended Server Page) Tuyêt Trâm DANG NGOC - Université de Versailles

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

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

Outils XML

Tuyêt Trâm DANG NGOC - Université de Versailles Outils d'édition XML XML Spy L'éditeur XML le plus complet. Gère les fichiers XML, les DTD, XSL, XMLSchéma (.xsd). Version d'évaluation de 30 jours. http://www.xmlspy.com/download.html Microsoft XML Notepad Editeur simple de documents XML-based data. Freeware. http://msdn.microsoft.com/xml/notepad/download.asp XML Pro Editeur XML assez complet. Shareware http://www.vervet.com/demo.html XMetal FrameMaker Tuyêt Trâm DANG NGOC - Université de Versailles

Conclusion Qu'est ce que XML ? Quand est-ce que ça sert ? Quand est-ce que ça ne sert pas ?

Tuyêt Trâm DANG NGOC - Université de Versailles Résumé : Qu'est que XML ? XML est une méthode pour mettre des données structurées dans un fichier texte XML N'EST PAS HTML XML est textuel, mais n'est pas fait pour être lu tel quel XML est une collection de technologies XML est verbeux, mais ce n'est pas le problème XML est nouveau, mais pas tant que ça XML est license-free, indépendant de toute plateforme et bien supporté Tuyêt Trâm DANG NGOC - Université de Versailles

Tuyêt Trâm DANG NGOC - Université de Versailles Quand utiliser XML ? Quand on veut échanger des informations à travers des applications très différentes Si on a un site web qui va évoluer très souvent dans son fond et sa forme Si on crée un nouvel outil et une nouvelle application Tuyêt Trâm DANG NGOC - Université de Versailles

Quand NE PAS utiliser XML ? Si l'on n'en n'a pas besoin... Si les logiciels qu'on utilise pour l'instant fonctionnent correctement et qu'on n'envisage pas d'évolution Si c'est juste pour frimer  Tuyêt Trâm DANG NGOC - Université de Versailles

Références XML

Tuyêt Trâm DANG NGOC - Université de Versailles XML La page web de référence du W3C (documentations, spécifications et références) http://www.w3.org/ Les implémentations d'Apache sur la technologie XML (open-source) http://xml.apache.org Les travaux d'Apache sur COCOON (open-source) : http://cocoon.apache.org/2.0/ Articles et travaux d'IBM sur XML (logiciels souvent en Open-Source) http://www-106.ibm.com/developerworks/xml/ Documentation XML en francais (article et actualité + traductions de certains documents de référence du W3C) http://xmlfr.org/ Tuyêt Trâm DANG NGOC - Université de Versailles

XML et les bases de données Document sur XML et les bases de données : http://www.rpbourret.com/xml/XMLAndDatabases.htm Document répertoriant tous les produits sur XML et les bases de données, et en particulier dans la section "middleware" tous les produits se "greffant" sur une BD classique et permettant de récupérer du XML. http://www.rpbourret.com/xml/XMLDatabaseProds.htm Tuyêt Trâm DANG NGOC - Université de Versailles

Tuyêt Trâm DANG NGOC - Université de Versailles XQuery W3C XQuery http://www.w3.org/TR/xquery.html W3C XML Query Use Cases http://www.w3.org/TR/xmlquery-use-cases.html W3C XML Query Requirements http://www.w3.org/TR/xmlquery-req.html W3C XML Query Data Model http://www.w3.org/TR/query-datamodel.html W3C XML Query Algebra http://www.w3.org/TR/query-algebra.html Tuyêt Trâm DANG NGOC - Université de Versailles