Origine et Concepts de base. 1. Origines et Objectifs 2. SGML et HTML 3. Introduction à XML 4. XML pour quoi faire?



Documents pareils
XML : documents et outils

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

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

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

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

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

Master d Informatique Corrigé du partiel novembre 2010

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

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

Web Application Models

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

SII Stage d informatique pour l ingénieur

Module BD et sites WEB

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

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

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

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

Programmation Internet Cours 4

Compte Rendu d intégration d application

4. SERVICES WEB REST 46

L architecture des services Web

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

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

Introduction aux «Services Web»

Outils logiciels pour l'ingénierie documentaire

Gestion documentaire (Extraits du CCI version 1.2)

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

Introduction à Microsoft InfoPath 2010

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

Sommaire. Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion

Introduction aux concepts d ez Publish

Les Services Web. Jean-Pierre BORG EFORT

Petite définition : Présentation :

Problématiques de recherche. Figure Research Agenda for service-oriented computing

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

IFT2255 : Génie logiciel

Refonte front-office / back-office - Architecture & Conception -

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

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

Université de Bangui. Modélisons en UML

Learning Object Metadata

OCL - Object Constraint Language

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Formation : WEbMaster

Urbanisme du Système d Information et EAI

Systèmes d'informations historique et mutations

BES WEBDEVELOPER ACTIVITÉ RÔLE

Systèmes d information et bases de données (niveau 1)

Ingénierie des Modèles. Méta-modélisation

Programmation Web Avancée Introduction aux services Web

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

UML (Paquetage) Unified Modeling Language

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

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

RTDS G3. Emmanuel Gaudin

Diagramme de classes

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

Les outils de création de sites web

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

Architecture Orientée Service, JSON et API REST

Développement d un interpréteur OCL pour une machine virtuelle UML.

Formation HTML / CSS. ar dionoea

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Architecture d'entreprise : Guide Pratique de l'architecture Logique

BD et XML : Exercices

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

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

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

as Architecture des Systèmes d Information

Architectures d'intégration de données

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Les nouvelles architectures des SI : Etat de l Art

Gestion Électronique de Documents et XML. Master 2 TSM

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

Configuration Interface for MEssage ROuting

Système de gestion de contenu

Programmation en Java IUT GEII (MC-II1) 1

Environnements de développement (intégrés)

Chapitre VI- La validation de la composition.

From supply chain to demand chain

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

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

Les services usuels de l Internet

Optimisation des échanges et traitements XML

SQL SERVER 2008, BUSINESS INTELLIGENCE

Patrons de Conception (Design Patterns)

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

OpenPaaS Le réseau social d'entreprise

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

MINISTÈRE DES SOLIDARITÉ ET DE LA COHÉSION SOCIALE

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Annexe : La Programmation Informatique

Architectures Web Services RESTful

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

Transcription:

Origine et Concepts de base 1. Origines et Objectifs 2. SGML et HTML 3. Introduction à XML 4. XML pour quoi faire?

1. Origine et objectifs XML est issu de la Gestion de Documents (GED) Séparation du fond de la forme. Forme = présentation à partir de la structure (style) Fond = structure + données (contenu) Multiples précurseurs dont les plus connues : SGML pour la structuration HTML pour la présentation Approches mélangeant parfois le fond et la forme! Origines 2

Présentation et Structuration Titre Auteur Section Paragraphe Paragraphe Paragraphe Section XML: Des BD aux Services Web Georges Gardarin 1. Introduction Ces dernières années ont vu l'ouverture des systèmes d'information à l'internet. Alors que depuis les années 1970, ces systèmes se développaient, le choc Internet Ainsi, on a vu apparaître une myriade de technologies nouvelles attrayantes mais peu structurantes voir perturbantes. Certaines n'ont guère survécues L'urbanisation passe avant tout par la standardisation des échanges : il faut s'appuyer sur des standards ouverts, solides, lisibles, sécurisés, capable d'assurer l'interopérabilité avec l'internet et les systèmes d'information 2. La société ProXML Origines 3

Vue Balisée <Livre> <Titre> XML : Des BD aux Services Web</Titre> <Auteur>Georges Gardarin</Auteur> <Section titre = "Introduction"> <Paragraphe>Ces dernières années ont vu l'ouverture des systèmes d'information à l'internet. Alors que depuis les années 1970, ces systèmes se développaient, le choc Internet </Paragraphe> <Paragraphe>Ainsi, on a vu apparaître une myriade de technologies nouvelles attrayantes mais peu structurantes voir perturbantes. Certaines n'ont guère survécues </Paragraphe> <Paragraphe>L'urbanisation passe avant tout par la standardisation des échanges : il faut s'appuyer sur des standards ouverts, solides, lisibles, sécurisés, capable d'assurer l'interopérabilité avec l'internet et les systèmes d'information </Paragraphe> </Section> <Section titre= "La Société ProXML"> </Section> </Livre> Les balises (tags) peuvent porter plus ou moins de sémantique Origines 4

