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

XML: Plan I. Origines et base 3 II. DTD et Schéma 47

Présentations similaires


Présentation au sujet: "XML: Plan I. Origines et base 3 II. DTD et Schéma 47"— Transcription de la présentation:

1 XML: Plan I. Origines et base 3 II. DTD et Schéma 47
III. XSL et présentation 87 IV. Web Services 141

2 XML: Plan V. Bases de Données XML

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

4 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

5 Présentation et Structuration
Titre Auteur Section Paragraphe 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

6 Vue Balisée Les balises (tags) peuvent porter
<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"> … </Livre> Les balises (tags) peuvent porter plus ou moins de sémantique Origines

7 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 437 membres industriels en novembre 2007 Président: Tim Berners-Lee, inventeur du web MIT Massachussetts Institute of Technology LCS Laboratory for Computer Science INRIA Institut National de la Recherche en Informatique et Automatique ensemble de sociétés et d’organisation telle que : Microsoft , IBM, Intel, Bull, Netscape et bien d’autres Origines

8 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

9 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

10 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

11 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 SGML et 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

12 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

13 Forces de XML Séparation du contenu et de la présentation
Moins confus que HTML Plus simple que SGML Idéal pour l'échange de données semi-structurées Utilisable entre applications hétérogènes Questions ? Origines

14 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

15 Qu'est-ce que SGML ? Une norme internationale :
Standard Generalized Markup Language ISO 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 DTD document instances de DTD permet un balisage sémantique du fond Syntaxe plus permissive que XML Analyseurs (parsers) plus complexes SGML

16 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

17 HTML : présentation Proposé par le W3C comme format de documents sur le Web Langage avec des balises fixes standardisées permettant la mise en forme d’un texte Standard reconnu par tous les navigateurs, très populaire sur le Web Langage remplacé progressivement par XHTML 1.1, HTML épuré conforme aux règles XML Nouvelle version en cours de standardisation XHTML 2.0, pour le web 2.0 <HTML> <HEAD> <TITLE> Exemple </TITLE> </HEAD> <BODY> <H1>Contenu du document</H1> <A HREF = " /dir/test.html"> une référence externe </A> </BODY> </HTML> HTML

18 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 et extractions difficiles : données utiles et mises en forme mixées ; remise en forme de l’ensemble des pages d’un site fastidieuse. Mélange le fond et la forme : méta-données avec la présentation pages conçues pour un type de terminal HTML

19 Feuilles de style CSS Objectifs CSS (Cascading Style Sheet)
spécifier la présentation (les polices, les couleurs, les marges, …) d'un document structuré HTML ou XML CSS (Cascading Style Sheet) mécanisme d’attachement de style aux balises une balise hérite de la parente seulement ce qu'elle spécifie est redéfini Recommandation W3C en 1996 (CSS1) puis 1998 (CSS2) HTML

20 Où placer le code CSS ? Méthode 1  (attribut style) Méthode 2 
(élément style) Méthode 3  (Externe) 20 HTML

21 Exemple de CSS: Mise en forme de la police
Police.html : Police.css : HTML

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

23 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

24 XML : exemple simple 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> SGML XML HTML XHTML 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 XML

25 Concepts du modèle Balise (ou tag ou label) Elément de données
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

26 Exemple complet XML

27 Quiz (1) Le W3C est une fondation américain ?
XML est un format d'échange interopérable ? SGML ne standardise pas un modèle interne ? XML est un sur-ensemble de SGML ? Les DTD sont issues de SGML ? HTML est défini par une DTD SGML ? Un message HTML est en moyenne 2 fois plus compact qu'un message XML ? CSS permet d'associer des attributs de présentation aux tags HTML et XML ? Un élément de données peut contenir des tags ? Deux attributs d'une même balise peuvent porter le même nom ?

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

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

30 Le préfixe permet de retrouver le langage
Espaces de noms (1) Permet de distinguer des tags de même nom Mécanisme intéressant pour l'intégration de contenus préfixe = balise Le préfixe permet de retrouver le langage <fus:Guide xmlns:fus= " xmlns:mic=" xmlns:pj=" <mic:Adresse><ville>Mougins</ville><zip>06212</zip></mic:Adresse> <pj:Adresse>Le Moulin 06 Mougins</pj:Adresse> </fus:Guide> XML

31 Espaces de noms (2) Identifié par une URI (Uniform Resource Identifier) L’URL n’a pas nécessité d’exister Référence souvent le schéma Un namespace déclaré sans préfixe devient le namespace par défaut de tous les éléments descendants Les éléments non qualifiés appartiennent au namespace le plus interne <Livre xmlns=“ <Titre>Tout sur XML</Titre> <Auteur>Joyeux l’analyste</Auteur> <Editeur xmlns:pub=“urn:publishers:publinfo”> <Nom>Microsoft Press</Nom> </Editeur> </Livre> URLs and URNs for namespaces do not have to be “live” – they only need to be unique strings. XML

32 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

33 Exemples simples <Annotation xlink:type="simple" href="note1.xml">1</Annotation> <Auteur xlink:type="simple" title="Créateur" href=" Victor Hugo</Auteur> <Image xlink:type="simple" href="logo.gif"/> XLink et plus

34 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=" degustation#xptr(/child::degustation/child::vin[2])" XLink et plus

35 La galaxie de standards
Dimension métiers ChessML ebXML OASIS cXML Outils applicatifs UBL VoiceML W3C SVG SMIL Outils génériques Dimension technique MathML XHTML XML XSL XSchema DOM SOAP WSDL BPEL RDF … XML

36 Les langages techniques XML (1)
Extensible Markup Language Defines XML documents Infoset Information Set Abstract model of XML data; definition of terms DTD Document Type Definition Non-XML schema XSD XML Schema XML-based schema language XDR XML Data Reduced An earlier XML schema CSS Cascading Style Sheets Allows you to specify styles XSL Extensible Stylesheet Language Language for expressing stylesheets; consists of XSLT and XSL-FO XSLT XSL Transformations Language for transforming XML documents XSL-FO XSL Formatting Objects Language to describe precise layout of text on a page XML

37 Les langages techniques XML (2)
XPath XML Path Language A language for addressing parts of an XML document, designed to be used by both XSLT and XPointer XPointer XML Pointer Language Supports addressing into the internal structures of XML documents XLink XML Linking Language Describes links between XML documents XQuery XML Query Language (draft) Flexible mechanism for querying XML data as if it were a database DOM Document Object Model API to read, create and edit XML documents; creates in-memory object model SAX Simple API for XML API to parse XML documents; event-driven Data Island XML data embedded in a HTML page Data Binding Automatic population of HTML elements from XML data XML

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

39 "Lingua Franca" du 21e 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 ?

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

41 Publication multi-supports
Middleware XMLizer XML Application de publication (XSL) Avantages: Réutilisation dans différents contextes (terminaux, doc, DAB) Mises à jour en base facilitées Base de Données TV Numérique Projet GIE Cartes Bancaires: publication des spécifications de protocoles pour réseau Carte Bancaires vers les fournisseurs et prestataires du GIE Pourquoi XML ?

