Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch



Documents pareils
XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Programmation des Applications Réparties. Parsers XML DOM et SAX

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

SII Stage d informatique pour l ingénieur

Le cadre des Web Services Partie 1 : Introduction

XML : documents et outils

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Systèmes d'informations historique et mutations

Master d Informatique Corrigé du partiel novembre 2010

Module BD et sites WEB

<?xml version="1.0" encoding="iso " standalone="yes"?>

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Petite définition : Présentation :

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

From supply chain to demand chain

Les nouvelles architectures des SI : Etat de l Art

Programmation Web Avancée Introduction aux services Web

Programmation Internet Cours 4

Software Engineering and Middleware A Roadmap

Devenez un véritable développeur web en 3 mois!

Les outils de création de sites web

Les Services Web. Jean-Pierre BORG EFORT

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Gestion Électronique de Documents et XML. Master 2 TSM

XML et Bases de données. Les bases de données XML natives.

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Introduction aux concepts d ez Publish

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

UE 8 Systèmes d information de gestion Le programme

L architecture des services Web

Outils logiciels pour l'ingénierie documentaire

Introduction à Microsoft InfoPath 2010

CORBA. (Common Request Broker Architecture)

Annuaires LDAP et méta-annuaires

Environnements de Développement

Introduction à. Oracle Application Express

les techniques d'extraction, les formulaires et intégration dans un site WEB

Gestion documentaire (Extraits du CCI version 1.2)

Livre Blanc WebSphere Transcoding Publisher

Adobe Technical Communication Suite 5

Urbanisme du Système d Information et EAI

1. Considérations sur le développement rapide d'application et les méthodes agiles

Vulgarisation Java EE Java EE, c est quoi?

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99

Production de documents avec XSLT. Production de documents p.1/??

Logiciel Enterprise Guide Version 1.3 Windows

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

PROSOP : un système de gestion de bases de données prosopographiques

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

7.0 Guide de la solution Portable sans fil

Programmation Web. Madalina Croitoru IUT Montpellier

Couches 4 à 7 : Traitement des données

Configuration Interface for MEssage ROuting

Présentation Alfresco

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Architectures web/bases de données

Architectures d'intégration de données

Formation HTML / CSS. ar dionoea

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

A. Architecture du serveur Tomcat 6

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

Les architectures 3-tiers Partie I : les applications WEB

THÈSE de DOCTORAT. Sémantique, interactions et langages de description des services web complexes

Groupe Eyrolles, 2004 ISBN :

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

NFP111 Systèmes et Applications Réparties

4. SERVICES WEB REST 46

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Server-side XML. PAS FINI... mais ok pour un début. Originaux. Auteurs et version. Prérequis: Java de base, servlets, GUI et XML

Introduction aux «Services Web»

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Configuration d'un annuaire LDAP

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Quels sont les enjeux?

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

BES WEBDEVELOPER ACTIVITÉ RÔLE

Web Application Models

Formation : WEbMaster

ECLIPSE ET PDT (Php development tools)

Sécurité des Web Services (SOAP vs REST)

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Urbanisation des Systèmes d'information

OPC Factory Server- Réglage des paramètres de communication

XML et travail collaboratif : vers un Web sémantique

CONSERVATOIRE NATIONAL DES ARTS ET METIERS. Centre Régional Associé de Nantes. Mémoire présenté en vue d obtenir l examen probatoire en informatique

Mise à jour : Octobre 2011

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

Transcription:

Faculté de Génie Chaire industrielle en infrastructures de communication La technologie XML Wajdi Elleuch Octobre 2004

SOMMAIRE Content : - XML : Définition - XML : Solution pour des applications réparties - XML : La valiadation de structure (DTD, XML-Schema) - XML : Les transformations (XSL, XSLT, XSL-FO) - XML : Les parseurs (Dom et Sax) - XML : Solution de stockage de données

Du HTML vers le XML XML (extensible Markup Langage) XML = langage HTML amélioré permettant de définir de nouvelles balises HTML : un langage limité! XML : Définir de nouveau domaines de données Séparer le contenu de la présentation (plus de liberté de présentation)

Historique d XMLd XML Descendant de SGML (ISO 8879, 1986) SGML = Standard Generalized Markup Language - Invention : 1970 s (avant le WWW) - Spécification : 150 pages - Intègre tous les langages de «markup» (très puissant) - Application SGML connue : HTML - Très complexe (pas d implémentation unifiée) XML = version «légère» de SGML - Début : 1996 - Normalisation par le W3C : 02/1998 - Version : 1.0 (jusqu à maintenant)

