Cours 2007-2008 MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Architectures Orientées Services Module 1 Rappels sur XML,

Slides:



Advertisements
Présentations similaires
C#3 et le projet Linq Mitsuru FURUTA
Advertisements

XML eXtensible Markup Language
Transformation de documents XML
DTD Sylvain Salvati
Cours MIAGE Henry Boccon-Gibod1 XML, langage de structuration Modélisation structurelle en XML de Messages et de Documents.
Cours MIAGE Henry Boccon-Gibod 1 XML, Un méta-langage pour des documents structurés.
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
Cours MIAGE Henry Boccon-Gibod 1 Extensible Mark up Language Modélisation structurelle de Messages e t de Documents en XML XML Schema.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Urbanisation de Systèmes d'Information
Cours MIAGE Henry Boccon-Gibod 1 XML, Extensible Mark up Language Un esperanto des langages informatiques.
Les espaces de nommage XML par Philippe Poulard 1
XML schema Objectifs Valider un doc. XML pour des contraintes syntaxiques Documenter un type de documents XML caractérisé par des contraintes Encadrer.
UML - Présentation.
Cours 1.2 : Introduction au langage XML
Le typage orienté objet pour les données XML
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Introduction Concepts fondamentaux Éléments d’architecture
Introduction à la POO: Les classes vs les objets
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.
XML-Family Web Services Description Language W.S.D.L.
Introduction à la conception de Bases de Données Relationnelles
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
RDF(S)
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Introduction au XML Choopan Rattanapoka Université Louis-Pasteur, Starsbourg.
<XML/> Bruno GRILHERES (EADS CASSIDIAN)
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
1 Couplage dun langage de contrôle de formatage avec un système de formatage existant DEA ISC : 1 avril 2003 Fateh Boulmaiz
Portée, arrimages et intervenants Évolution des méthodes
Sensibilisation a la modelisation
Patrons de conceptions de créations
Initiation à XML Sebti Foufou.
8 - XML Cours XML.
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Les Schémas XML Le standard W3C.
Web sémantique Par Lydia Carine Mampais KI Bamba SISSOKO
X xx yyy Document XML Résolution d'entités Résolution espaces de nommages Reader Parsing Contrôle de validité structurelle Contrôle arbre bien formé Contrôle.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Seminaire XML B. Rothenburger A. Nouvel XML XSD XSL IRIT Toulouse Disponible Consultable dans l'équipe 21...
Conception et Manipulations des Documents
Web sémantique est pratique documentaire
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Cours MIAGE Henry Boccon-Gibod 1 Extensible Mark up Language Un méta-langage pour des documents structurés.
II. Conception et Manipulation des Documents 1. Introduction 2. DTD 3. Schéma 4. Outils.
2 Processus de conception de BD
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
XSD XML Schema Definition Année universitaire UP web.
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
eXtensible Markup Language. Généralités sur le XML.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.
Introduction à la Programmation Orientée Objet
XML : un métalangage pour la description de documents structurés XML a été défini par le consortium W3 en fonction de 2 objectifs: Compenser les limitations.
Introduction Module 1.
Jean Vieille Research community Consulting group
Extensions à la spécification XML Le "plus petit cercle" XML Yves Bekkers Mise à jour : 9 octobre 2003.
DTD - Y. Bekkers - IFSIC1 DTD Document Type Definition Yves Bekkers Mise à jour : 31 mai 2016.
Préparé par : Marouane FELJA
Transcription de la présentation:

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Architectures Orientées Services Module 1 Rappels sur XML,

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Démystification et grandeur d’un langage Une filiation historique : –GML (méthode de balisage de documents) SGML (standardisation de GML) –HTML (une DTD de SGML) »XML (refonte extensible de SGML) » XHTML ( redressement de HTML) » XSD modélisation de structures XML » RDF représentation de réseaux XML » RDFS/OWL modélisation de réseaux sémantiques RDF Une pérennité en question ? –Réfutation par l’absurdeRéfutation par l’absurde Deux modalités d’expression avec un même méta-langage : –Des contenus sérialisé structurés de messages et de documents Selon des modèles DTD, Schemas XML –Des descriptions de connaissances Organisées en ensembles non ordonnés d’assertions, (prédicats)

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod XML Schema

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod  Définir un nouveau mécanisme de support à la modélisation  Reprenant les acquis des DTD en termes de définition de modèles  Arbres d'objets typés et valués  Permettant d'exprimer des contraintes fortes  Typage de données plus puissant et évolutif  Utilisant XML pour définir les modèles eux-mêmes  Factorisation des outils et des méthodes  En plus  Permettre de définir des contraintes incomplètes  Complémentarité aux DTD : outil de validation de données  S'intégrer à l’ensemble des spécifications W3C  Prise en compte des espaces de noms  Se rendre indépendant du format XML sérialisé  validation appliquée à une structure logique basée sur les XML InfoSet Objectifs

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Approche par l’exemple 1 Un Document XML : Le Modèle XMLSchema référencé par ce document <xs:schema xmlns:xs=" elementFormDefault="qualified">

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Approche par l’exemple 1-bis

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Approche par l’exemple 2

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Approche par l’exemple 3 pomme de terre oignon sel peler les patates précuire les patates à la vapeur peler les oignons faire revenir les oignons

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Approche par l’exemple 4

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Approche par l’exemple 5

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod –Sequence : séquence ordonnée d’éléments (ET logique) –Choice : choix parmi un ensemble d'éléments (OU logique) –All : séquence non ordonnée –Utilisable uniquement au niveau le plus haut d’un modèle de contenu et sur des éléments avec maxOccurs à 1 ; pas sur d’autres groupes. –Contrôle des occurrences : minOccurs, maxOccurs Ordonnancement

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod –Utilisation dans les déclarations d’éléments ou d’attributs Objectifs : définir des types pour les utiliser dans des modèles de contenus ou des déclarations d’attributs Un type est identifié et référencé par son nom ou directement défini (type anonyme) Simple Complexe Notion de type

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod –Apport de l’approche "Objet" –Optimise la modularité –Dérivations de types Simples et complexes Par extension (ajout d’éléments, d’attributs) Par restriction (interdiction d’éléments, d’attributs, ajout de contraintes, facets sur les types simples) –Des types abstraits Utilisés comme des interfaces <element name="DEMANDE" type="string"/> Types et dérivation

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Toutes les définitions de types se font par référence ou par construction à partir de types existants, d'où les deux possibilités : –Extension : on ajoute des informations à un type existant, –Restriction : on façonne un type existant afin de le contraindre par rapport aux valeurs qu'il peut prendre. Types et dérivation

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Les types simples prédéfinis

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod long –-1, unsignedLong –0, short –-1, unsignedShort –0, decimal –-1.23, 0, 123.4, float –-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN double –-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN boolean –true, false 1, 0 time –13:20:00.000, 13:20: :00 dateTime – T13:20: :00 duration –P1Y2M3DT10H30M12.3S date – gMonth – gYear –1999 Schema Les types simples (2)

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod gYearMonth – gDay –---31 gMonthDay – Name –shipTo QName –po:Address NCName –Address anyURI – – language –en-GB, en-US, fr ID –"A212" IDREF –"A212" IDREFS –"A212" "B213" ENTITY ENTITIES NOTATION NMTOKEN, NMTOKENS –US –Brésil Canada Mexique Les types simples (3)

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Decrivons les différents types d'unités de mesure (gramme, kilogramme, litre respectivement 3, 2, 2 digits) : Exemple

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod list : pour structurer un contenu textuel comme une liste –Sur lequel on peut imposer des contraintes union : pour fusionner plusieurs types simples Pierre Paul Jacques Liste et union de types simples

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Contraintes sur type simple prédéfini Utilisation de facettes –Taille fixe, minimale, maximale, nombre de chiffres après la virgule –Domaine de valeurs (bornes min et max) pour les types ordonnés –Expressions régulières Perl Exemple Dérivation de types simples

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Décrivons les types d'unités de mesure possibles avec les abréviations communes (gr pour gramme, kg pour kilogramme, l pour litre...) en utilisant le méchanisme de dérivation : Exemple

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Définition d'objets complexes – : collection ordonnée d'éléments typés – : collection non ordonnée d'éléments typés – : choix entre éléments typés Caractérisation du modèle de contenu –Mixed –Nillable –Empty Exemple Les types complexes

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Définition de sous-types par héritage –Par extension : ajout d'informations –Par restriction : ajout de contraintes Possibilité de contraindre la dérivation –Final : interdit la dérivation du type –Block : empêche la substitution de types Exemple : Dérivation de types complexes

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Decrivons un ingrédient par extension en ajoutant une information de type conservation qui possède les attributs temperature et temps : Exemple

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod En XML schema il est possible (comme avec les DTD) de déclarer des attributs qui sont aussi soumis au processus de typage –Un attribut peut être déclaré au sein de l'élement (de manière anonyme): <xs:element.... –Sa déclaration peut être factorisée : <xs:element.... Les attributs

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Définition en XML Schema des attributs de l'élement ingredient... Exemple

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Un schéma fournit –Des définitions de types –Des déclarations d’éléments et d’attributs appartenant à un espace de noms Chaque instance de document: –Utilise un ou plusieurs espaces de noms –Peut associer chaque espace de nom à un schéma … Espaces de Nommage

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Contraintes sur type simple prédéfini Utilisation d'expression régulières –Similaires à celles de Perl, Python, Tcl, Java Exemple Les patrons, dits « patterns »

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod L'utilisation des expressions régulières permet de définir de manière plus ou moins précise les contenus possibles pour un type. Décrivons le type temperature pour qu'il n'accepte que la forme nn,nnC° : De même pour le type gramme : Exemple

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Possibilité de référencer localement un élément global – (Nom défini au premier niveau) –Importe l'élément et son type Définition de modèles réutilisables dans un schéma –group –attributeGroup Possibilité d'importer les types associés à un espace de noms –<import nameSpace = " – schemaLocation = " /> Possibilité d’inclure ou d'étendre un schéma – –.... Extensions... – Réutilisation

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Réutilisation d'un schema existant déclarant des ingredients : <import nameSpace = " recette.cuisine.org'' schemaLocation = " Exemple

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Les espaces de nommage

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Un espace de nom (namespace) : –permet de garantir l'unicité d'un vocabulaire, –est dépositaire du modèle (de nommage) via l'association d'une URI qui documente et versionne ce dernier, –permet de poser des choix de conception d'un XML Schema pour guider la réutilisabilité des élements qu'il déclare, on parle alors : De forme qualifiée, Et de forme non qualifiée. –... est une forme qualifiée, –... ne l'est pas s'il n'y a pas de déclaration implicite. => importance de l'utilisation des espaces de noms ! Notion d’espace de noms

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod La qualification des éléments dépend des choix de conception d'un XML Schema : –Un même document XML peut être validé par deux Schémas XML différents. Faut-il qualifier ou non ?

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Les deux schémas précédents peuvent être équivalents –Le premier déclare deux éléments globaux : purchaseOrder et comment –Le second déclare plus d'élements globaux : PurchaseOrder ShipTo BillTo Comment Name street Les élements globaux sont considérés comme des racines potentielles pour un document XML ! Les déclarations locales (i.e. Au sein de la déclaration d'un élement) restent ''anonymes'' et leur portée contextuelle, Les déclarations globales sont visibles de tous et peuvent générer des conflits ! Faut-il qualifier ou non ?

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Plus il y a d'élements globaux, plus le risque d'entrer en conflit avec un autre XML Schema est grand : –Si la définition fait partie d'un ensemble, il est conseillé de qualifier pour éviter les conflits, –Si elle représente un modèle unique de documents, avec peu voir pas d'utilisations de vocabulaires externes : Il est possible de ne rien qualifier, Dans le doute, éviter de multiplier les élements globaux et qualifier la racine uniquement. Faut-il qualifier ou non ?

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Lorsque l'on crée un XML Schema, il faut lui associer un espace de nom cible : –Il identifiera de facon unique le modèle –Syntaxe : targetNameSpace='' Tout document se réclamant instance de ce modèle doit importer cet espace de noms. Si l'on veut qualifier les élements et/ou les attributs : –ElementFormDefault = ''true|false'' –AttributeFormDefaut = ''true|false'' Syntaxe complète : <schema xmlns=" xmlns:po=" targetNamespace=" elementFormDefault="qualified" attributeFormDefault="unqualified"> Le processus de qualification

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Exemple de document utilisant une forme qualifiée explicite : <apo:purchaseOrder xmlns:apo=" orderDate=" "> Alice Smith 123 Maple Street Robert Smith 8 Oak Avenue Hurry, my lawn is going wild! Le processus de qualification

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Exemple de document utilisant une forme qualifiée implicite : <purchaseOrder xmlns=" orderDate=" "> Alice Smith 123 Maple Street Robert Smith 8 Oak Avenue Hurry, my lawn is going wild! Le processus de qualification

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Divers

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Wildcards –any –anyAttribute Annotations Unicité et références –unique –key –keyRef Types et éléments abstraits Substitution Autres fonctionnalités

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Mixed Content Empty Content anyType Annotations Attribute Groups Nil Values Specifying Uniqueness Defining Keys & their References Namespaces, Schemas & Qualification Target Namespaces & Unqualified Locals Qualified Locals Global vs. Local Declarations Undeclared Target Namespaces Substitution Groups Abstract Elements & Types Schema Autres possibilités...

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Bilan en l’état de l’art

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Intérêt –Conception : modélisation de classe d’objets Lisibilité Compatibilité XML et espaces de noms Pouvoir de description des structures et des types Pouvoir d'expression de contraintes Très modulaire –Mécanisme de modularisation des modèles (inclusions et dérivation) –Permet des architectures de modèles ouvertes XML comme langage –Toute l’ingénierie réutilisable –Exploitation : validation et utilisation multiples Coopération : plusieurs schémas sur une même instance (modularité) Application spécifique : une instance validée et utilisée dans un contexte applicatif précis Bilan

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Limite –Spécification complexe –Forme verbeuse –Outils (de validation) extrêmement limités et "bogués" aujourd'hui –Contraintes sur les atomes (données), mais pas sur les inter-relations Quel est le rôle du modèle ? Quel est le rôle de l’applicatif ? –Ne permet pas la fragmentation de fichiers de données Nécessité d'une coopération avec DTD ou utilisation de Xinclude –Attention compatibilité DTD Vigilance sur fonctionnalités Schema utilisées si nécessité d’en dériver une DTD Bilan (suite)

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Schema Diagramme XML Spy

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Séquence Choix Tas Schema Diagramme XML Spy

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Schematron –Langage de schema orienté règles –Pattern de contraintes de structure – Relax NG –Langage de schema orienté grammaire –Langage simple de schema spécifiant des modèles de contenus – DSDL (Document Description and Processing Languages) Nouveau projet ISO Ensemble modulaire de spécifications pour décrire –La structure des documents –Les types de données –Les relations entre les différentes ressources Modéliser : mais aussi…

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod x xx yyy Document XML Résolution d'entités /Résolution espaces de noms Reader Contrôle de validité structurelle Contrôle au regard du modèle (DTD / Schéma) Interfaces (SAX, DOM pour partie) Application InfoSet PSVI Spécification La validation vue comme une transformation

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod Les traitements XML Les traitements XML : transformation et interrogation XSL, spécification de transformation initialement dédiée au formatage de la présentation (XSL:FO) XSLT, spécification générique de transformation –XPath langage d’accès aux éléments et attributs XML Xquery langage de requête dans une structure XML.

Cours MIAGE M2 « architectures orientées services » Henry Boccon-Gibod 1) Écrire le schéma validant indifféremment un livre de recettes, une recette, et un fond de cuisine. 2) décrire le principe de description en un schéma unique les différentes sortes de documents intervenant dans le cycle de vie d’un logiciel – En utilisant (import) le schéma de DocBook (documentation technique standard), – En utilisant (import) un schéma support de ressources de signature électronique, Exercices