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

1 XML et XML schéma : représentation des données dans les services Webs Gérard Florin Laboratoire CEDRIC CNAM Paris.

Présentations similaires


Présentation au sujet: "1 XML et XML schéma : représentation des données dans les services Webs Gérard Florin Laboratoire CEDRIC CNAM Paris."— Transcription de la présentation:

1 1 XML et XML schéma : représentation des données dans les services Webs Gérard Florin Laboratoire CEDRIC CNAM Paris

2 2 Introduction aux services webs zLe besoin : des communications de programme à programme utilisant comme support la toile mondiale. zService toile (service web): une application informatique quelconque (plutôt de gestion ou de commerce électronique). ymodulaire, ybasée sur la toile, yutilisant des services et protocoles standards. zNotion de fournisseur de services sur la toile: ( ASP Application Service Providers) au moyen des services webs. zApplications visées: commerce électronique puis par extension tout service comportant un accès à des données (température, trafic, …) ou une algorithmique plus ou moins complexe (exemple calcul intensif).

3 3 Organisation actuelle des standards HTTP, SMTP, MOM(JMS) : Transmission effective SOAP, WSDL : Interactions de communication UDDI Services dannuaire Ws-Security Services de sécurité WS-Transaction Services de transaction Bpel4WS,.. Services de synchronisation

4 4 SOAP (Simple Object Access Protocol) zLe protocole de communication de base (définissant la principale interaction de communication). zUne approche de mode message mais aussi un protocole dappel de procédure distante (RPC). zUtilise XML pour représenter les données. zUtilise des protocoles applicatifs Internet pour acheminer ses messages: yHTTP (pour sa généralité, son mode synchrone). ySMTP, MOM (plutôt pour le mode asynchrone).

5 5 WSDL (Web Services Definition Language) zUn standard de description dinterfaces (analogue de IDL). zPermet de décharger les utilisateurs des détails techniques de réalisation dun appel. zBasé sur XML, XML Schéma. zRègles de sérialisation des données échangées.

6 6 UDDI Universal Description, Discovery, and Integration zLe standard dannuaire réparti pour la description des services Web. zTrès orienté affaires (ventes, prestations) zAccessible au moyen de Soap. zPermet d enregistrer des informations variées via la notion de tmodel (modèle technique).

7 7 Acteurs du domaine zConsortiums/organismes yW3C World Wide Web Consortium yOasis yWS-I Web Services - Interoperability yNations Unies yEbXML yRosetta net : Web services en électronique zEditeurs de logiciels yMicrosoft, IBM, BEA zLogiciel libre yApache Axis

8 8 Exemples de produits zMicrosoft.NET zIBM Web Services Architecture (Websphere) zSUN One zBEA Web Services Architecture (Weblogic) zIona, CapeClear, SilverStream, Systinet zLogiciel libre Apache Axis (WSIF Web Services Invocation Framework )

9 9 La représentation des données Origines : les formats de documents SGML, HTML

10 10 SGML (Standard Generalized Markup Language) zUn langage de balisage très général pour définir des documents électroniques, indépendants de la forme visualisée. zDéfinir le contenu d'un document (rapport technique, livre, courrier, …). zUn contenu est transformé en autant de formats imprimés que nécessaire. zDéfinir par ailleurs la forme imprimée. zLe but principal reste de transmettre, stocker des documents à imprimer avec économies de volume et souplesse de formatage. zSGML est complexe => son usage est restreint à des spécialistes de la gestion documentaire.

11 11 HTML (HyperText Markup Language) zDéveloppement de la documentation accessible en ligne => Avantage des liens hypertextuels. zPremière études sur le langage de balises hypertextes HTML 1989 conçu à partir de SGML comme une version très simplifiée. zDisponibilité et première normalisation en 1992 zDémonstration de la très grande capacité d'accès à l'information rendue possible par le WEB (HTML + HTTP + URL).

12 12 Quelques caractéristiques de HTML zHTML est un langage de balises comme SGML : yExemple zNormalisation dun ensemble figé de symboles encadrés par " ". zLes balises HTML définissent des directives de mise en page du texte encadré par un couple balise ouvrante, balise fermante: y xxxx un titre de niveau 2, y yyyy une liste ditems (sans numéros ditem), y zzzzzz un item de la liste, y tttttttttt un texte en italique. zPas de type de document (pas de structuration) prédéfinie permettant de définir abstraitement une structure de document