42 Échange de données: ETL
Mapper Extractor JDBC JDBC Avantages : Flexibilité et réactivité en termes de mise à jour des schémas Compatibilité du datawarehouse avec les outils de datamining SQL existants BD relationnelle Datawarehouse Datamining Projet MEN : Echange de données avec les académies (remontée et descente) Pourquoi XML ?

43 Gestion documents semistructurés
Amendement Serveur d’Applications HTTP GET Requêtes Requêtes HTTP POST Mapping XML-SQL SGBDR Feuille de style XSL Processeur XSL Feuille de style XSL Feuille de style XSL HTML généré Avantages: Saisie en base normalisée Diffusion multi-supports Recherche plein texte puissante 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 ?

44 Échange B2B XML EDI Internet XML EDI Donneur d’ordre Fournisseur
XMLizer Utilisation de XML (en remplacement d’EDI) pour 2 raisons : Coût des RVA (Réseaux à Valeur Ajoutée type AS400) Difficultés d’évolution des formats de messages, quelque peu figé Les messages sont extraits depuis le SI du donneur d’ordre, mais aussi intégrés dans le cas de réponses. Un composant « XML EDI » pilote les échanges en les traçant dans une base XML (Repository XML). Les messages transitent sur Internet et peuvent être visualisés directement sur le site du fournisseur à l’aide d’un simple navigateur.Ils peuvent aussi être intégrés au SI du fournisseur. A partir de ce schéma simple qui permet déjà de journaliser et visualiser les messages échangés, des schémas plus complexes peuvent être élaborés. Donneur d’ordre Internet (SOAP) Fournisseur Projet EDIXML : Expérimentation de la chaîne pour un grand donneur d'ordres Pourquoi XML ?

45 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 XML Binaire Un choix stratégique de direction Pourquoi XML ?

46 Quiz (2) Un parser transforme un document XML texte en arbre étiqueté ? L'unicode est un code multi-facette ? Une instruction de traitement peut invoquer un processeur de style particulier ? Les espaces de nommage sont des domaines de discours caractérisés par une URI ? L'espace de nom le plus interne est appliqué par défaut ? Un XLink peut référencer plusieurs documents XML ? Un XPointeur remplace un XLink ? Il existe des centaines de jargons XML métiers ou techniques ? Il faut utiliser XML pour les échanges si l'on ne veut pas être ringard ? XML c'est du semi-structuré ?

47 II. Conception et Manipulation des Documents
1. Introduction 2. DTD 3. Schéma 4. Outils

48 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

49 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

50 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

51 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

52 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) > DTD