Les avantages de XML La lisibilité : aucune connaissance ne doit théoriquement être nécessaire pour comprendre un contenu d'un document XML Autodescriptif et extensible : Une structure arborescente permettant de modéliser la majorité des problèmes informatiques Universalité et portabilité : les différents jeux de caractères sont pris en compte Déployable : il peut être facilement distribué par n'importe quels protocoles capable de transporter du texte, comme HTTP Intégrabilit grabilité : un document XML est utilisable par toute application pourvue d'un parseur (c'est-à-dire un logiciel permettant d'analyser un code XML) Extensibilité : un document XML doit pouvoir être utilisable dans tous les domaines d'applications

L extensibilité de XML L'intérêt de disposer d'un format commun d'échange d'information dépend du contexte professionnel dans lequel les utilisateurs interviennent : VoiceXML : Description des services vocaux intéractifs. CCXML : Call Control extensible Markup Language - Programmation de SERVEUR téléphonique. HTML : Hyper Text Marckup Language Pour la description du contenu des pages web. CML : Chemical Markup Language - Permet de décrire des composés chimiques. SMIL : Synchronized Multimedia Integration Language - Permet de créer des présentations multimédia en synchronisant diverses sources : audio, vidéo, texte,... SOAP : Simple Object Access Protocol Description des Services Web