13 13 Exemple dune bibliographie en HTML: zUne structuration de document complètement orientée vers la présentation graphique.

14 14 Quelques caractéristiques de HTML zHTML est un langage de balises comme SGML : yExemple yBalises: normalisation dun ensemble figé de symboles encadrés par " ". zLes balises HTML définissent des directives de mise en page dun texte encadré par un couple balise ouvrante, balise fermante: y xxxx un titre de niveau 2, y yyyy une liste ditems (sans numéros ditem), y zzzzzz un item de la liste, y tttttttttt un texte en italique. zPas de type de document (pas de structuration) prédéfinie permettant de définir abstraitement une structure de document

15 15 Discussion des choix de HTML (1) zHTML: un langage trop graphique yA l'origine HTML définissait des balises indépendantes de la représentation graphique des informations (Ex: UL définit une liste). yLogiquement, la présentation graphique dune liste ne doit pas être toujours la même: elle dépend d'une adaptation du navigateur à un contexte. xEx: présenter des informations en Braille pour des non voyants. yAu fil du temps les fabricants ont introduits pour leurs besoins des éléments graphiques. (Ex: I pour italique, FONT, CENTER, BGCOLOR. De même UL a pris le sens d'une indentation, pas d'une liste. zLe balisage HTML est devenu spécifique des différents navigateurs pour les besoins daffichage => HTML est en fait un langage graphique pour Explorer ou Mozilla Firefox.

16 16 Discussion des choix de HTML (2) zHTML: un langage non extensible yLe langage HTML a été conçu pour être assez simple de sorte que le nombre et la signification des balises est limité. xEx: Il n'existe pas de balisage pour la représentation des données en chimie (molécules, formules, valeurs numériques) yLe langage HTML est figé. xToutes les balises utilisables sont définies au départ ce qui est intenable si l'on voulait prendre globalement en compte les besoins d'un grand nombre de métiers. zHTML est figé et assez simple : pas de possibilité pour un utilisateur de base d'introduire de nouvelles balises.

17 17 Discussion des choix de HTML (3) zHTML: un langage de description de documents non structurés yHTML permet de définir de façon beaucoup trop limitée la structure d'un document. yIl n'y a en fait pas de vérification dune structure pour le document que l'on peut définir. xEx: on peut créer un document commençant par une tête de chapitre H2 et poursuivant par une tête de chapitre H1. zHTML définit en fait un univers de documents plats. yUne recherche doit considérer un document HTML comme une chaîne de caractères. yPas de moyen de partager entre communicants une structure de document préétablie. zHTML ne type pas les documents.

18 18 Conclusion : avenir de HTML zHTML peut rester très longtemps utilisé comme langage graphique pour les navigateurs WEB. zHTML présente des limitations trop importantes pour rester à terme le support de la représentation des données échangées sur le WEB. yNon séparation du document et de sa présentation graphique. yNon extensibilité. yNon structuration, typage.

19 19 XML et le typage par les DTD

20 20 Introduction XML : Héritage SGML/HTML zSGML riche, lourd, mal adapté au Web. zHTML adapté à la présentation graphique, mais limité par un ensemble de balises figé, non extensible et sans typage. zGroupe de travail XML à partir de août 1996 qui est composé essentiellement de membres du groupe de travail SGML. yRecherche dun langage assez simple mais présentant une richesse proche de SGML. yXML : un sous-ensemble de SGML, qui élimine des points trop ciblés sur certains besoins. yUn document XML est conforme SGML.

21 21 Conséquence sur XML zExtensibilité: pouvoir définir de nouvelles balises. zStructuration : pouvoir modéliser des données d'une complexité quelconque. zValidation : pouvoir vérifier la conformité d'une donnée avec un type (un modèle de structure). zIndépendance du média: pouvoir formater un contenu selon des représentations diverses. zInteropérabilité : Pouvoir échanger et traiter une donnée en utilisant de nombreux types de logiciels.

22 22 Caractéristiques de XML (1) : un langage de niveau méta zXML n'est pas un langage de balises de plus (comme HTML). zXML permet de définir de nouveaux langages de balises (comme SGML). zNotion de langage de niveau méta zUn langage qui permet de définir des langages.

23 23 Caractéristiques de XML (2) : Définition dune syntaxe zEn XML on définit une structure aussi variée que possible de balises mais qui nest associée à aucun comportement (pas de sémantique). yXML sapparente à la BNF 'Backus Naur Form' zLe comportement doit venir d'ailleurs. yDans la publication de documents il s'agit de feuilles de styles ("style sheets" = formes déclaratives de présentation graphique) yDans d'autres domaines il pourra s'agir d'une application spécifique définie par un composant logiciel jouant le rôle d'interpréteur XML.

24 24 Caractéristiques de XML (3) : un langage verbeux Choix délibéré: XML définit tout en format caractère (lisible par un être humain). zAvantage : pour le développement des codes, la mise au point, l'entretien et pour l'interopérabilité (choix des caractères UCS 'Universal Character Set' ISO Unicode). zInconvénient: Les données codées en XML sont toujours plus encombrantes que les mêmes données codées en binaires. yL'espace mémoire, l'espace disque et la bande passante sont devenus moins chers. yLes techniques de compression sont accessibles facilement et gratuitement. yElles sont applicables automatiquement dans les communications par modems ou en HTTP/1.1 et fonctionnent bien avec XML.

25 25 Structure dun document XML (1) : structure logique Un document XML est composé de trois parties: yUn prologue qui comporte: –Des déclarations diverses –Des instructions de traitement (optionnelles) –Une déclaration de type du document (optionnelle) yUn ensemble d'éléments organisés en arbre (les balises). yDes commentaires

26 26 Structure dun document XML (2) : structure physique zUn document est composé d'unités de source appelées entités (des blocs de caractères). zLes entités sont emboîtées les unes dans les autres en commençant par l'entité racine (document) => l'ensemble forme un arbre. zUne entité peut référencer une autre entité pour forcer l'inclusion à la place dans le document. zUne entité peut être nommée (avoir un alias). zUne entité peut être interne (son nom est alors un raccourci pour sa valeur). zUne entité peut être externe et représenter un fichier local ou distant contenant du texte XML.

27 27 Corps dun document XML zXML définit un cadre pour baliser nimporte quel document structuré en arbre (balises ou tags) zNotion délément XML (associé à une balise): définit une donnée sous la forme d'une chaîne de caractères comme ayant un sens (message, de, pour, objet, texte) zNotion dattribut XML (dun élément): pour associer une donnée à une balise (localisation, codage). zExemple simple: Jean Jacques Rappel On se voit demain à 10h

28 28 Exemple dune bibliographie en XML

29 29 Larbre associé à une bibliographie

30 30 Documents bien formés zSi un document XML respecte les règles de la grammaire XML on dit qu'il est bien formé. zLes règles d'un document bien formé -Toute balise ouverte doit être fermée, Ex: -L'ensemble des balises est correctement imbriqué. Ex : Entrelacement mal formé …. -Les valeurs d'attributs sont entre guillemets" zLes balises uniques correspondent à des documents vides et sont notées: Ex : zLes caractères < & sont notés < & zUn document commence par une déclaration XML x

31 31 Documents valides : DTD zDéclaration de type de document : DTD 'Document Type Definition une notion héritée de SGML permettant la définition formelle dun type de document. zUne information de niveau méta pour qu'un analyseur puisse vérifier la conformité dun document à une spécification de type (notion de document valide). yintitulé des balises et de leurs attributs, yimbrication des balises (structure darbre du document), ycaractère obligatoire/facultatif de certaines infos. zPour un document XML une DTD est optionnelle: yEn son absence: on constate une structure. yEn sa présence: on contraint la conformité d'un document XML.

32 32 DTD : Déclarations de types déléments de base (1) y Le nom de l'élément le nom de la balise dans un document. yContenu: un type de base (chaîne de caractères avec des variantes) ou un type construit (en fait une séquence d'éléments). x EMPTY : Chaîne vide Eléments vides: support d'attributs x#CDATA : Chaîne non analysée La chaîne est supposée contenir des données qui n'ont pas à être parsées. x#PCDATA : ('Parsed Character DATA') xChaîne de caractères devant être parsée. xANY : Une chaîne quelconque.