53 Exemple d'élément composé
 <!ELEMENT personne (nom, prenom+, tel?, adresse) >  <!ELEMENT nom (#PCDATA) >  <!ELEMENT prenom (#PCDATA) >  <!ELEMENT tel(#PCDATA) >  <!ELEMENT (#PCDATA) > <!ELEMENT adresse (ANY) > <personne>  <nom>Hugo</nom>  <prenom>Victor</prenom>  <prenom>Charles</prenom> <tel> </tel>  <adresse><rue></rue><ville>Paris</ville></adresse>   </personne> DTD

54 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

55 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

56 Exemple de DTD <!DOCTYPE Restaurant [ <!ELEMENT Restaurant (Nom, Adresse, (Telephone | Manager), Menu?) > <!ATTLIST Restaurant categorie CDATA #REQUIRED type CDATA #FIXED "francais" > <!ELEMENT Nom (#PCDATA)> <!ELEMENT Adresse (No, Rue, Ville)> <!ELEMENT No (#PCDATA)> <!ELEMENT Rue (#PCDATA)> <!ELEMENT Ville (#PCDATA)> <!ELEMENT Telephone (#PCDATA)> <!ELEMENT Manager (#PCDATA)> <!ELEMENT Menu EMPTY> <!ATTLIST Menu Nom CDATA #REQUIRED> ] DTD

57 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 " DTD

58 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 XML-schema du W3C Questions ? DTD

59 Quiz (3) Il est possible de définir une DTD et un schéma de structures différentes pour un même document XML ? Une DTD externe définit une grammaire commune à plusieurs documents ? Une balise peut être composée d'autres balises groupées obligatoirement en séquences ? Un attribut peut être à la fois clé unique (ID) et référence (IDREF) ? #REQUIRED signifie que l'attribut ne peut être nul ? Une ENTITE paramètre est un groupe d'éléments réutilisable ? Les DTD permettent de bien modéliser la structure mais mal les types de données ?

60 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

61 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

62 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

63 Les types simples (1) string normalizedString token byte unsignedByte
Confirm this is electric normalizedString Confirm this is electric token byte -1, 126 unsignedByte 0, 126 base64Binary GpM7 hexBinary 0FB7 integer , -1, 0, 1, positiveInteger 1, negativeInteger , -1 nonNegativeInteger 0, 1, nonPositiveInteger , -1, 0 int -1, unsignedInt 0, Schema

64 Les types simples (2) boolean time dateTime duration date gMonth gYear
long -1, unsignedLong 0, short -1, 12678 unsignedShort 0, 12678 decimal -1.23, 0, 123.4, float -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN double boolean true, false 1, 0 time 13:20:00.000, 13:20: :00 dateTime T13:20: :00 duration P1Y2M3DT10H30M12.3S date gMonth --05-- gYear 1999 Schema

65 Les types simples (3) language ID IDREF IDREFS ENTITY ENTITIES
gYearMonth gDay ---31 gMonthDay Name shipTo QName po:USAddress NCName USAddress anyURI language en-GB, en-US, fr ID "A212"  IDREF "A212" IDREFS "A212" "B213" ENTITY ENTITIES NOTATION NMTOKEN, NMTOKENS US Brésil Canada Mexique Schema

66 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

67 Les types complexes <xsd:complexType name="Addresse">
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="Addresse"> <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:sequence> <xsd:attribute name="pays" type="xsd:NMTOKEN" /> </xsd:complexType> Schema

68 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 : <xsd:complexType name="AdresseC"> <xsd:complexContent> <xsd:extension base="Adresse"> <xsd:sequence> <element name=“continent” type=“xsd:string”/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> Schema

69 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

70 XML Schema : exemple (1) <xsd:schema xmlns:xsd=" <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

71 XML Schema : exemple (2) Schema <xsd:complexType>
<xsd:complexType name="ProduitType"> <xsd:sequence> <xsd:element name="produit" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <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:attribute name="num_prod" type="xsd:positiveInteger" use="required"/> </xsd:complexType> </xsd:sequence> </xsd:complexType> </xsd:schema> Schema

72 Diagramme XML Spy Schema

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

74 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 = " ..." schemaLocation = " ..." /> Possibilité d'étendre un schéma <redefine schemaLocation=" ..."/> Extensions ... </redefine> Schema

75 Autres possibilités ... Target Namespaces & Unqualified Locals
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

76 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 les données avec UML (classes et relations) complémenter le modèle (types, attributs ou éléments) générer un modèle logique hiérarchique (messages) transformer en schéma XML Schema

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

78 Exemple de 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 Schema

79 HyperModel et Eclipse Schema

80 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.) IDE

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

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

83 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. IDE

84 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. IDE

85 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 ? IDE

86 Quiz (4) Un schéma c'est comme une DTD avec en plus des types de données simples, composés et extensibles ? Les types complexes se construisent avec les constructeurs liste et tableau ? Le type simple anyURI désigne une URL ? La commande < xsd: complexType> permet de déclarer un type composé nommé ? L' héritage de type s'effectue par ajout de contraintes ? Il est facile d'étendre un schéma existant ? Passer d'un modèle UML à un modèle XML nécessite d'orienter les associations ? Altova XMLSpy est sans concurrent ?

87 III. Publication et Traitement avec XSL
XPATH XSLT XSL-FO Traitement de documents Conclusion

88 1. XPath : l'adressage XML XPath
Expressions de chemins dans un arbre XML Permet de sélectionner des nœuds par navigation Document XML ? XPath

89 XPath XML Path Language Expressions de chemins communes à :
recommandation W3C pour expressions de chemins acceptée le 16 novembre 1999 version 2 acceptée depuis janvier 2007 Expressions de chemins communes à : XSL Xpointer (liens) XQuery (queries) Xpath permet de rechercher un élément dans un document d'adresser toute sous partie d'un document XPath

90 XPath - Parcours d'arbre
XPath opère sur l'arbre d'un document racine section livre Bonaparte chapitre Neige Les chatiments titre @auteur "Hugo" <livre auteur = "Hugo"> <titre>Les chatiments</titre> <chapitre> <section>Buonaparte </section> <section>Neige</section> </chapitre> </livre> XPath

91 XPath - Expression de chemins
Une expression de chemins spécifie une traversée de l'arbre du document : depuis un nœud de départ vers un ensemble de nœuds cibles les cibles constituent la valeur du cheminement Un chemin peut être : absolu commence à la racine /étape1/…/étapeN relatif commence à un nœud courant étape1/…/étapeN XPath

92 Syntaxe et sémantique Cheminement élémentaire
direction::sélecteur [predicat] Directions parent, ancestor, ancestor-or-self child, descendant, descendant-or-self preceding, preceding-sibling, following, following-sibling self, attribute, namespace Sélecteur nom de nœud sélectionné (élément Prédicat [Fonction(nœud) = valeur] XPath

93 EXEMPLES Sections d'un chapitre Texte du chapitre 1 section 2
/child::livre/child::chapitre/ child::section /livre/chapitre/section Texte du chapitre 1 section 2 /descendant::chapitre[position() = 1] /child::section[position() = 1] /child::text() //chapitre[0]/section[1]/text() Remonter à l’auteur du livre parent::section/ancestor::livre/ racine section livre Bonaparte chapitre Neige Les chatiments titre @auteur "Hugo" XPath

94 XPath - Synthèse XPath

95 XPath 2.0 Types des schémas et séquences supportés
Elimination des « Result Tree Fragments » Support des groupes de noeuds Introduction de fonctions d'agrégats Support des boucles For et des conditions Support des expressions régulières Documents multiples en entrée et sortie Nouvelles fonctions et opérateurs Intégration de fonctions utilisateurs possible XPath

96 2. XSLT : la présentation Permet de transformer un document
régulier ou irrégulier de XML à XML, XHTML est un cas particulier De XML à présentation (HTML, texte, rtf, pdf, etc.) Un document est un arbre Le processeur XSL parcourt l'arbre et applique les règles de transformations vérifiées (à condition vraie) aux nœuds sélectionnés Un document est produit en sortie XSLT

97 Format (XML) pour Word, Excel
Publications avec XSL Plusieurs formats de publication pour un contenu XSL permet la présentation sur des terminaux variés XSL Processor XML Document Format ( Postcript) Format (XML) application e.Commerce format (WML) Browser (XHTML, DHTML, HTML) Format (XML) pour Word, Excel Stylesheet XSLT

98 Architectures HTML XML Affichage S E R V E U R Programme XML HTML
ASP ou JSP S E R V E U R Programme XML HTML Processeur XSL Affichage Fichier XML XML Affichage Traitement Processeur XSL Base de données XSLT

99 Transformation par Jscipt côté client
<html> <body> <script type="text/javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("exemple.xml") // Load XSL var xsl = new ActiveXObject("Microsoft.XMLDOM") xsl.async = false xsl.load("exemple.xsl") // Transform document.write(xml.transformNode(xsl)) </script> </body> </html>

100 Les feuilles de style Une feuille de style XSL
est un document XML de racine <xsl:stylesheet> contient une liste de règles de transformation de l'arbre d'entrée en arbre de sortie <xsl:template> Chaque règle (<xsl:template>) précise: Une condition spécifiant le sous-arbre du document d’entrée auquel elle s’applique (match=) Une production spécifiant le résultat de l’application de la règle (contenu) Il s'agit de règles de production classiques If <condtition> then <production> Codées en XML avec espace de nom xsl: XSLT

101 Exemple de document <?xml version="1.0" ?> <Guide>
<Restaurant Categorie="**">  <Nom>Le Romantique</Nom> <Adresse>  <Ville>Cabourg</Ville>   <Dept>Calvados</Dept>   </Adresse>  </Restaurant> <Restaurant Categorie="***">  <Nom>Les TroisGros</Nom> <Ville>Roanne</Ville>   <Dept>Loire</Dept>   </Adresse> </Guide> XSLT

102 Exemple de feuille de style XSL
<?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl=" <xsl:template match="/"> <html><head><B>ESSAI XSL</B></head> <body><xsl:apply- templates/></body></html>  </xsl:template> <xsl:template match="Guide">  <H1>BONJOUR LE GROUPE XML</H1>   <H2>SUIVEZ LE GUIDE</H2>   <xsl:apply-templates />   <xsl:template match="Restaurant"> <P> <I>Restaurant :</I>   <xsl:value-of select="Nom"/></P>  </xsl:template>  </xsl:stylesheet> XSLT

103 Les règles de production
Définition des règles par <xsl:template …> Attributs match: condition de sélection des nœuds sur lesquels la règle s'applique (XPath) name: nom de la règle, pour invocation explicite (en conjonction avec <call-template>) priority: priorité, utilisé en cas de conflit entre deux règles ayant la même condition Exemples <xsl: template match="/"> <xsl: template match="auteur" name="R1" priority="1"> XSLT

104 La génération du résultat
Le contenu de l'élément <xsl:template> est la production: Les éléments du namespace xsl sont des instructions qui copient des données du document source dans le résultat Les autres éléments sont inclus tels quels dans le résultat Instructions pour: Parcourir l'arbre du document source Copier le contenu du document source dans le résultat Parcours de l'arbre: <xsl:apply-templates>, <xsl:for-each> Copie du contenu du nœud sélectionné: <xsl:value-of select= … > XSLT

105 Résumé des commandes <xsl:template>
définir une règle et son contexte <xsl:apply-templates /> appliquer les transformations aux enfants du nœud courant <xsl:value-of select … /> extrait la valeur d'un élément sélectionné à partir du nœud courant <xsl:for-each> définir un traitement itératif <xsl:pi> générer une instruction de traitement <xsl:element> générer un élément <xsl:attribute> générer un attribut <xsl:if> définir un traitement conditionnel   XSLT

106 Processeurs XSLT Processeurs XSLT conformes à la spécification:
Apache Group ( Xalan Oracle XDK ( XML Parser/ XSLT Proc. MSXML et System.xml ( packages .NET James Clark ( XT Saxon XML (saxon.sourceforge.net): XSLT Proc. libXML, libXSLT (Unix C) Browsers Microsoft IE 5 ou plus Netscape depuis la V6 Mozilla Firefox depuis la V1 Opera depuis la V7 XSLT

107 Quelques éditeurs StylusStudio : www.stylusstudio.com
Edit, Map, Debug XSLT Stylesheets Visual, Easy-to-Use Tools for XSLT! EditiX : XSLT Debugger XML XSD XSL SVG XSL-FO MoreMotion : Fast XSLT Stylesheet Development With High-End Wysiwyg Editor Oxygen XSLT Editor : Edit and debug your XSL stylesheets Transform XML using XSLT and FOP Altova Style Vision : Visual stylesheet design from databases XSLT

108 Editeur XSLT (Sonic)

109 Mapper XSLT à XSLT (Sonic)

110 Bilan XSLT XSLT est un langage très puissant de transformation d'un arbre XML en un autre XSLT permet en particulier de publier des données XML sur le Web par transformation en un document XHTML standard XSLT est très utilisé : Pour publier des contenus XML Pour transformer des formats (EAI, B2B) XSLT

111 Quiz (5) XPath permet d'adresser tous les descendants d'un nœud ?
XPath permet d'appliquer des fonctions standards sur un nœud et de comparer le résultat à une valeur ? XPath permet de joindre deux arbres XML sur valeur de feuilles ? XSL est basé sur le paradigme "règle conjonctive" ? Un moteur XSL est nécessaire sur un serveur d'entreprise ? JavaScript n'a rien à voir avec XSL ? Un template XSL est appliqué quand il est appelé par un autre template ? Deux templates à conditions vraies s'annulent ? Une production XSLT peut incorporer l'appel à des commandes XSLT et à des fonctions Java ?

112 3. XSL-FO : le formatage Nommé officiellement XSL
Standard depuis octobre 2001 Permet les mises en pages sophistiquées sur écran, papier, ... Génération de PDF ou RTF Applique des objets de mise en forme aux données XML Utilisé notamment pour la PAO XSL-FO

113 Complémentaire à XSLT Peut s'appliquer aux résultats des feuilles XSLT
XSL-FO

114 Organisation du document
Un document FO est formé d'un élément fo:root qui comprend deux parties distinctes une description des modèles de pages fo:layout-master-set une description du contenu fo:page-sequence Le contenu comporte : Des flux contenant les données mêmes du document Des éléments statiques dont le contenu se répète sur les pages (en-têtes courants, no de page, etc.) XSL-FO

115 Structure de la feuille fo:root
<?xml version="1.0" encoding="ISO "?> <fo:root xmlns:fo=" <fo:layout-master-set> <fo:simple-page-master master-name="A4"> <!-- Template de page ici --> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="A4"> <!-- Contenu de la page ici --> </fo:page-sequence> </fo:root> Définition des masques de pages (1 à N) Définition des contenus de chaque page XSL-FO

116 Modèle de page Page découpée en régions Les régions ont des marges
Fixées par des attributs dans le masque de page Les flux de données sont envoyés les régions XSL-FO

117 Objets de formatage Les objets de formatage sont multiples :
<fo:block> utilisé pour les blocs de textes, paragraphes, titres… <fo:display-rule> ligne de séparation <fo:external-graphic> zone rectangulaire contenant un graphisme (SVG) Ils possèdent de nombreuses propriétés Pour un block on peut définir la marge gauche et droite l’espace avant et après le paragraphe la couleur du texte ………... XSL-FO

118 XSL-FO: hello World <?xml version="1.0" encoding="iso-8859- 1"?>
<fo:root xmlns:fo=" ormat"> <fo:layout-master-set> <fo:simple-page-master master- name="my-page"> <fo:region-body margin="2 cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my- page"> <fo:flow flow-name="xsl-region-body"> <fo:block>Hello, world!</fo:block> </fo:flow> </fo:page-sequence> </fo:root> Element Root Permet de définir le namespace XSL-FO Layout master set Permet de déclarer une ou plusieurs page masters (masque) et page sequence masters pour définir la structure des pages (ici une de 2 cm de marges) Page sequence Les pages sont groupées en séquences et structurées selon la référence au masque. Flow C'est le container du texte utilisateur dans le document. Le nom du flot lit le texte à une zone de la page définie dans le masque. Block C'est le bloc de formatage qui inclut un paragraphe de texte pouvant être produit pas XSLT. XSL-FO

119 Fonctionnalités Pages portrait ou paysage Pages recto-verso
Page de tailles variées Marges multiples Colonnes multiples Entête et pieds de page Caractères unicode Formatage multi-langages Tables des matières générées Multiple directions d'écritures Numérotation des pages Graphiques et SVG Tables, avec entêtes, lignes et colonnes fusionnables Listes Zones flottantes Tris à l'édition Notes de bas de pages XSL-FO

120 Les processeurs XSL-FO
FOP (Apache Group) Open Source Formating Object Processor Génère du PDF JFOR (Sourceforge) Open Source Génère du RTF XSL Formatter Antenna House RenderX Génère du PDF StyleVision Altova Scriptura InventiveDesigners Autres Arbortext, Adobe, Xinc, XMLPDF, APOC, XSL-FO to TeX XSL-FO

121 Bilan XSL XML = format pour la production de publications échangeables sur le web : production d’une source unique en XML ; XSLT = génération automatique de présentations multiples ; XSL-FO = génération de présentations soignées avec pages maîtres et blocs formatés. XSL peut être vu comme le langage de programmation de XML … Questions ? XSL

122 4. XML: le traitement par programme
XML Schema (ou DTD) Manipulation de l'arbre XML <ville>Paris</ville> <pays>France</pays> <temp echelle="C">18</temp> Format interne Structures de données XML DOM Parser Bien formé Valide événements – call back <ville>Paris</ville> SAX XSL Stylesheet Mal formé/Invalide XSLT XSLFO (X)HTML <city>Paris</city> <temp degree="F">65</temp> WML XML PDF RTF, Word Parser

123 L'interface DOM Standard du W3C fait pour HTML et XML
Structure d'objets pour représenter un document Résultat d'un "parser" Arbre d'objets reliés entre eux Interface objet pour naviguer dans un document Orientée objet Peut être utilisée en: Java, C++ C#, VB Python, PHP Parser

124 Principaux parseurs API générique J2EE JAXP J2EE (Sun JDK) Oracle
Document XML API générique J2EE JAXP J2EE (Sun JDK) Oracle SDK Oracle Microsoft MSXML Apache (Java, C++) Xerces Parseur DOM Arbre DOM API DOM Application Parser

125 Exemple d'arbre DOM <Guide> </Guide>
Document Racine du document NodeList <Guide> Element NodeList <Restaurant> <Bar> <Guide> <Restaurant id="R1">Le meilleur restaurant</Restaurant> <Bar/> </Guide> Element Element NamedNodeMap Attr Id="R1" NodeList Text Le meilleur restaurant Parser

126 Quelques interfaces de base
Document createElement (Nom_Element): créer un élément avec le nom spécifié en paramètre. createComment (commentaire): créer une ligne de commentaires dans le document. createAttribute (Nom_Attribut): créer un attribut avec le nom pris en paramètre. getElementsByTagName (nom_Tag): retourne tous les descendants des éléments correspondants au Nom_Tag. Nœud insertBefore (Nouveau_Noeud, Noeud_Reference): insère un nouveau nœud fils avant le " nœud référence" déjà existant. replaceChild (Nouveau_Noeud, Ancien_Noeud): remplace le nœud "Ancien_Noeud" par le nœud "Nouveau_Noeud". removeChild (Nœud): supprime le nœud entré en paramètre de la liste des nœuds. appendChild (Nouveau_Noeud): Ajoute un nouveau nœud a la fin de la liste des nœuds. hasChildNodes(): Retourne vrai si le nœud possède un enfant Parser

127 Autres interfaces Interfaces fondamentales Interfaces étendues XML
DOMImplementation Document Comment DocumentFragment Element Attr(ibute) NamedNodeMap CharacterData Text Interfaces étendues XML ProcessingInstruction DocumentType CDATASection Notation Entity EntityReference Parser

128 Exemple d'utilisation Document: <nom ville ="Paris">
Public class ExempleDOM public static main (String argc[]) throws IOException, DOMExcetion {XMLDocument xmlDoc = new XmlDocument(); // creation des nœuds ElementNode nom = (ElementNode) xmlDoc.createElement("nom"); ElementNode prenom = (ElementNode) xmlDoc.createElement("prenom"); ElementNode nomfam = (ElementNode) xmlDoc.createElement("nomfam"); // creation de l'arbre xmlDoc.appendChild(nom); nom.appenChild(prenom); prenom.appendChild(xmlDoc.createTextNode("Jean"); nom.appenChild(nomfam); nomfam.appendChild(xmlDoc.createTextNode("Dupont"); // positionnement d'un attribut nom.setAttribute("ville", "Paris"); // sortie System.exit(0); } } Document: <nom ville ="Paris"> <prenom> Jean </prenom> <nomfa> Dupont </nomfa> </nom> Parser

129 Bilan DOM Une interface objet standard Performance limitée DOM 2.0
Navigation dans l'arbre XML Traitements spécifiques Performance limitée Place mémoire importante Traitement à la fin de l'analyse DOM 2.0 API indépendante de la structure mémoire DOM Level 3 : XPath Support direct de XPath Définition d'un XPath Evaluator Events Modèle d'événements Associés à un nœud Propagés dans l'arbre Style Accès aux styles Mapping complet Load and Save Stockage de l’arbre Parser

130 L'interface SAX SAX (Simple API for XML) Types d'événement :
modèle simplifié d'événements développé par un groupe indépendant. Types d'événement : début et fin de document ; début et fin d'éléments ; attributs, texte, … . Nombreux parseurs publics XP de James Clark, Aelfred, Saxon MSXML3 de Microsoft Xerces de Apache JAXP de SUN Parser

131 Principe de fonctionnement
Méthodes utilisateur Evénement startDocument Parser Document XML Stream XML Evénement startElement …. Evénement endDocument Content Handler Parser

132 Les méthodes essentielles
XMLReader setContentHandler setErrrorHandler parse ContentHandler startDocument endDocument startElement endElement characters ErrorHandler fatalError error warning Parser

133 Exemple SAX et DOM startDocument () startElement (personne)
startElement (nom) characters (Cover) endElement (nom) startElement (prenom) characters (Harry) endElement (prenom) startElement (adresse) startElement (rue) characters (Stendhal) endElement (rue) startElement (ville) characters (Paris) endElement (ville) endElement (adresse) endElement (personne) endDocument () <personne> <nom> Cover </nom> <prenom> Harry </prenom> <adresse> <rue> Stendhal </rue> <ville> Paris </ville> </adresse> </personne> personne nom prenom adresse rue ville #text: Cover #text: Paris #text: Stendhal #text: Harry Parser

134 DOM versus SAX DOM utilise SAX pour la construction de l’arbre d’un document XML SAX est plus léger que DOM Au-dessus de DOM, il est possible d  ’implémenter un « method caller » ... Parser

135 Integration : API JAXP Java API for XML Parsing Objectif
JAXP est une d'API standard J2EE permettant d'effectuer des traitements XML qui englobe : SAX (SAX 2.0) DOM (DOM Level 2) la manipulation de transformations XSLT Objectif Fournir une couche d’abstraction permettant d’utiliser n’importe quel analyseur SAX/DOM ou processeur XSL JAXP 1.3 est inclus dans le JDK de Sun Java WSDP 2.0, Java SE 5.0, disponible sur Java.Net Parser

136 Le mapping objet (Data Binding- JAXB)
Définition Mapping entre un document XML et un graphe d’objets métier C++ ou Java Développements manuels Interface générée à l’aide d’outils de Data Binding Objets C++ Objets Java Objets Java Parsing Xerces C++ Parsing XDK Java Binding Java XML XML XML Mapping 136

137 Principes Compilation du schéma en classes Java
Traduction des documents en objets Possibilité de publier les objets en XML compile Schema Classes instance of conforms unmarshal Objects Documents marshal Mapping

138 Avantages L’activité de développement "parsing" est réduite
Gain en coût de développement des interfaces Les applications peuvent se concentrer sur le fonctionnel Les développeurs n'ont pas à se soucier du mapping XML Les Systèmes Techniques sont simplifiés Capitalisation sur l’interface (utilisation, évolution, …) Gain en terme de fiabilité (fin de l’utilisation de parseurs variés, parfois écrits à la main) Les performances de l’interface sont optimisées Les outils de mapping sont intégrés aux serveurs J2EE = JAXB .NET = mapper Mapping

139 5. Conclusion Un ensemble d’outils pour traiter du XML: Questions ?
Processeurs XSLT/XSLFO Analyseurs validants Intégrés aux serveurs d’applications J2EE = JAXP .NET = MSXML En évolution permanente Questions ?

140 Quiz (6) XSLFO formate du XML comme CSS formate du HTML ?
Avec XSFO, une page est divisée en 4 marges et 8 régions ? Une feuille de style <fo:root> projette un flux XML dans un modèle de page écrit en XSLT ? SVG est un standard du monde XML pour les cartes 3D ? Un paser DOM produit un flux d'événements alors qu'un parser SAX produit un arbre d'objets ? Les objets DOM sont des éléments ou des documents ? Parser et valider un flux XML à la volée est impossible ? JAXP est une API de Microsoft ? JAXB évite le travail de mapping en projetant le XML sur des objets métiers ?

141 IV. Web Services Objectifs Architecture Protocole web (SOAP)
Composition et de services web Position du marché Conclusion

142 1. Besoins des Applications Web
Le Web classique (1.0) Conçu pour les applications à interactions humaines Partage d'information publiée par les serveurs E-commerce de type B2C Extensions nécessaires Accès à l'information depuis des programmes Accès par le Web à des applications existantes Interopérabilité entre applications sur Internet/Intranet Processus de e-commerce B2B automatisés Sociétés et clients doivent pouvoir travailler ensemble Eviter le danger de « mort par isolation » Introduction

143 Principes des services Web
Proposer une plate-forme de traitement distribuée autour d'Internet/Intranet Permettre l'interopérabilité totale entre composants Offrir un modèle de composants simple Modules avec interface composée de fonctions Paramètres structurés et diversifiés en place des URL longues contraignantes (ASCII, plats,  4K) Permettre de découvrir dynamiquement les services Annuaire de services et service de recherche Offrir des outils d'intégration de composants A l'échelle de l'Internet ou de l'Intranet Introduction

144 Exemple d'applications
Diffusion d'information horaires, incidents, états de stocks cours de bourse, entrées d'annuaires, etc. Contrôle d'information autorisation de cartes de crédits authentification d'un client Mise à jour de logiciels Documentation automatique présentation, marketing, veille technologique librairie électronique, manuels, maintenance, etc. communication et "knowledge management" Commerce électronique présentation, sélection, transaction, médiation, etc. Introduction

145 2. Architecture Web Services
SERVEUR Service Provider SERVEUR Service Provider Request Publish Publish Service Registry SERVEUR Service Provider Request Publish SERVEUR Publish Request Find Service Provider SERVEUR Request WEB-HTTP Service Requester CLIENT Architecture

146 Qu'est ce qu'un Web Service ?
Définition [W3C] Un Web service est un composant logiciel identifié par une URI, dont les interfaces publiques sont définies et appelées en XML. Sa définition peut être découverte par d'autres systèmes logiciels. Les services Web peuvent interagir entre eux d'une manière prescrite par leurs définitions, en utilisant des messages XML portés par les protocoles Internet. Exposition Langage WSDL utilisé pour décrire le service Similaire à IDL mais basé sur XML Activation Protocole Web au-dessus de HTTP (RPC XML, SOAP) Autres protocoles possibles … Architecture

147 Les constituants Service Provider (Fournisseur de service)
Application s'exécutant sur un serveur et comportant un module logiciel accessible par IxxNet en XML Service Registry (Annuaires de service) Annuaire des services publiés par les providers (UDDI) Géré sur un serveur niveau application, entreprise ou mondial Service Requester (Demandeur de service) Application cliente se liant à un service et invoquant ses fonctions par des messages XML (SOAP) Architecture

148 Description of providers
Vue d'ensemble Interface Service Provider Application Find? W S D L Description of providers and services UDDI Category Provider WSDL Service Publication Encodeur SOAP Interface client XML Service Call Translateur HTTP/S Architecture

149 Description des services: WSDL
Elément Type Types des paramètres (schéma XML) Elément Message Appel et retour d'opération Elément Port type Groupe d'opération Elément Binding URL de l'opération Type de protocole Service Port (e.g. Port Binding (e.g. SOAP) Binding Abstract interface portType operation(s) inMessage outMessage Architecture

150 Description en WSDL <definitions name = "..." xmlns: …>
<types> <!--Définition des types de données; basés sur ceux des schémas --> … </types>  <message> <!--Déclaration des messages (entrées et sorties)--> … </message> <portType> <!--Déclaration des opérations (par association des messages)--> … </portType> <binding> <!--Définition de la liaison WSDL – SOAP (noms d'actions et codages)--> </binding> <service name= " … " > <!--Déclaration des ports (groupes d'opérations et protocoles d'accès)-->… </service> </definitions> Architecture

151 Exemple: GetLastTradePrice
<?xml version="1.0"?> <definitions name="StockQuote"> <types> <schema> <element name="TradePriceRequest"> <complexType> <all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport=" <operation name="GetLastTradePrice"> <soap:operation soapAction=" <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location=" </port> </service> </definitions> Architecture

152 Annuaire des services: UDDI
Universal Description, Discovery and Integration Annuaire des services décrit par un document WSDL, spec. EJB, autre … Accessible en SOAP Fonctions Enregistrer votre société Enregistrer des services Enregistrer des opérations Découvrir des services Annuaire UDDI Annuaire UDDI Gérant de requêtes Enveloppe + Document Dde de Service Programme Architecture

153 Contenu de l’annuaire Pages blanches (businessEntity)
BusinessKey Name Description CategoryBag BusinessServices Pages jaunes (businessService) ServiceKey BindingTemplates Pages vertes (bindingTemplates) BindinKey AccessPoint Contenu défini par un schéma XML Spécifications pour réplication BusinessEntity tModel Spécifs d’interfaces et taxonomies BusinessService Publisher Assertion Binding Templates Relations entre deux parties Infos techniques Architecture

154 Principaux fournisseurs
IBM UDDI Registry Un registre UDDI avec des fonctionnalités de recherche www-3.ibm.com/services/uddi/ Microsoft UDDI Business Registry (UBR) uddi.microsoft.com/default.aspx SAP UDDI Business Registry Public pour l'instant Systinet Registry Support complet de UDDI V3 Oracle Application Server UDDI Registry otn.oracle.com/tech/webservices/htdocs/uddi/ Architecture

155 Client Web de Recherche
Architecture

156 3. SOAP Inspiré du RPC DCE adapté à XML
Appel de procédure distante sur Internet Appelant Stub ou Proxy Appelant Skeleton ou Listener Appelé Souche Réseau d'interconnexion Souche Appelé SOAP

157 Qu'est-ce-que SOAP ? Simple Object Access Protocol
Ni simple, ni objet … Invocations de fonctions en XML au-dessus de HTTP : Pour accéder services, objets et serveurs Indépendant de toute plate-forme Codage universel XML par opposition aux spécifiques : DCOM - DCE/NDR CORBA - IIOP/CDR JAVA - RMI/JRMP RDA - XDR Résolution des problèmes de session, sécurité, transaction … Associé à WSDL pour publication d'interfaces SOAP

158 Un échange type SOAP Messages SOAP Appel Application Cliente HTTP
Port de connexion (URL) Pare-feu Pare-feu Messages SOAP Procuration d'interface Appel Translateur SOAP Application Cliente HTTP RPC local Réponse Parser XML Parser XML Serveur d'application CLIENT SERVEUR SOAP

159 Eléments d'un message Envelope Header Body
Élément pouvant contenir des déclarations d'espaces de noms ou des sous-éléments Header Élément optionnel fils de Envelope Permet des extensions telles que authentification, session, etc. Body Élément obligatoire fils de Envelope Définit la méthode appelée, contient les paramètres Peut contenir un élément Fault en cas d'erreur SOAP

160 Structure d'un message SOAP Protocol Headers
Entête de protocoles (HTTP, SMTP, …) SOAP Envelope <Envelope> SOAP Header <Header> SOAP Body <Body> SOAP

161 Exemple www.stockquoteserver.com float GetLastTradePrice (Symbol)
Le dialogue : Application Application SOAP Request Interface Interface Reply SOAP SOAP HTTP HTTP Error SOAP

162 La requête POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI#GetLastTradePrice" <SOAP:Envelope xmlns:SOAP="    <SOAP:Body>        <m:GetLastTradePrice xmlns:m="Some-URI">            <symbol>DIS</symbol>        </m:GetLastTradePrice>    </SOAP:Body> </SOAP:Envelope> Standard HTTP SOAP

163 La réponse HTTP/ OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP:Envelope xmlns:SOAP="    <SOAP:Body>        <m:GetLastTradePriceResponse xmlns:m="Some-URI">            <Price>34.5</Price>        </m:GetLastTradePriceResponse>    </SOAP:Body> </SOAP:Envelope> Standard HTTP SOAP

164 Exemple: Google Search requests Cache requests Spelling requests
Soumet une requête avec un ensemble de paramètres à Google Web APIs service et reçoit en réponse un ensemble de résultats de recherche. Cache requests Soumet une URL à Google Web APIs service et reçoit en réponse le contenu de l'URL lors de la dernière visite du crawler Google. Spelling requests Soumet une requête à Google Web APIs service et reçoit en réponse une suggestion de correction orthographique pour la requête. SOAP

165 Bilan SOAP Protocole d’invocation de services Web
Lisible et extensible Au-dessus de HTTP Description en WSDL Possibilité d’attachements MIME (PDF, GIF, BIN, …) Pousser par Microsoft, IBM, BEA, … CORBA ou DCOM « killer »? Associé à nomination des objets Véritable échange de messages entre objets Performance ? Questions ? SOAP

166 Quiz (7) Le Web classique est basé sur HTTP qui ne supporte pas directement l'échange de données typées et composites ? La démarche composant objet est reprise telle quelle dans les WS ? Pour être utilisable, un WS doit être répertorié dans un annuaire UDDI ? WSDL permet de décrire un WS comme un type abstraits lié ? Les paramètres d'un WS sont typés avec les types des DTD ? Un annuaire UDDI est un méta-service ? SOAP permet d'invoquer un WS par un message XML avec header ? SOAP est le concurrent de HTTP ? SOAP est lourd et gagne a être remplacé par HTTP en Web 2.0 ? L’architecture REST propose un autre protocole pour invoquer des WS ? SOAP supporte cryptage, session et transaction ?

167 4. Composition de Services Web
Objectifs Modéliser des processus métiers (business process) Composer des services Web distribués Piloter l'exécution Orchestration d'activités Echanges XML sûrs Gestion de transactions Business Process Management Workflow d’activité Exemple : réservation Début Réserver Avion Louer Voiture Train Hotel OK ? Echec Succès oui non BPM

168 Objectifs Alliances entre business pour offrir des services intégrés à valeur ajoutée en combinant des services existants Réutilisation et extension de services existants Support pour la planification, la définition et l'implémentation de services composés Développement d'applications distribuées composées de services web Fourniture d’outils avec interfaces graphiques permettant de déclarer les compositions sans programmer BPM

169 Les briques à standardiser
Choreography - CDL4WS Business Processes Orchestration - BPEL4WS Transactions Quality of Service WS-Messaging WS-Security Notifications Quality Management UDDI Discovery WSDL Description Description SOAP Message XML HTTP, IIOP, JMS, SMTP Transport BPM

170 WS-Messaging Objectifs : Moyens
Assurer le transfert fiable de messages en présence de pannes Identifier et tracer les messages S’intégrer aux en-têtes SOAP Moyens Numérotation des messages par séquences Accusés de réception BPM

171 WS-Transaction Objectifs Moyens : deux modèles intégrés
Permettre l’atomicité des transactions courtes Gérer efficacement les transactions longues multi-sites Supporter des business process fiables Moyens : deux modèles intégrés Atomic transaction (AT) Utilisé pour assurer l’atomicité d’activités de courte durée Intégration du protocole de validation en deux étapes Business Activity (BA) Utilisé pour coordonner des activités de longues durées Intégration des sagas avec des compensations de fonctions Les messages de contrôle s’intègrent aux entêtes SOAP BPM

172 WS-Security : Fonctions de base
Authentification: Qui a envoyé ce message ? Attestations (Credentials) Login/Password Certificat digital Autorisation: Que peut faire cet utilisateur ? Droits d’accès accordés aux utilisateurs Utilisation de rôles pour grouper les droits Confidentialité: Qui peut lire ce message ? Cryptage des données Clés secrètes ou couple publique/privée pour crypter/décrypter Intégrité: Quelqu’un a-t-il modifié ce message message? Signature digitale pour comparer messages envoyés et reçus BPM

173 WS-Security : Les standards
XKMS (XML Key Management Specification) Gestion des clés publiques et privées Encapsule les architectures PKI XML Signature – W3C Ajoute une signature codée en XML au message La signature est le cryptage d’un digest par clé privé Le digestest obtenu par hachage du document signé XML Encryption – W3C et IETF Cryptage des messages Possibilité de crypter des fragments différemment Le fragment crypté est remplacé par du binaire base 64 BPM

174 WS-BPEL : Business Process Modelling
Graphe acyclique d'activités modélisant un processus métier Les activités représentent les unités de traitement Les liens de contrôle définissent le flux d'exécution Les activités correspondent à des services Web [ WS] Les liens de données définissent le flux d'information. Les activités peuvent être d'autres business process BPM

175 WS-BPEL : Exemple Description du flux d’activité en XML
<sequence> Receive <PO> <flow> Invoke <InventoryService> Invoke <CreditService> Reply <Invoice> </sequence> BPM

176 Les standards de l’OASIS
WS-Messaging 1.1 Juin 2007 WS-Transaction 1.1 mai 2007 WS-Security Février 2006 WS-BPEL 2.0 Avril 2007 2000/05 XLang (Microsoft) 2001/03 BPML (Intallio et al) 2001/05 WSFL (IBM) 2001/06 BPSS (ebXML) 2002/03 BPEL4WS 1.0 (IBM, Microsoft) BPEL4WS 1.1 (OASIS) 2002/06 2003/01 WS-Choreography (W3C) 2003/04 WSCI (Sun et al) WSCL (HP) 2002/08 BPM

177 Bilan Processus Métiers
Un domaine chaud Au cœur des architectures SOA Développements de nombreux outils BPEL s'impose comme un standard de l’OASIS Le W3C a des groupes de travail connexes Vers plusieurs standards pour la qualité de services WS-Messaging WS-Transaction WS-Security WS-Notification Questions ? BPM

178 5. Stratégie des constructeurs
Au cœur des systèmes Microsoft Evolution de DNA vers .Net avec échanges en XML Visual Studio.Net et .Net Framework 2.0 SDK Permettent le développement de Web Services Génération de proxy client à partir de WSDL Publication et découverte facilitées en UDDI Utilisable depuis 20 langages de programmation Développement possible de pages ASP comme WS Invocables depuis les outils Office Version open source de .Net par Novell: Mono Stratégie

179 Common Language Runtime Common Language Specification
Architecture .NET Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Windows Forms Common Language Specification VB C++ C# JScript J# Visual Studio.NET Stratégie

180 Extensions des Web Services
Sécurité, routage et attachements binaires WCF (Windows Communication Framework) Implémentation des standards WS-* de ws-i.org Moteur de workflow de base Stratégie

181 Exemple de développement WS en ASP.Net
WebService Language="VB" Class= "StockQuote" %> Imports System Imports System.Web.Services Public Class StockQuote :Inherits WebService <WebMethod()> Public Function GetLastTradePrice (ByVal tickerSymbol As String) As Float /* Calcul du prix Price */ Return Price End Function End Class Génération automatique du WSDL et du translateur SOAP Possibilité d’appel par client HTTP ou API SOAP générée Stratégie

182 Intérêt de la généralisation des WS
Infrastructure Système Gestion des Données Infrastructure Applicative Infrastructure “Information Worker” Outils de développement Administration et Sécurité Pattern & Design, ASP.NET Web Matrix, ASP.NET starter kit, Communautés Applications Partenaires Web Services Unix AS400 Linux OS390 Stratégie

183 Produits J2EE Apache AXIS2 (Open Source)
Servlet permettant de déployer les services à partir d’un fichier archive et d’un descripteur XML Génération automatique du WSDL Appel du servlet depuis SOAP par browser ou client riche Intégrés aux serveurs d'applications API JAX chez IBM, BEA, Oracle, SUN, … Equivalent de .NET dans le monde Java (JSP ~ ASP) Nombreux assistants et outils Large support expérimental de BPEL Stratégie

184 Architecture Type Stratégie

185 Java WS Developer Pack (Sun)
Boite à outils logiciel gratuite pour construire, tester et déployer les applications Java/XML Supporte les dernières versions des technologies et standards Web Services Avec la dernière version Java WSDP 2.0, les développeurs : Develop and deploy using the latest XML and Web services technologies slated for inclusion into Sun's deployment platforms. Enhance Web services performance without revising WSDL files or application code with the refreshed Fast Infoset features from Java WSDP 1.6. Create XML and Web service-enabled applications that exploit the enhanced security features with enhanced XWSS features. Continue to enjoy Java interoperability and portability across different platforms and devices. Simplify and lower the cost of legacy application integration, data interchange, and publishing in a Web environment. Stratégie

186 Architectures inter-opérables
HTML Serveur de présentation Visual studio XML XML WEB SERVICES .NET XML Java, C++, C#, Word, Excel, … WEB SERVICES J2EE Stratégie

187 Position des constructeurs
Composants métiers appelables par message XML Encapsulent les applications existantes Début du développement des architectures SOA Agilité du système d'information Développement des workflows de coopération Challengers Leaders Ability to Execute Microsoft IBM BEA Oracle SAP Fujitsu Sun HP CA Novell Siebel Peoplesoft Niche Players Visionaries Completeness of Vision Conclusion

188 Exemple d'application: Dollar Rent a Car
6e société US de location 400 sites dans 26 pays, 260 sites US; véhicules $750MM de revenu en 2001 Réservation à travers GDS Une alternative à GDS: les services Web XML Lien direct avec les partenaires… 25 en 2 mois. Global Distribution Systems XML / SOAP NorthWest Sabre Worldspan On valorise un existant, ici VaxVMS On change de chaine de valeur On améliore la profitabilité Amadeus Galileo $4 Frontal WS ACMS XML / SOAP SouthWest VaxVMS Conclusion Dollar Rent a Car

189 Ligue de Football Professionnel
Ligue de Football Professionnel (CA 990M Euros) rebâtit son système de billetterie en .NET: Système dimensionné et validé pour 8000 ventes/minutes Un nouveau système qui simplifie le développement de nouveaux canaux/ partenariat : Interopérabilité via Services Web avec les réseaux TicketNet et France Billet 8000 ventes/minutes : de quoi remplir le stade Vélodrome de Marseille ( places) en 8 min Le système est déployé dans les grands clubs de foot (premier déployement au Stade Lyonnais,) avec pour étape suivante de se connecter aux réseaux de distribution TicketNET et France Billet. L’approche Service Web et le potentiel d’intéropérabilité on convaincu la LFP : le système pourra potentiellement permettre aux clubs qui le souhaite de mettre en place une boutique en ligne (promotions pour les supporters, etc) mais aussi s’interfacer avec le reste du SI de chaque club. Ligue Nationale de foot Conclusion

190 SNCF: Fidélisation clients (CRM)
Aujourd'hui, la filiale Chargée de la gestion des programme de fidélité (cartes seniors, 12/25 ans ou grand voyageur) s'appuie sur plus de 30 modules Siebel dont les principaux sont Loyalty, pour la gestion de la fidélité pure, Call Center, Analytics (reporting et tableaux de bords) et Gestion des campagnes marketing. Il dispose d'une douzaine de sites de production dont l'outil interne de fidélisation de la SNCF, auquel il se connecte régulièrement pour mettre à jour ses données. Enfin, deux centres d'appels relaient les besoins clients liés à l'aspect fidélisation. "Après 3 mois de mise en production, nous disposons d'un système qui fonctionne bien. Nous distribuons plus de primes par mois, dont 30% par nos services Internet. Nous envoyons nos premiers mailings depuis trois semaines", ajoute Cyril Garnier. A terme, de nouvelles fonctions viendront encore enrichir l'offre de services Web tels le relevé de points à distance, l'achat de cartes, la modification de coordonnées clients ou la transformation des points en réservations. Extrait du JDNET du 07/11/2005 Conclusion

191 7. En résumé ... Invocation dynamique de services WEB décrits en WSDL SOAP est le protocole d'invocation (WP) sur HTTP Intégrité et typage des données (schémas XML) Possibilité de découvrir dynamiquement les services (UDDI) Lisibilité et sécurité renforcée (standard de cryptage) Indépendance des constructeurs (W3C) Intégration des workflows (BPEL) Ajout de contrôle qualité (transaction, sécurité) Questions ? Conclusion

192 Questions ?


Télécharger ppt "XML: Plan I. Origines et base 3 II. DTD et Schéma 47"

Présentations similaires


Annonces Google