Structure d un d document XML La norme XML en tant que telle doit être vue comme un outil permettant de définir un langage (on dit alors qu'il s'agit d'un métalangage), Une balise est une chaîne de caractère du type: <balise> <annuaire> <personne class = "etudiant"> <nom>desjardins</nom> <prenom>jean-philippe</prenom> <telephone>(819) 234 2343</telephone> <email>webmaster@usherbrooke.ca</email> <!-- insertion de commentaires XML --> </personne> <personne>... </personne> </annuaire>

Structure d un d document XML Un document XML est structuré en 3 parties: - La première partie, appelée prologue : permet d'indiquer la version de la norme XML utilisée pour créer le document ainsi que le jeu de caractères utilisé dans le document : <?xml version="1.0" encoding="iso-8859-1"?> - Le second élément est une déclaration de type de document (déclaration de la DTD ou du Schéma, de la feuille de style)(optionnel) - Et enfin la dernière composante d'un fichier XML est l'arbre des éléments

La syntaxe des éléments en XML -Encapsulation dans les balises: <balise> contenu de la balise contenu de la balise </ -Utilisation des attributs : </balise> <balise attribut_01 = "text" attribut_02= "text" > -Pas de chevauchement de balises : <balise_01> <balise_02> </balise_01> </balise_02> - Balise Vide <balise> </balise balise> > = <balise/>

XML : Une solution d éd échange La nouvelle tendance : Exploitation des réseaux et développement d application réparties, (efficacité, réutilisation et accessibilité) XML : Solution pour assurer l échange de données entre systèmes distribués? 3 concurrents à XML : - COM/DCOM (Component Object Model / Distributed COM) - CORBA (Common Object Request Broker Architecture) - Java RMI (Remote Method Invocation)

XML : Une solution d éd échange (comparatif) Thème DCOM CORBA Java / RMI XML types de données types primitifs et objets types primitifs et objets types primitifs et objets Chaînes de caractère multilangages multisystèmes propriétaire oui non (Microsoft Win 32) Microsoft oui oui non (norme) non (tout Java) oui Sun indépendant oui non Interfaces Support des exceptions aux interfaces Transport MIDL Non RPC IDL Oui IIOP - GIOP interfaces Java Oui JRMP ou IIOP DTD / XMLschéma Non Indépendant

Validation des documents XML XML fournit un moyen de vérifier la syntaxe d'un document Utilisation des XML Schema ou des DTD (Document( Type Definition) pour décrire la structure des documents avec les imbrications des éléments possibles - Document bien formé : Un document suivant les règles de XML - Document valide : Un document XML possédant une DTD (ou XML Schema) et étant conforme à celle-ci

LES DTD (Document Type Definition) - Type de données : - Exemple : <! ELEMENT Nom_élement (#PCDATA) >

LES DTD (Document Type Definition) - Occurrence des éléments : ' & $%&! #!!"# % $ " - Exemple : <!ELEMENT personne (nom,prenom),telephone+,email? >

<carnet_adresse> <personne> <nom>desjardins</nom> <prenom>jean-philippe</prenom> <telephone>(819)55-23456</telephone> <telephone>(514)123-5336</telephone> <email>ss@mail.net</email> </personne> <personne> <nom>cartier</nom> <prenom>jacques</prenom> <telephone>(819)235-1234</telephone> </personne> </carnet_adresse> Carnet_adresse.XML <!ELEMENT carnet_adresse (personne)*> Carnet_adresse.DTD <!ELEMENT personne(nom,prenom),telephone+,email?> <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT telephone (#PCDATA) > <!ELEMENT email (#PCDATA) >

LES DTD (Document Type Definition) - Déclatation des attributs #IMPLIED #REQUIRED #FIXED signifie que l'attribut est optionnel, c'est-à-dire non obligatoire signifie que l'attribut est obligatoire signifie que l'attribut sera affecté d'une valeur par défaut s'il n'est pas défini. - Exemple : <! ATTLIST disque IDdisk #REQUIRED type (K7 MiniDisc Vinyl)"CD" > Chaque élément disque est décrit par deux attributs : - IDdisk : Un identifiant obligatoire - type : peut contenir la valeur «K7», «MiniDisc», «Vinyl» ou par défaut «CD»

LES XML-Schema Avantages par rapport au DTD Codé sous forme XML : Les XML Schema utilisent un système de balisage conforme à XML Meilleur typage des données : On peut définir de nouveaux types de données (String, Date, Interger, Positif-Integer, Real, Boolean ) Meilleure définition des occurrences : Utilisation de modèle de relation entre éléments et définition des occurrences de chaque éléments dans un intervalle pouvant varier de 0 à l infini Prise en charge de modèle réutilisable de données (notion d objet)

LES XML-Schema Modélisation graphique (Les relations père-fils) Relation de type "Sequence" : L'élément père peut inclure un ou plusieurs fils Relation de type "Choice" : L'élément père doit inclure seulement un fils Relation de type "All" : L'élément père doit inclure tous ses fils

LES XML-Schema Modélisation graphique (Occurrence des éléments) Élément Unique : minimum d'occurrence = 1 le nombre maximum et le nombre Élément Optionnel : le nombre minimum d'occurrence = 0 Élément Multiple : le nombre maximum d'occurrence > 1 Éléments Optionnel ou Multiple : le nombre minimum = 0 et le nombre maximum d'occurrence > 1

Carnet_adresse.xsd

Les espaces de nom (name( name-space) Problème : - Possibilité d un conflit : Si deux langages basés sur XML sont intégrés dans Solution : - Définir pour chaque langage XML un espace de nom différent. <table> <tr> <td>pommes</td> <td>melons</td> </tr> </table> <h:table xmlns:h="http://www.w3.org/tr/html4/"> <h:tr> <h:td>pommes</h:td> <h:td>melons</h:td> </h:tr> </h:table> <table> <name>table chinoise</name> <width>80</width> <length>120</length> </table> <f:table xmlns:f="http://www.w3schools.com/fourniture"> <f:name>table chinoise</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>

Introduction à XSL La mise en page des données est assurée par un langage de mise en page tiers. A l'heure actuelle il existe deux solutions pour mettre en forme un document XML : - CSS (Cascading StyleSheet), l ancienne solution des années fin 90. c est un standard qui a déjà fait ses preuves avec HTML mais qui présente beaucoup de limitations. - XSL (extensible Stylesheet Language), un langage de feuilles de style extensible développé spécialement pour XML. Il offre plus de souplesse d accès aux fichiers XML

Introduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (extensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML. XSL permet aussi de: Retraiter un document XML afin d'en modifier sa structure Générer d'autres types de documents (PostScript, XHTML, PDF, RTF, DOC,...) ou bien un autre fichier XML de structure différente.

Les normes de XSL XSL possède deux composantes : - Le langage de transformation des données (XSLT, extensible Stylesheet Language Transformation) permettant de transformer la structure des éléments XML

Les normes de XSL Le langage de formatage des données (XSL/FO), - Un langage permettant de définir la mise en page de ce qui a été créé par XSLT. - Une fois l'arbre source créé, XSL/FO permet de formater le résultat, c'est-à-dire d'interpréter l'arbre résultat, ou plus exactement les objets de flux le composant en leur appliquant des objets de mise en forme afin d'en faire une représentation visuelle (papier, écran (PDF, RTF, PS,HTML...)

Structure d'un document XSL <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/tr/wd-xsl" xmlns="http://www.w3.org/tr/rec-html40" result-ns=""> <xsl:template... > <!-- traitements à effectuer --> </xsl:template > </xsl:stylesheet> Carnet_adresse.XSL

Association d'une feuille XSL à un document XML <?xml version="1.0" encoding="iso-8859-1"?> carnet_adresse.xml <?xml xml-stylesheet href= " carnet_adresse.xsl" " type="text text/xsl"?> <carnet_adresse> <personne> <nom>desjardins</nom> <prenom>jean-philippe</prenom> <telephone>(819)55-23456</telephone> <telephone>(514)123-5336</telephone> <email>ss@mail.net</email> </personne> <personne> <nom>cartier</nom> <prenom>jacques</prenom> <telephone>(819)235-1234</telephone> </personne> </carnet_adresse>

Le XPath : & + ++ * ** (!"#,&-# +" ++ * ** ()&# &! ' # ) # ' * +,-+ & ) ( $%& & ' # '

Le fichier XSL <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/tr/wd-xsl" xmlns="http://www.w3.org/tr/rec-html40" result-ns=""> <xsl:template match="/"> <HTML> <HEAD> <TITLE>Titre de la page</title> </HEAD> <BODY BGCOLOR="#FFFFFF"> <xsl:apply-templates/> </BODY> </HTML> </xsl:template > <xsl:template match="personne" > <ul> <li> Voici le nom : <xsl:value-of select = "nom" /> Voici le prénom : <xsl:value-of select = "prenom" /> </li> </ul> </xsl:template > </xsl:stylesheet> Carnet_adresse.XSL

Les parseurs Définition : Un parseur est un outil logiciel permettant de parcourir un document et d'en extraire des informations. Pour la technologie XML, il existe deux types d approche : DOM (Document Object Model) : API utilisant une approche hiérarchique pour construire une structure contenant des objets représentant les éléments du document, et dont les méthodes permettent d'accéder aux propriétés.(getrootelement(), GetChildren(), GetElement() ) SAX (Simple API for XML : API basés sur un mode événementiel permettent de réagir à des événements comme le début d'un élément ou la fin d'un élément (startdocument(), startelement(), characters(), endelement() )

Les parseurs DOM SAX - Parcours libre de l'arbre - Possibilité de modifier la structure et le contenu de l'arbre - Peut gourmand en ressources mémoire - Plus rapide pour les documents volumineux - Permet de ne traiter que les données utiles - Gourmand en mémoire - Doit traiter tout le document avant d'exploiter les résultats - Traite les données séquentiellement - Un peu plus difficile à programmer, il est souvent nécessaire de sauvegarder des informations pour les traiter

XML pour le stockage? Stocker dans des fichiers XML tout simplement (problèmes : intégrité des données, gestion des accès concurrents, performances ) Utiliser des bases de données relationnelles (SGBD) (Problèmes : beaucoup de tables et de jointures, performances, complications,.) Prévoir un champ BLOB (Binary Large OBject) ou un CLOB (Character Large OBject) Utiliser des bases de données orientées objet (SGBDOO) (Des bases de données coûteuses, couplage faible entre objet et XML) Utiliser des bases de données XML Native (NXD) Quelques produits : Tamino (SoftwareAG), Ipedo XML Database (IPedo), TextML (IXiasoft)

Étude d un d cas pratique! Formulaires HTTP envoyés et reçus via le serveur! "! $ % &"! #"! ' "! ' "! "!&.XML.XML.XML.XSD.XSD.XSD $ Paramètres de présentation "!"!()* $ "! $ &"!.XSL.XSL.XSL $ #$) Navigateur client

Pour résumer r! Principe de l utilisation de XML : Un excellent format d échange et de codage de données (Création dune structure descriptive adaptée aux données à traiter) Validation d un document XML -DTD (ancienne technologie) -XML Schema (très populaire en ce moment, plus flexible, plus riche que la DTD) Transformation et présentation d un document XML par XSL - XSLT (Parcourir pour transformer) - XSL-FO (Parcourir pour présenter) Transformation et exploitation d un document XML par parseur - DOM : Utilisation d une approche Hiérarchique - SAX : Utilisation d une approche Événementielle Stockage de documents XML - Dans des fichiers (s il n y a pas d accès multiples en écriture) - Dans des bases de données XML natives (nouvelle solution en cours d amélioration)

Conclusion La spécification XML va-t-elle remplacer HTML? Qu'apporte donc de plus le choix d'un format XML, comparé à un simple fichier texte? - Lisibilité et interopérabilité - Caractère standard - Souplesse Quels sont les logiciels nécessaires n pour travailler avec XML? - Parseur et un environnement de programmation compatible - Editeur XML (XMLSPY, XML Viewer, Microsoft XML ) (Éditeur en mode «tableau» recommandé).