33 33 DTD : Déclarations de types déléments construits (2) zÉlément avec fils : Types d'éléments construits à partir d'autres types d'éléments (types article). z On peut préciser la structure (séquence) des fils au moyen de constructeurs. yNom_élément une seule occurrence yNom_élément* 0, 1 ou n occurrences yNom_élément? 0 ou 1 occurrence (valeur optionnelle) yNom1|Nom2alternative y, ( ) séquence et parenthèses zTypes éléments 'mixtes : des éléments et des chaînes y

34 34 DTD : Déclarations de types dattributs zLes listes d'attributs 'attlist' définissent pour un élément la liste des attributs de cet élément avec leurs propriétés. yNom de l'attribut, Type de l'attribut, Valeur par défaut. x zLe paramètre défaut x#REQUIRED:attribut obligatoire à fournir. x#IMPLIED : attribut optionnel. x#FIXED 'value': attribut de valeur invariable égale à 'value'. x'value': une valeur pour l'attribut quand elle n'est pas donnée.

35 35 DTD : Typage des dattributs (1) zTrois catégories de types: chaînes, listes de chaînes, valeurs énumérées. zCDATA : Les valeurs possibles sont des chaînes de caractères non analysées par le parseur. yEx: zID : Les valeurs sont des identifiants uniques. yEx: zIDREF, IDREFS : Les valeurs possibles sont des noms d'identifiants uniques (resp des listes).