World Wide Web Consortium W3C - Fondé en 1994 Consortium industriel international accueilli par différents sites MIT/LCS aux Etats-Unis INRIA en Europe Keio University au Japon 448 membres industriels en septembre 2000 Origines 5

W3C : dans quel but? Accroître le potentiel du Web Développer des protocoles communs Assurer l inter-opérabilité sur le Web entre les différents systèmes Stock d informations sur les standards et les normes pour développeurs et utilisateurs Code référence pour présenter et promouvoir les différents standards Prototypes variés et exemples d applications Origines 6

Les différents documents émis Note : proposition émise par un organisme ou un groupe Working Draft : document de travail issu d un groupe formellement reconnu; Proposed Recommendation : proposition représentant un consensus d un groupe de travail soumise pour vote aux membres votants; Recommendation : standard accepté par un vote positif. Adopté dans une version, il peut évoluer lors de versions ultérieures. Origines 7

XML : objectifs XML= un nouveau langage d'échange basé sur le balisage XML= plus simple que SGML XML= plus ouvert que HTML englobé (XHTML) XML = développé par XML Working Group dirigé par le W3C (depuis 1996) XML 1.0 = recommandation officielle du W3C depuis le 10 février 1998 Origines 8

les 10 objectifs de conception: XML doit pouvoir être utilisé sans difficulté sur Internet XML doit soutenir une grande variété d'applications XML doit être compatible avec SGMLet HTML Il doit être facile d'écrire des programmes traitant les documents XML Le nombre d'options dans XML doit être réduit au minimum, idéalement à aucune Origines 9

les 10 objectifs de conception Les documents XML doivent être lisibles par l'homme et raisonnablement clairs La spécification de XML doit être disponible rapidement La conception de XML doit être formelle et concise Il doit être facile de créer des documents XML La concision dans le balisage de XML est peu importante Origines 10

Forces de XML Séparation de la structure et de la présentation Questions? Moins confus que HTML Plus simple que SGML Idéal pour l'échange de données semi-structurées Utilisable entre machines Origines 11

2. SGML et HTML 1969 C. Goldfarb, E. Mosher, R. Lorie inventent GML chez IBM GML a été créé pour éditer des documents, les mettre en page et les partager au sein de systèmes de gestion éditoriaux 1978 Goldfarb prend la tête d un comité «Computer Language for the Processing of Text» au sein de l American National Standards Institute (ANSI). SGML 12

Qu'est-ce que SGML? Une norme internationale : Standard Generalized Markup Language ISO 8879-1989 Un métalangage de balisage de documents lisible par l être humain et traitable par une machine permet de définir des langages de balisage Les documents sont balisés conformément à la grammaire (la DTD) instances de DTD permet un balisage sémantique du fond. Implique la notion de validité d'un document SGML 13

SGML : objectifs Séparation du fond et de la forme possibilité de multiples présentations un seul document en SGML plusieurs formats : Postcript, HTML, etc. Support de traitements sur le contenu des documents sans prise en compte de la forme Proposition d un cadre défini pour l expression des modèles documentaires (validité, contrôle) Intégration d'un format de stockage et d échange normalisé SGML 14

SGML : critiques Très lourd et complexe pour la mise en œuvre de documents respectant ce format Une grande rigueur est demandée à l'entrée des documents Standard complexe et complet pour le traitement des documents Liens hypertextes possibles mais complexes SGML 15

HTML : présentation Proposé par le W3C comme format de documents sur le Web. Langage simple avec des balises standardisées permettant la mise en forme d un texte. Standard reconnu par tous les navigateurs. Langage très populaire sur le Web <HTML> <HEAD> <TITLE> Exemple </TITLE> </HEAD> <BODY> <H1>Contenu du document</h1> <A HREF = "http://www.server.fr/info /dir/test.html"> une référence externe </A> </BODY> </HTML> HTML 16

HTML : inconvénients Normalisation des différentes balises difficile : les constructeurs ont eu tendance à définir leurs propres balises pour répondre à leurs besoins (incompatibilité) HTML 4.0 boutons, tables, applets, objects, graphiques, maths,... styles, frames, protections,... Mises à jour difficiles : données utiles et mises en forme ; restructuration ou remise en forme de l ensemble des pages du site fastidieux. Mélange le fond et la forme méta-données avec la présentation Pages conçues pour 1 type de terminal HTML 17