36 36 DTD : Typage des dattributs (2) zENTITY, ENTITIES : la valeur est un nom d'entité déclaré et existant (resp une liste de noms). zNMTOKEN, NMTOKENS : la valeur est obligatoirement un mot clé valide de xml (resp une liste de mots clés). zNOTATION: La valeur est le nom d'une notation. zValeurs énumérées : Soit des notations de valeurs déjà définies soit des valeurs. Séparation par des barres (val1|val2|…)

37 37 DTD : Exemple dun rapport Les éléments

38 38 DTD : Exemple dun rapport Les attributs ]>

39 39 Conclusion XML zMultiples avantages yUn langage effectivement simple. yXML rend possible larrivée dune nouvelle génération doutils logiciels pour des plate-formes hétérogènes. xde manipulation, xde transmission, xde visualisation de données distribuées. zLes inconvénients yLa simplicité de base conduit à énormément de compléments de toutes natures => apparition de dialectes et doutils très nombreux qui ajoutent des détails.

40 40 Avenir de XML zXML devrait permettre pour des applications (qui ne posent pas de problèmes cruciaux de performances) de supporter dans un cadre unifié: zLa présentation des réseaux yFormat des données échangées par messages ou par invocations de méthodes. zLa définition des documents. yOutils de bureautique, de documentation.. zLa définition des données. ySGBD, logiciels de gestion, Échanges de Données Informatisé (EDI), …

41 41 Le typage XML avec XML schéma Introduction Les structures Les types de données Conclusion

42 42 Le typage avec les DTD zXML est un outil davenir pour léchange, le stockage et laffichage des données sur Internet. zUn problème majeur de XML 1.0 (dans sa définition de base) concerne son approche du typage => DTD Document Type Definition. zLobjectif nest pas atteint pour des applications informatiques: la définition des types par les DTD est trop orientée documents textuels. zConséquence : nombreuses propositions pour améliorer le typage en XML.

43 43 Objectifs généraux des schémas zDécision complexe au sein du consortium WEB (W3C) pour arbitrer entre les différentes propositions. zUnification autour dun projet de recommandation, adopté définitivement en mai zXML schéma est lanalogue: yDun langage de définition de données DDL (Data Definition Language) des bases de données et un document est lanalogue dun article d une base de données. yDun langage de syntaxe abstraite des réseaux comme ASN1 ( Abstract Syntax Notation) et un document est lanalogue du contenu en syntaxe de transfert (BER Basic Encoding Rules). yDun langage évolué dans sa partie définition de données comme C++ ou Java. Un schéma définit lanalogue d une classe et un document est une instance de cette classe. zUn document XML doit pouvoir être validé relativement à son schéma.

44 44 Objectifs précis - Structures– zDéfinir la structure et les contenus des documents. zDéfinir des relations dhéritage. - Typage des données – zFournir un ensemble de types primitifs. zDéfinir un système de typage suffisamment riche. zDistinguer les aspects reliés à la représentation lexicale des données de ceux gouvernant les données. zPermettre de créer des types de données usagers dérivés de types existants en contraignant certaines propriétés (domaine, précision, longueur, format).

45 45 Les structures

46 46 Principes généraux des schémas zUn schéma XML est un document XML. z

47 47 Exemple dadresse postale en XML: le document z z Mr Jean Dupont z rue Camille Desmoulins z Paris z Seine z 75600

48 48 DTD dune adresse postale ]>

49 49 Typage dune adresse postale au moyen dun schéma XML

50 50 Le langage XML schémas : Les composants primaires zUn schéma XML est construit par assemblage de différents composants (13 sortes de composants rassemblés en différentes catégories). zComposants de définition de types yDéfinition de types simples (Simple type). yDéfinition de types complexes (Complex type). zComposants de déclaration yDéclaration déléments. yDéclaration dattributs.

51 51 Déclaration des éléments zUn élément XML est déclaré par la balise element de XML schéma qui a de nombreux attributs. zLes deux principaux attributs sont: - name : Le nom de lélément (de la balise associée). - type : Le type qui peut être simple ou complexe. Exemple de base

52 52 Déclaration des attributs zUn attribut est une valeur nommée et typée associée à un élément. zLe type dun attribut défini en XML schéma est obligatoirement simple. …...

53 53 Autres attributs zL'élément attribute de XML Schema peut avoir deux attributs optionnels : use et value. zOn peut ainsi définir des contraintes de présence et de valeur. zSelon ces deux attributs, la valeur peut: être obligatoire ou non être définie ou non par défaut. zExemple:

54 54 Valeurs possibles pour use zUse = required : Lattribut doit apparaître et prendre la valeur fixée si elle est définie. zUse= prohibited : Lattribut ne doit pas apparaître. zUse = optional : Lattribut peut apparaître et prendre une valeur quelconque. zUse= default : Si lattribut à une valeur définie il la prend sinon il prend la valeur par défaut. zUse= fixed : La valeur de lattribut est obligatoirement la valeur définie. zExemple :

55 55 Types simples zSimpleType permet de définir des éléments ou des attributs non structurés : dérivés dune chaîne, dun entier etc yTypes simples prédéfinis au sens de la norme XML Schémas datatypes: string, integer, boolean... yTypes simples définis par dérivation d'un autre type simple, au moyen de lélément zExemple de type simple : dérivation par restriction.

56 56 Types complexes zDéclarés au moyen de l'élément

57 57 Types complexes: Sequence zUn type sequence est défini par une suite de sous- éléments qui doivent être présents dans l'ordre donné. zLe nombre d'occurences de chaque sous-élément est défini par les attributs minOccurs et maxOccurs.

58 58 Types complexes: Choice zUn seul des éléments listés doit être présent. zLe nombre d'occurences possible est déterminé par les attributs minOccurs et maxOccurs de lélément.

59 59 Types complexes: All zCest une composition de type ensembliste. Dans un document conforme, les éléments listés doivent être tous présents au plus une fois. Il peuvent apparaître dans n'importe quel ordre.

60 60 Les types de données XML schéma

61 61 Objectifs de la définition des types zFournir des types primitifs analogues à ceux qui existent en SQL ou en Java. zDéfinir un système de typage suffisamment riche pour importer/exporter des données dune base de données. zDistinguer les aspects reliés à la représentation lexicale des données de ceux gouvernant les ensembles de données sous-jacents. zPermettre de créer des types de données usagers dérivés de types existants en contraignant certaines propriétés (domaine, précision, longueur, format).