Feuilles de style Introduite pour diversifier les présentations CSS (Cascading Style Sheet) mécanisme d'héritage entre nœuds une balise hérite de la parente seulement ce qu'elle spécifie est redéfini Recommandation W3C en décembre 1996 Mécanisme simple pour ajouter un style aux documents Web fonte, taille, couleur, etc. Utilisables avec XML HTML 18

Exemple de CSS <LINK REL="stylesheet" HREF="fichier.css"> @import "truc.css" BODY { color: #000 ;; background: #FBFBFF ;; margin-left: 9% 9% ;; margin-right: 6% 6% ;; font-family: "Helvetica", sans-serif ;; line-height: 1.35 1.35 ;; } [[......]] TD, TD, TH TH { font-family: "Helvetica", sans-serif line-height: 1.35 1.35 ;; } H1, H1, H2 H2 { margin-top: 1.2em ;; margin-left: -7% -7%;; color: #900 #900;; clear: both both ;; } [[......]] HTML 19

SGML et HTML : Résumé SGML langage de la GED plutôt complexe très utilisé dans l'industrie HTML spécialisation de SGML adapté à la présentation inadapté à l'échange entre programmes Questions? HTML 20

3. XML: définitions de base XML est un méta-langage universel pour représenter les données échangées sur le Web qui permet au développeur de délivrer du contenu depuis les applications à d'autres applications ou aux navigateurs XML standardise la manière dont l'information est : échangée présentée archivée retrouvée transformée cryptée... XML 21

XML : exemple simple XML SGML XML HTML XHTML Document bien formé: <Vin> <Cru>Volnay</Cru> <Region> <Nom>Bourgogne</Nom> <Capitale>Dijon</Capitale> </Region> <Millesime>1995</Millesime> <Millesime>1996</Millesime> <Prix Unite = "Euro"> 10.5 </Prix> </Vin> Les utilisateurs peuvent définir leurs propres tags Il est possible d'imposer une grammaire spécifique (DTD, Schéma) Les tags indiquent la signification des sections marquées 22

Concepts du modèle Balise (ou tag ou label) Marque de début et fin permettant de repérer un élément textuel Forme: <balise> de début, </balise> de fin Elément de données Texte encadré par une balise de début et une de fin Les éléments de données peuvent être imbriquées <producteur> <adresse> <rue>a. Briand</rue> <ville>dijon</ville> </adresse> </producteur> Attribut Doublet nom="valeur" qualifiant une balise <producteur no="160017" region="bourgogne"> XML 23

Exemple complet 24

Modèle arborescent @Type @Catégorie Français *** Restaurant Nom Manager Le Moulin de Mougin Dupuis Adresse No Rue Ville 7 Des Vignes Mougin XML 25

Présentation textuelle <Restaurant Type="Français" Categorie="***"> <Nom>Le Moulin de Mougin</Nom> <Manager... >Dupuis</Manager> <Adresse> <No> 7</No> <Rue>Des Vignes</Rue> <Ville>Mougin</Ville> </Adresse> </Restaurant> Arbre sérialisé XML 26

Présentation externe <prix>6.05</prix> XML 27

Espaces de noms Comment mixer des tags issus de différents langages? Le préfixe permet de retrouver le langage <tag xmlns:mic="http://www.michelin.com/2001/guide", xmlns:pj="http://www.pagejaune.com/2001/annuaire"> <mic:adresse><ville>mougins</ville><zip>06212</zip></mic:adresse> <pj:adresse>le Moulin 06 Mougins</pj:Adresse> Mécanisme intéressant pour l'intégration de contenus XML 28

Hyperliens: XLink et XPointer Exprimer des liens entre documents XML pointe sur une URL l'url peut inclure une partie XPointer tout élément peut être un lien Différents types de liens simple xlink:type = "simple" étendu xlink:type = "extended" De véritables associations 1-1 en simple, k-n en étendu avec rôles et comportements possibles XLink et plus 29

Exemples simples <Annotation xlink:type="simple" href="note1.xml">1</annotation> <Auteur xlink:type="simple" title="créateur" href="http://www.mysite.com/~georges/"> Victor Hugo</Auteur> <Image xlink:type="simple" href="logo.gif"/> XLink et plus 30

XPointer Permet de référencer un élément particulier d'un document le document est spécifié par Xlink le Xpointer est ajouté à l'uri séparée par # ou Pointeur absolue id() : référence un élément d'identifiant donné root() : pointe sur la racine d'un document html() : référence un document HTML Pointeur relatif = chemin XPath child, descendant, ancestor, preceding, following, Exemple : <vin2 xlink:type="simple" href="http://www.site.fr/ degustation#xptr(/child::degustation/child::vin[2])" XLink et plus 31

La galaxie de standards Dimension métiers ChessML cxml UBL VoiceML SVG Outils applicatifs OASIS W3C ebxml SMIL MatML XHTML Outils génériques Dimension technique XML XSL XSchema DOM SOAP WSDL BPEL RDF XML 32

4. Pourquoi XML? Définir vos propres langages d échange Commande, facture, bordereau de livraison, etc. Modéliser des documents et des messages Modèle logique de données Eléments typés agrégés (DTD, XML Schema) Passerelle avec Unified Modelling Language (UML) Publier des informations Neutre du point de vue format Mise en forme avec des feuilles de style Archiver des données Auto-description des archives Pourquoi XML? 33

"Lingua Franca" du 21 e siècle Un standard d'échange Lisible : texte balisé avec marquage Clair : séparation du fond et de la forme Extensible : supporte les évolutions applicatives Sécurisé : pare-feu, encryption, signature Développé par le W3C Pour le Web (Internet, Intranet) S'étend à l'entreprise et ses partenaires Supporté par les grands constructeurs IBM, Microsoft.net, SUN, BEA, etc. Des outils génériques et ouverts Pourquoi XML? 34

Pour données et documents Approche «Donnée» Structuration forte et simple Compatibilité SGBDR existants Mise à jour en place Intégrité sémantique Indexation exacte Adapté au transactionnel et décisionnel Performances attendues «moyenne» à «forte» pour une volumétrie «moyenne» Approche «Document» Structuration faible et complexe Systèmes documentaires spécialisés Gestion de versions Recherche textuelle Indexation approchée Accès type moteur de recherche Performances attendues «moyenne» pour une volumétrie «forte» Pourquoi XML? 35

Publication multi-supports Middleware XMLizer XML Application de publication (XSL) Base de Données Pourquoi XML? Projet GIE Cartes Bancaires: publication des spécifications de protocoles pour réseau Carte Bancaires vers les fournisseurs et prestataires du GIE 36 TV Numérique

Échange de données: ETL Extractor Mapper JDBC JDBC BD relationnelle Datawarehouse Projet MEN : Echange de données avec les académies (remontée et descente) Datamining Pourquoi XML? 37

Gestion documents semistructurés Amendement HTTP GET Serveur d Applications Requêtes Requêtes HTTP POST Mapping XML-SQL SGBDR HTML généré Processeur XSL Feuille Feuille de de style de style style XSL XSL XSL Projet AMELI : Une application de serveur XML pour la saisie et la consultation de documents semi-structurés par internet/intranet Interface avec les applications bureautiques Pourquoi XML? 38

Échange B2B XML EDI XML EDI XMLizer Donneur d ordre Projet EDIXML : Expérimentation de la chaîne pour un grand donneur d'ordres Internet (SOAP) Fournisseur Pourquoi XML? 39

Forces et faiblesses de XML Une technologie structurante Clarifie tous les échanges Des standards internes et externes Transversale à l'entreprise Échanges de données Bureautique GED Sites Web EDI Bases de données Intégration e-business Une syntaxe bavarde Un méta-langage, mais de nombreux langages Coûteux en CPU Parsing Coûteux en mémoire Instanciation Format compressé à l étude Pourquoi XML? 40

Conception et Manipulations des Documents 1. Introduction 2. DTD 3. Schéma 4. Outils

1. Introduction Un document XML peut être associé à : une DTD ou un schéma pour décrire les balises Une feuille de style pour présenter les données DTD ou/et schéma permettent de définir son propre langage basé sur XML Vocabulaire (balises) Grammaire (imbrications) Dialecte ou Jargon Introduction 42

Validité des documents Document bien formé (Well Formed Document) balises correctement imbriquées analysable (parsable) et manipulable pas nécessairement valide par rapport au jargon Document valide (Valid Document) bien formé + conforme à la DTD ou au schéma Introduction 43

2. DTD Permet de définir le «vocabulaire» et la structure qui seront utilisés dans le document XML Grammaire du langage dont les phrases sont des documents XML (instances) Peut être mise dans un fichier (DTD externe) et être appelée dans le document XML DTD 44

Déclaration d'élément simple <! ELEMENT balise (définition) > Le paramètre définition représente soit un type de donnée prédéfini, soit un élément de données composé, constitué lui même d'éléments Types prédéfinis ANY : L'élément peut contenir tout type de donnée EMPTY : L'élément ne contient pas de données spécifiques #PCDATA : L'élément doit contenir une chaîne de caractère Exemple <! ELEMENT Nom (#PCDATA)> <Nom>Victor Hugo</Nom> DTD 45

Déclaration d'élément composé Définit une séquence ou un choix d'éléments Syntaxe spécifique avec opérateurs de composition d'éléments : <! ELEMENT balise (composition) > Opérateur Signification Exemple + L'élément doit être présent au minimum une fois A+ * L'élément peut être présent plusieurs fois (ou aucune) A*? L'élément peut être optionnellement présent A? L'élément A ou B peuvent être présents (pas les deux) A B, L'élément A doit être présent et suivi de l'élément B A,B () Les parenthèses permettent de regrouper des éléments afin de leur appliquer les autres opérateurs (A,B)+ DTD 46

Exemple d'élément composé <!ELEMENT personne (nom, prenom+, tel?, adresse) > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT tel(#pcdata) > <!ELEMENT email (#PCDATA) > <!ELEMENT adresse (ANY) > <personne> <nom>hugo</nom> <prenom>victor</prenom> <prenom>charles</prenom> <tel>01120243</tel> <adresse><rue></rue><ville>paris</ville></adresse> </personne> DTD 47

Déclaration d'attributs <! ATTLIST balise Attribut Type Mode > balise spécifie l'élément auquel est attaché l'attribut Attribut est le nom de l'attribut déclaré Type définit le type de donnée de l'attribut choisi parmi: CDATA Chaînes de caractères entre guillemets ("aa") non analysées Enumération Liste de valeurs séparées par <! ATTLIST balise Attribut (Valeur1 Valeur2... ) > ID et IDREF Clé et référence à clé Mode précise le caractère obligatoire ou non de l'attribut #REQUIRED, #IMPLIED ou #FIXED DTD 48

Exemple d'attributs <! ATTLIST personne num ID, age CDATA, genre (Masculin Feminin ) > <!ELEMENT auteur (#PCDATA) > <!ELEMENT editeur (#PCDATA) > <!ATTLIST auteur genre (Masculin Feminin ) #REQUIRED ville CDATA #IMPLIED> <!ATTLIST editeur ville CDATA #FIXED "Paris"> DTD 49

Exemple de DTD <!ELEMENT doc (livre* article+) > <!ELEMENT livre (titre, auteur+) > <!ELEMENT article (titre, auteur*) > <!ELEMENT titre(#pcdata) > <!ELEMENT auteur(nom, adresse) > <!ATTLIST auteur id ID #REQUIRED > <!ELEMENT nom(prenom?, nomfamille) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT nomfamille (#PCDATA) > <!ELEMENT adresse (ANY) > DTD 50

Exemple de DTD interne <?XML version="1.0" standalone="yes"?> <!DOCTYPE CATALOGUE [ <!ELEMENT CATALOGUE (VINS+)> <!ELEMENT VINS (SPECIFICATION+, ANNEE, PRIX)> <!ATTLIST VINS NOM CDATA #REQUIRED> <!ELEMENT SPECIFICATION EMPTY> <!ATTLIST SPECIFICATION PROVENANCE CDATA #REQUIRED COULEUR CDATA #REQUIRED> <!ELEMENT ANNEE (#PCDATA)> <!ELEMENT PRIX (#PCDATA)> ]> <CATALOGUE> <VINS NOM="Saint-Emilion"> <SPECIFICATION PROVENANCE="Bordeaux" COULEUR="Rouge"/> <ANNEE>1999</ANNEE> <PRIX>25 </PRIX> </VINS>... </CATALOGUE> DTD 51

Exemple de ID et IDREF <?xml version="1.0" standalone="yes"?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT(PERSONNE*)> <!ELEMENT PERSONNE (#PCDATA)> <!ATTLIST PERSONNE PNUM ID #REQUIRED> <!ATTLIST PERSONNE MERE IDREF #IMPLIED> <!ATTLIST PERSONNE PERE IDREF #IMPLIED> ]> <DOCUMENT> <PERSONNE PNUM = "P1">Marie</PERSONNE> <PERSONNE PNUM = "P2">Jean</PERSONNE> <PERSONNE PNUM = "P3" MERE="P1" PERE="P2">Pierre</PERSONNE> <PERSONNE PNUM = "P4" MERE="P1" PERE="P2">Julie</PERSONNE> </DOCUMENT> DTD 52

DTD externe Modèle pour plusieurs documents partage des balises, attributs et structures Définition locale ou externe <!DOCTYPE doc SYSTEM "doc.dtd"> <!DOCTYPE doc PUBLIC "www.myweb.com/doc.dtd"> Exemple de document <?xml version="1.0" standalone="no"?> <!DOCTYPE VINS SYSTEM "vins.dtd">... DTD 53

DTD : Entité paramètre Permet la définition d'un groupe d'éléments sous un nom (macro) <!ENTITY %nom "definition"> Réutilisable dans une DTD par simple appel : %nom; Exemple : <!ENTITY %genres "(homme femme)"> <!ATTLIST auteur genre %genres; #REQUIRED> Peuvent être externes : <!ENTITY %mpeg PUBLIC "http://www.myweb.fr/fic.dtd"> DTD 54

Quelques règles d'écriture Modularité définir dans des entités séparées les parties réutilisables Précédence Regrouper les déclarations d'entités en tête Abstraction Utiliser des entités pour les modèles de contenus Spécificité Éviter les DTD trop générales Simplicité Découper les DTD trop complexes DTD 55

Insuffisance des DTD Pas de types de données difficile à interpréter par le récepteur difficile à traduire en schéma objets Pas en XML langage spécifique Propositions de compléments XML-data de Microsoft (BizTalk) XML-schema du W3C Questions? DTD 56

3. XML Schéma Un schéma d'un document définit: les éléments possibles dans le document les attributs associés à ces éléments la structure du document les types de données Le schéma est spécifié en XML pas de nouveau langage balisage de déclaration espace de nom spécifique xsd: ou xs: Présente de nombreux avantages structures de données avec types de données extensibilité par héritage et ouverture analysable à partir d'un parseur XML standard Schema 57

Objectifs des schémas Reprendre les acquis des DTD Plus riche et complet que les DTD Permettre de typer les données Eléments simples et complexes Attributs simples Permettre de définir des contraintes Existence, obligatoire, optionnel Domaines, cardinalités, références Patterns,... S'intégrer à la galaxie XML Espace de noms Infoset (structure d'arbre logique) Schema 58

Le modèle des schémas Déclaration des éléments et attributs Nom Typage similaire à l'objet Spécification de types simples Grande variété de types Génération de types complexes Séquence (Sequence) Choix (Choice) Tas (All) Schema 59

Les types simples (1) string Confirm this is electric normalizedstring Confirm this is electric token Confirm this is electric byte -1, 126 unsignedbyte 0, 126 base64binary GpM7 hexbinary 0FB7 integer -126789, -1, 0, 1, 126789 positiveinteger 1, 126789 negativeinteger -126789, -1 nonnegativeinteger 0, 1, 126789 nonpositiveinteger -126789, -1, 0 int -1, 126789675 unsignedint 0, 1267896754 Schema 60

Les types simples (2) long -1, 12678967543233 unsignedlong 0, 12678967543233 short -1, 12678 unsignedshort 0, 12678 decimal -1.23, 0, 123.4, 1000.00 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.000-05:00 datetime 1999-05-31T13:20:00.000-05:00 duration P1Y2M3DT10H30M12.3S date 1999-05-31 gmonth --05-- gyear 1999 Schema 61

Les types simples (3) gyearmonth 1999-02 gday ---31 gmonthday --05-31 Name shipto QName po:usaddress NCName USAddress anyuri http://www.example.com/, http://www.example.com/doc.html#id5 language en-gb, en-us, fr ID "A212" IDREF "A212" IDREFS "A212" "B213" ENTITY ENTITIES NOTATION NMTOKEN, NMTOKENS US Brésil Canada Mexique Schema 62

Commandes de base xsd: element : association d'un type à une balise attributs name, type, ref, minoccurs, maxoccurs,... attribute : association d'un type à un attribut attributs name, type type simple : les multiples types de base entier, réel, string, time, date, ID, IDREF,, extensibles par des contraintes type complexe : une composition de types définit une agrégation d'éléments typés Schema 63

Les types complexes Définition d'objets complexes <sequence> : collection ordonnée d'éléments typés <all> : collection non ordonnée d'éléments typés <choice>: choix entre éléments typés Exemple <xsd:complextype name="addressefr"> <xsd:sequence> </xsd:sequence> <xsd:element name="nom" type="xsd:string"/> <xsd:element name="rue" type="xsd:string"/> <xsd:element name="ville" type="xsd:string"/> <xsd:element name="codep" type="xsd:decimal"/> <xsd:attribute name="pays" type="xsd:nmtoken" fixed="fr"/> </xsd:complextype> Schema 64

Héritage de types Définition de sous-types par héritage Par extension : ajout d'informations Par restriction : ajout de contraintes Possibilité de contraindre la dérivation Exemple : <complextype name="adressepays"> <complexcontent> <extension base="adresse"> <sequence> <element name="pays" type="string"/> </sequence> </extension> </complexcontent> </complextype> Schema 65

Les patterns Contraintes sur type simple prédéfini Utilisation d'expression régulières Similaires à celles de Perl Exemple <xsd:simpletype name="numitem"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> </xsd:restriction> </xsd:simpletype> Schema 66

XML Schema : exemple (1) <xsd:schema xmlns:xsd="http://www.w3.org/1999/xmlschema"> <xsd:element name="commande" type="commandetype"/> <xsd:element name="commentaire" type="xsd:string"/> <xsd:complextype name="commandetype"> <xsd:sequence> <xsd:element name="livrer" type="adresse"/> <xsd:element name="facturer" type="adresse"/> <xsd:element ref="commentaire" minoccurs="0"/> <xsd:element name="produits" type="produittype"/> </xsd:sequence> <xsd:attribute name="date_com" type="xsd:date"/> </xsd:complextype> Schema 67

XML Schema : exemple (2) <xsd:complextype name="produittype"> <xsd:sequence> <xsd:element name="produit" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="nom_prod" type="xsd:string"/> <xsd:element name="quantite"> <xsd:simpletype> <xsd:restriction base="xsd:positiveinteger"> <xsd:maxexclusive value="100"/> </xsd:restriction> </xsd:simpletype> </xsd:element> <xsd:element name="prix" type="xsd:decimal"/> <xsd:element ref="commentaire" minoccurs="0"/> <xsd:element name="date_livraison" type="xsd:date" minoccurs="0"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:schema> <xsd:attribute name="num_prod" type="xsd:positiveinteger" use="required"/> Schema 68

Diagramme XML Spy Schema 69

Diagramme de type (XML Spy) Séquence Choix Tas Schema 70

Réutilisation de déclarations Possibilité de référencer un élément plus global <element ref="nom" /> (ci-dessus) Importe l'élément et son type Possibilité d'inclure les types associés à un espace de noms <import namespace = "http://..." schemalocation = "http://..." /> Possibilité d'étendre un schéma <redefine schemalocation="http://..."/>... Extensions... </redefine> Schema 71

Autres possibilités... Mixed Content Empty Content anytype Annotations Attribute Groups Nil Values Abstract Elements & Types Target Namespaces & Unqualified Locals Qualified Locals Global vs. Local Declarations Undeclared Target Namespaces Substitution Groups Schema 72

Comment concevoir DTD/Schema? A la main syntaxe complexe, devient illisible Interface graphique IDE partir d'un fichier d'exemples générer un premier schéma via l'outil modifier le schéma graphiquement A partir de UML décrire données avec UML générer un modèle logique hiérarchique Schema 73

Rappels UML Modélisation de données et traitements Concepts pour les données paquetage (package) classe attribut association agrégation généralisation Contraintes associations 0..* ou 1..* (*,+) attributs avec nul possible (?) généralisation exclusive Diagramme de classes SClasse1 Classe1 Attribut1 Attribut2 {exclusif} SClasse2 1..* Classe3 * Classe4 Schema 74

Conception UML de schémas Possible à partir d'une modélisation UML Définir des paquetages de classes et associations Orienter les associations arbre Préciser les types de données Possibilité d'hériter de stéréotypes XML Voir "Modeling XML Applications with UML" David Carlson, A. Wesley Intégrer aux produits Rose, Objecteering, Designer, HyperModel... Schema 75

De UML à XML : les choix Choix des messages (documents) agrégation d'éléments classes fortement liées N instances Choix des identifiants et liens références pour associations Attributs versus éléments les attributs jouent un rôle descriptif ("méta") Choix des cardinalités obligatoire ou optionnel (?) 0..* (*) ou 1..* (+) Schema 76

Exemple: Publier une BD Package Commandes Package Client Commande num int statut : char total : float 1..* 0..* passer Client code : int nom : text type : CCC livrer gérer Ligne 1..* quantite : int article : CCNNN statut : char total : FRF Magasin 0..* numero : int rue : text complement : text code_postal : int ville : text Schéma UML Schema 77

Vue hiérarchique Orientation des associations obtenir un arbre éviter les duplicats Génération des liens attributs IDREF externes ou hyperliens Package Commandes Commande num int statut : char total : float Client refid Magasin refid Ligne 1..* quantite : int article : CCNNN statut : char total : FRF Schema 78

Définition des types complexes <!-- Types de base--> <!ENTITY % int "(#PCDATA)"> <!ENTITY % float "(#PCDATA)"> <!ENTITY % char "(#PCDATA)"> <!ENTITY % string "(#PCDATA)"> <!-- Classe Commande --> <!ELEMENT Commande (cstatut, ctotal, Ligne+)> <!ATTLIST Commande NUM ID #REQUIRED> <!ELEMENT cstatut %char;> <!ELEMENT ctotal %float;> <!-- Classe Ligne --> <!ELEMENT Ligne (article, quantite, statut?, total?)> <!ELEMENT article %string;> <!ELEMENT quantite %int;> <!ELEMENT lstatut %char;> <!ELEMENT ltotal %float;> Schema 79

Composition du message <?xml version="1.0" standalone="yes"?> <!DOCTYPE MESSAGE [ <!ELEMENT MESSAGE (Commande*)> <!ENTITY %Type SYSTEM "Type.dtd"> %Type; ]> <MESSAGE> <Commande NUM="1"> <cstatut> A </cstatut> <ctotal>1000</ctotal> <Ligne> <article>212</article> <quantite>100</quantite> </Ligne> </Commande> <Commande NUM="2"> <cstatut> B </cstatut> <ctotal>1000</ctotal> <Ligne> <article>212</article> <quantite>300</quantite> </Ligne> <Ligne> <article>412</article> <quantite>400</quantite> </Ligne> </Commande> </MESSAGE> Schema 80

Produits: HyperModel De XML à UML et vice-versa Représentation XMI du modèle UML XMI = jargon XML de l'omg pour modèle objet Traduction en toute sorte de modèle logique Ajoutable à Eclipse http://xmlmodeling.com Schema 81

HyperModel et Eclipse Schema 82

4. Les outils de développement IDE = Integrated Developement Environment Des éditeurs De texte XML, parfois avec structure séparée De schéma XML, avec interface graphique De règles XSL, avec moteur de transformation De requêtes XQuery, avec moteur sur document De description WSDL, avec wrapper Web Service Des interfaces XML Aux fichiers Aux bases de données Aux applications Le plus fameux : XML Spy (voir démo.) 83

Quelques outils de travail Editeur Outil Support Tibco Altova SyncRO Ltd. Data Junction Turbo XML XMLSpy Oxygen XML Junction DTD, XSL, XQuery Schéma DTD, Schéma XSL, XQuery DTD, Schéma XSL, XQuery Schéma Insight Soft. XML Mind XMLMate XMLMind Editor DTD, Schéma, XSL, XPath DTD, Schéma, XSL, XPath Schema 84

Stylus Studio Editeur graphique de XML et schéma XQuery requête, edition, debaugage et profilage Interrogation et mise à jour de BD relationnelles Support de XPath 2.0 Editeur et moteur XSLT Composeur d appel de Web service 85

Oxygen Editeur XML textuel et arborescent Editeur XSLT 2.0, validation, transformation, debogage, moteurs variés (Xalan, Saxon, XSLTProc, MSXML, ) Editeur XQuery, débogueur, moteur doc. Editeur et validateur XML Schema (diagramme), Relax NG (diagramme), NRL, DTD, Schematron. Moteur de validation multiples: Xerces, XSV, LIBXML, MSXML, MSXML.NET, Saxon, SQC XML Diff et Merge. 86

Principaux poduits de Altova Altova XMLSpy 2006 is the industry standard XML development environment for modeling, editing, debugging and transforming all XML technologies, then automatically generating runtime code in multiple programming languages. Altova MapForce 2006 is the premier data mapping and Web services implementation tool with the power to integrate any combination of XML, database, text, and/or EDI files, and build Web services by mapping between WSDL operations. Altova StyleVision 2005 is the ultimate electronic forms, database report, and stylesheet designer for transforming XML and database content into HTML, PDF and Word/RTF output. StyleVision supports XSLT 1.0/2.0, XSL:FO, and all major database Altova UModel 2006 is the starting point for successful software development. Visually design application models and generate Java or C# code, or reverse engineer existing programs into UML 2.1 diagrams. It is the simple, cost-effective way to draw on UML. Altova DiffDog 2005 is the dedicated differencing utility for developers and power users. This easy, powerful synchronization tool quickly compares files and folders then highlights differences and merges content via an elegant GU Altova Authentic 2005 is a FREE content editor that allows non-technical users to modify content in XML documents and databases. Just fill in electronic forms using the intuitive, word-processor style interface, and your data is instantly updated. 87

Bilan DTD, Schéma, IDE Les DTD définissent la grammaire des documents Elles sont de plus en plus souvent remplacées par des schémas Le standard est un peu complexe (Relax) mais suivi Un IDE est indispensable Et de moins en moins gratuit Questions? Schema 88