62 62 Système de typage des schémas Trois composantes: a) Lensemble des valeurs du type (value space) Ex: type float. b) Lensemble des représentations lexicales possibles des valeurs (lexical space ). Ex: "10" ou "1.0E1" c) Lensemble des facettes (lensemble des propriétés) qui définit lensemble des valeurs (notion de facette fondamentale et de facette de contrainte). Ex: Le type float est défini par la norme IEEE (cest un flottant simple précision sur 32-bit). On peut dériver des types par contraintes.

63 63 Définitions relatives aux types zTypes primitifs (Primitive) Non défini en référence à dautres types.. zTypes dérivés (Derived) Définis par dérivation à partir dautres types. zTypes prédéfinis (Built-in) Définis dans le cadre de la spécification XML Schéma datatypes (primitif ou dérivé). zTypes usagers (User-derived) Types construits par les utilisateurs. zTypes atomiques (Atomic) Types indivisibles du point de vue de la spécification XML schéma. zTypes listes (List) Types dont les valeurs sont des listes de valeurs de types atomiques. zTypes unions (Union) Types dont les ensembles de valeur sont la réunion densemble de valeurs dautres types.

64 64 Hiérarchie des types prédéfinis

65 65 Quelques types prédéfinis TypeForme lexicale yString Bonjour yboolean{true, false, 1, 0} yfloat2345E3 ydouble E3 ydecimal808.1 ydateTime T13:20:00-05:00. ybinary0100 yuriReferencehttp://www.cnam.fr yTOKENun token selon definition des DTD y ….

66 66 Dérivation de types simples 1- Dérivation par restriction zLa dérivation par restriction restreint lensemble des valeurs d'un type pré existant. zLa restriction est définie par des contraintes de facettes du type de base: valeur min, valeur max... zExemple :

67 67 Les contraintes de facettes zlenght : la longueur dune donnée. zminLenght: la longueur minimum. zmaxLenght: la longueur maximum. zpattern: défini par une expression régulière. zenumeration: un ensemble discret de valeurs. zwhitespace: contraintes de normalisation des chaînes relativement aux espaces (preserve, replace, collapse). zmaxInclusive: une valeur max comprise. zmaxExclusive: une valeur max exclue. zminInclusive: une valeur min comprise. zmaxInclusive: une valeur min exclue. ztotalDigits: le nombre total de chiffres. zfractionDigits: le nombre de chiffres dans la partie fractionnaire.

68 68 Exemple dune énumération

69 Dérivation par extension zDériver un nouveau type par extension consiste à ajouter à un type existant des sous-éléments ou des attributs. zOn obtient inévitablement un type complexe. zExemple 230

70 Dérivation par union zPour créer un nouveau type on effectue lunion ensembliste de toutes les valeurs possibles de différents types existants. zExemple:

71 Dérivation par liste zUne liste permet de définir un nouveau type de sorte quune valeur du nouveau type est une liste de valeurs du type pré existant (valeurs séparées par espace). zExemple

72 72 Conclusion typage avec XML schéma

73 73 Un standard très utile en réseaux/systèmes répartis nIndispensable comme outil dinteropérabilité en univers réparti. nEntre des applications WEB. nDans des approches objets répartis comme SOAP (Simple Object Protocol) n WSDL (Web Service Definition Language). nEntre des bases de données hétérogènes. nQuelques reproches nLes performances. nLes imperfections à découvrir dans les choix de conception du système de typage.

74 74 Domaines dutilisation zPublication dinformations sur le WEB. zCommerce électronique. zGestion de documents traditionnels. zAssistance à la formulation et à loptimisation des requêtes en bases de données. zTransfert de données entre applications en réseaux. zContrôle de supervision et acquisition de données. zÉchange dinformations de niveau méta.

75 75 Bibliographie Normes zXML Schema Part 0: Primer W3C zXML Schema Part 1: Structures W3C z XML Schema Part 2: Datatypes W3C zXML Schema Requirements schema-req ( Février 1999) zIntroduction aux schémas zLes schémas XML Gregory Chazalon, Joséphine Lemoine W3C XML Schema, Eric Van Der Vlist,


Télécharger ppt "1 XML et XML schéma : représentation des données dans les services Webs Gérard Florin Laboratoire CEDRIC CNAM Paris."

Présentations similaires


Annonces Google