Version provisoire 0.91



Documents pareils
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>

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

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

Introduction aux «Services Web»

Programmation Web Avancée Introduction aux services Web

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

Master d Informatique Corrigé du partiel novembre 2010

Systèmes d'informations historique et mutations

L architecture des services Web

Programmation Internet Cours 4

XML : documents et outils

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

4. SERVICES WEB REST 46

Petite définition : Présentation :

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Licence ODbL (Open Database Licence) - IdéesLibres.org

LICENCE SNCF OPEN DATA

Urbanisme du Système d Information et EAI

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

Les Services Web. Jean-Pierre BORG EFORT

SII Stage d informatique pour l ingénieur

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

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

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

LICENCE SNCF OPEN DATA

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

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

Introduction à Microsoft InfoPath 2010

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

Gestion documentaire (Extraits du CCI version 1.2)

OASIS Date de publication

Manuel d'utilisation d'apimail V3

Les outils de création de sites web

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

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

Chapitre 1 : Introduction aux bases de données

Créer et partager des fichiers

Sage CRM. 7.2 Guide de Portail Client

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Installation de DocBook sur un système Linux

Les Architectures Orientées Services (SOA)

PHP 5.4 Développez un site web dynamique et interactif

Eole - gestion des dictionnaires personnalisés

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Outils logiciels pour l'ingénierie documentaire

Manuel Utilisateur Version 1.6 Décembre 2001

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Bien architecturer une application REST

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

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

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

FileMaker Server 12. publication Web personnalisée avec XML

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

CHAPITRE I INTRODUCTION CHAPITRE I E-COMMERCE. PLAN 1. Commerce électronique 2. Méthodologie de développement 3. Création de trafic

Ecrire pour le web. Rédiger : simple, concis, structuré. Faire (plus) court. L essentiel d abord. Alléger le style. Varier les types de contenus

Annexe : La Programmation Informatique

Généralités sur le Langage Java et éléments syntaxiques.

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

Module BD et sites WEB

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

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

Les services usuels de l Internet

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Présentation générale du projet data.bnf.fr

et Groupe Eyrolles, 2006, ISBN :

Manuel d'utilisation du navigateur WAP Palm

TP1. Outils Java Eléments de correction

Convention de Licence Érudit (Open Source)

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

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

!" #$%&'(&)'*'+,--./&0'1&23,+2.)$4$%52'&%'6.%&2'

Formation : WEbMaster

Condition générales d'utilisation sur le site et pour toute prestation gratuite sur le site

Les nouvelles architectures des SI : Etat de l Art

Nom de l application

Plateforme PAYZEN. Définition de Web-services

Chapitre 2 Créer son site et ses pages avec Google Site

Learning Object Metadata

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

Réutilisation d informations publiques provenant des Archives départementales de Saône-et-Loire

Contenus détaillés des habiletés du Profil TIC des étudiants du collégial

20 techniques et bonnes pratiques d un positionnement visible gratuit et durable sur Internet

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

< Atelier 1 /> Démarrer une application web

Web Application Models

INTERNET, C'EST QUOI?

Description de Produit Logiciel. AMI News Monitor v2.0. SPD-AMINM-10 v1.0

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

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

La démarche SOA et l interopérabilité applicative

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)

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI

18 TCP Les protocoles de domaines d applications

Manuel d'utilisation du site Deptinfo (Mise en route)

SAP BusinessObjects Web Intelligence (WebI) BI 4

Transcription:

XML et les applications d entreprise 1 XML pour l'entreprise Didier Girard Tanguy Crusson infos@improve.fr Version provisoire 0.91 Ce document est disponible à l'adresse suivante : http://www.application-servers.com/livresblancs/xml/, Didier Girard et Tanguy Crusson. Le contenu de ce document peut être redistribué sous les conditions énoncées dans la Licence pour Documents Libres Improve version 2.0 ou ultérieure.

XML et les applications d entreprise 2 Licence pour Documents Libres Improve Historique Version 2.0 Copyright ( ) 2001 Improve. En accord avec sa philosophie de partage des connaissances, Improve diffuse ses études sous Licence pour Document Libres Improve. Le but de cette licence est de rendre libres de diffusions les documents écrits auxquels elle s'applique. La présente licence considère que l'ensemble des sections du document sont invariantes. Vous pouvez donc diffuser le document mais vous ne pouvez en aucun cas le modifier. Improve se réserve le droit de faire évoluer le document. Version 1.0 : Licence pour Documents Libres 1 Copyright ( ) 2000 Guilde des Doctorants. Voici le texte de la Licence pour Documents Libres proposée par la Guilde des Doctorants. Ce document est disponible sous forme transparente en LateX et HTML, et sous forme opaque en Postscript et PDF. La source est constituée par le fichier LateX. Le but de cette licence, rédigée par la Guilde des Doctorants, est de rendre libres les documents écrits auxquels elle s'applique. Un document est dit libre au sens où chacun peut le recopier et le distribuer, avec ou sans modification par tous moyens possibles et imaginables. Cette licence préserve la propriété intellectuelle de l'auteur et de l'éditeur du document. Elle est aussi conçue pour éviter toute récupération commerciale d'un travail bénévole sans le consentement express de ses auteurs. D'autres licences rendant libres des documents, des contenus, des publications existent comme la Free Documentation Licence de la Free Software Fundation 2 et l'initiative OpenContent 3. Elles sont rédigées en langue anglaise et font parfois référence à des notions de droit américain (notion de fair use). Nous avons très largement repris certains des points de ces licences et nous en avons laissé certains de côté. Néanmoins ces licences comme la LDL partagent une même vocation. La Licence pour Documents Libres (LDL), rédigée en français est sujette à améliorations qui sont les bienvenues (voir section 7). Cette licence a été conçue pour s'appliquer à divers types de documents quel que soit leur support : documents techniques, notes de cours, documentation logicielle ou encore oeuvres de fictions. Elle inclut également un "copyleft" pour reprendre la terminologie du GNU : tous les documents dérivés du document original héritent de cette licence. Définitions et domaine d'application Cette licence s'applique à tout document, quelle que soit sa forme, comprenant la notice standard associée à cette licence. La "notification de licence" désigne la section du texte où sont mentionnés le fait que le document est soumis à la présente licence ainsi que le copyright du document. Un document est produit par un ou plusieurs auteurs. Un document peut être constitué de plusieurs contributions mises en commun. Dans ce cas, l'éditeur désigne la personne morale ou physique qui assure la mise à disposition du document sous diverses formes. 1 http://garp.univ-bpclermont.fr/guilde/guilde/licence/ldl.html 2 http//www.gnu.org/copyleft/fdl.html 3 http://www.opencontent.org

XML et les applications d entreprise 3 S'il n'y a qu'un auteur, il est son propre éditeur. Conformément au code de la propriété intellectuelle, chaque auteur conserve la propriété intellectuelle sur sa contribution. Toutefois, l'éditeur a toute liberté pour faire évoluer le document dans le respect des dispositions de la présente licence. La notice de copyright mentionne l'éditeur si il existe ainsi que les noms des auteurs. On appellera "version dérivée" tout document comprenant le document de départ partiellement ou dans son intégralité. Une traduction est aussi considérée comme une version dérivée. La "section historique" du document désigne une partie du document comprenant un historique de sa genèse et de son évolution. Dans le cas d'un document dérivé, la section historique contient le descriptif du ou des documents originaux et des modifications qui y ont été apportées. Elle peut également contenir des éléments non factuels comme des considérations éthiques ou politiques concernant l'historique et les motivations du document. La section historique peut donc n'avoir aucun rapport avec l'objet principal du document. La "Page de titre" désigne pour un document imprimé la page de titre au sens usuel plus les pages de couvertures. Dans le cas de documents pour lesquels ces notions de s'appliquent pas, c'est le texte proche de l'endroit où apparaît le titre du document et la fin du document. La notification de licence sera placée dans la page de titre. La notice standard minimale aura la forme suivante : "Copyright (c) ANNEE, EDITEUR et AUTEURS. Le contenu de ce document peut être redistribué sous les conditions énoncées dans la Licence pour Documents Libres version x.y ou ultérieure." Un document peut contenir des "sections invariantes". La liste des titres de sections invariantes est précisée dans la notice spécifiant que le document est soumis à la présente licence. Par exemple : "Le présent document contient un certain nombre de sections invariantes qui devront figurer sans modification dans toutes les modifications qui seront apportées au document. Leurs titres sont: TITRES DES SECTIONS INVARIANTES". Nous distinguons trois modes de diffusion de documents électroniques: une forme "transparente", ce qui désigne tout format électronique dont les spécifications sont disponibles dans le domaine public ou qui peut être édité par des programmes éventuellement commerciaux largement disponibles à la date de publication du document. Exemples: ASCII, Texinfo, TeX et LaTeX, RTF, HTML, XML, SGML avec une DTD publique. une forme "opaque", ce qui désigne tout format électronique permettant l'affichage ou l'impression du document de manière simple au moyen de logiciels du domaine public ou du moins très largement disponibles à la date de publication du document. Un tel format ne permet pas la modification dudit document de manière simple. Exemples: Postscript, PDF, tout format de traitement de texte nécessitant un logiciel propriétaire, ou tout déclinaison de SGML dont la DTD n'est pas publique. une forme "cryptée" ce qui désigne le cas où une partie (ou la totalité) du document est sous un format électronique qui n'est pas lisible sans la possession d'une clef logicielle ou matérielle qui en permet le décodage. La forme cryptée peut être utilisée à des fins d'authentification. Une fois décodé le document peut être sous une forme transparente ou opaque.

XML et les applications d entreprise 4 Dans le cas d'une forme cryptée, si l'éditeur n'est plus en mesure de fournir la clef de décodage, il doit rendre disponible le document sous une forme transparente ou opaque non cryptée. Conditions communes aux versions modifiées et intégrales La distribution de versions intégrales et modifiées du présent document sous n'importe quelle forme est autorisée aux conditions suivantes : Les notices de copyright spécifiant que le document est soumis à la présente licence ainsi que les sections invariantes doivent être préservées. Les sections invariantes ne peuvent être altérées. Les sections historiques ne peuvent être que complétées. La localisation 4 du document original doit être mentionnée dans la page de titre et de manière visible. Un document disponible sous forme transparente ne peut être rediffusé sous forme opaque. Vous ne devez mettre en place aucun dispositif visant à restreindre l'accès au document ou la possibilité de reproduire les copies que vous distribuez. En particulier vous ne pouvez rendre disponible tout ou partie du document sous forme cryptée si l'auteur l'a expressément interdit. La redistribution dans un cadre commercial ne peut être effectuée sans l'accord préalable des auteurs et de l'éditeur du document original. Si la distribution de copies du document entraîne des frais de reproduction (photocopies, impressions, pressage de médias), vous pouvez néanmoins les imputer au lecteur. Mais vous ne pouvez pas percevoir de droits d'exploitation liés au contenu, ni à l'utilisation du document. Si vous effectuez une diffusion en nombre du document (diffusion sur le WEB, par FTP, ou à plus de 99 exemplaires imprimés, par courrier électronique, sur CDROM, ou sur d'autres supports magnétiques ou optiques), vous devez inclure une copie de la présente licence. Dans ce cas, vous devez également prévenir les éditeurs du document original afin de définir avec eux comment veiller à la diffusion de versions à jour du document. Modifications Dispositions générales Vous pouvez utiliser une partie du présent document, en la modifiant éventuellement, pour produire un nouveau document. Les dispositions de la section 3 s'appliquent. Vous devez en plus : lister un ou plusieurs auteurs ou entités responsables des modifications apportées au document. mentionner sur la page de titre que le document dérivé est une modification d'un ou plusieurs documents originaux. Vous devez préciser leurs titres ainsi que l'entité éditrice ou les principaux auteurs. préciser sur la page de titre que vous êtes l'éditeur de la version dérivée. Vous ne devez en aucun cas : altérer une mention d'un nom d'auteur présent dans le document original et concernant une partie que vous avez réutilisée. 4 URL ou adresse postale

XML et les applications d entreprise 5 donner au document dérivé le même titre que le document original sans autorisation de l'éditeur de celui-ci. Nous recommandons de plus que les titres de sections ne soient altérés qu'en cas de changement du plan du document rendus nécessaire par les modifications apportées. Fusion ou combinaison de documents Dans le cas ou le document que vous produisez est issu de la combinaison de plusieurs documents (après modifications éventuelles) soumis eux aussi à la présente licence, vous pouvez remplacer les diverses notifications de licence par une seule. De même, vous pouvez regrouper les diverses sections historiques pour n'en faire qu'une seule. Elle doit mentionner explicitement les documents originaux auxquels vous avez fait appel et indiquer leur localisation. Si un des documents utilisés est disponible sous une forme transparente alors la totalité du document dérivé doit aussi l'être. Vous devez respecter les points listés en sections 3 et 4.1. Inclusion dans d'autres travaux Si le Document ou une de ses versions dérivées est agrégée avec des travaux indépendants, de sorte que plus de 50 % du document final ainsi produit ne soit pas soumis à la présente licence, le document final n'est pas considéré comme une version dérivée soumise dans son ensemble à la présente licence. Néanmoins, la ou les portions du document final qui sont issues d'un document soumis à la présente licence restent soumis à cette licence. Les recommandations des sections 3 et 4 s'appliquent. Traduction Une traduction d'un document est considérée comme une version dérivée. Dans ce cas, vous pouvez néanmoins traduire les sections invariantes. Si vous ne laissez pas les versions originales de ces sections, vous devez prendre contact avec l'éditeur de la version originale afin d'obtenir son accord pour les traductions de ces sections. Dispositions concernant la garantie Cette licence ne définit que les droits de reproduction modification et diffusion du document. Elle n'y associe aucune garantie : sauf mention expresse du contraire, qui n'engagerait alors que l'éditeur du document, et dans la mesure où le contenu est en conformité avec la législation française, il est entendu que ni l'éditeur ni les auteurs du document ne sauraient être tenus pour responsables des éventuels dommages et préjudices que l'utilisation du document aurait entraînés. Ces dispositions s'appliquent même si il s'avère que le document contient naturellement ou par obsolescence une inexactitude, une imprécision ou une ambiguïté. Tout auteur ou éditeur souhaitant doter un document soumis à la présente licence de dispositions de garantie doit joindre à chaque copie distribuée du document un certificat de garantie précisant exactement les dispositions de garantie et mentionnant explicitement les noms des personnes morales ou physiques assumant les responsabilités de la garantie. Les dispositions de libre copie de la présente licence restent valable pour un document avec garantie mais toute rediffusion par une autre personne que l'auteur du certificat de garantie se fait sans garantie.

XML et les applications d entreprise 6 Cessation de la licence Vous ne pouvez redistribuer le présent document ou une de ses versions dérivées sous une licence différente. Cela entrainerait l'annulation des droits de copie, modification et distribution du document. En soumettant un document à la présente licence, vous conservez les droits de propriété intellectuelle liés à votre qualité d'auteur et vous acceptez que les droits de reproduction, diffusion et modification du document soient régis par la présente licence. Évolution de la licence Improve se réserve le droit de faire évoluer la présente licence. Elle s'assurera de la compatibilité ascendante des différentes versions. Chaque version de la licence est numérotée. Sauf mention explicite, il est sous entendu que si le document précise un numéro de licence, cela signifie que toute version ultérieure convient. Si aucun numéro n'est précisé, cela signifie que toute version de la licence convient.

XML et les applications d entreprise 7 Contributions «La culture hackeur» est une «culture du don» dans laquelle les participants rivalisent pour le prestige en donnant du temps, de l'énergie, et de la créativité 5. La communauté des développeurs d'application-servers.com a participé à la rédaction du document. Nous tenons à remercier les personnes suivantes pour leurs remarques ou commentaires. Jean-Jacques Dubray Emmanuel Dupouy David Duquenne Bruno Fauré Laurent Forêt Sébastien Letélié Alexis Moussin-Pouchkine Herve Ange Ngouoni-Épigat Bruno Paul Thierry Roussel Sylvie Ramon Najib Ben Seffaj Stève Sfartz Ce document n étant encore qu en version Beta il vous est toujours possible de devenir contributeur en apportant des commentaires, demandes de précisions, demandes de modifications, demandes d ajouts, Pour plus d informations se reporter à la rubrique «Livres Blancs» de application-servers.com 6. 5 «À la conquête de la noosphère» par Eric S. Raymond http://www.linux-france.org/article/these/noosphere/homesteadingfr_monoblock.html 6 http://www.application-servers.com/livresblancs/xml/

XML et les applications d entreprise 8 Historique Version Date Objet Intégration des remarques de Jean-Jacques Dubray, 0.91 07/06/2001 Alexis Moussin-Pouchkine, Emmanuel Dupouy, Bruno Fauré, Laurent Forêt, Herve Ange Ngouoni-Épigat, Sylvie Ramon,Najib Ben Seffaj 0.90 07/06/2001 Version beta soumise à la communauté. 0.89 29/05/2001 Dernière version avant la version beta.

XML et les applications d entreprise 9 Table des matières LICENCE POUR DOCUMENTS LIBRES IMPROVE...2 CONTRIBUTIONS...7 HISTORIQUE...8 TABLE DES MATIERES...9 INTRODUCTION...12 1 XML GENERALITES...13 1.1 XML = EXTENSIBLE MARKUP LANGUAGE...13 1.1.1 Historique...13 1.1.2 Définition...13 1.1.3 A quoi ressemble un document XML...14 1.2 LES ESPACES DE NOMMAGE...15 1.3 UTILISATION DE LIENS AVEC XLINK, XML BASE ET XPOINTER...17 1.3.1 XLink...17 1.3.2 XML Base...19 1.3.3 XPointer...19 1.4 GRAMMAIRE XML : DTD VERSUS XML-SCHEMA...20 1.4.1 Une grammaire qu est ce que c est?...20 1.4.2 DTD = Document Type Definition...20 1.4.3 XML-Schema...24 1.4.4 Conclusion...32 1.5 MODELISER UN DOCUMENT XML...32 2 MANIPULATION DES DOCUMENTS XML...33 2.1 LES PARSEURS...33 2.1.1 SAX...34 2.1.2 DOM...36 2.1.3 Utilisation des parseurs SAX et DOM : Sun JAXP...39 2.1.4 Un système d arbre 100% Java : JDOM...40 2.1.5 Conclusion...43 2.2 LE DATA BINDING...44 2.3 LANGAGES DE REQUETES...44 2.3.1 XPath...46 2.3.2 XQuery...50 3 B2C...55 3.1 XHTML...55 3.1.1 Règles à respecter...55 3.1.2 Les différents types de XHTML...57 3.2 XSL...57 3.3 XSLT...58 3.3.1 XSL Transformation...58

XML et les applications d entreprise 10 3.3.2 Rédiger une feuille de style XSLT :...59 3.3.3 TrAX : Transformation API for XML sous partie de JAXP...65 3.4 XSL-FO...65 3.4.1 Architecture utilisée pour générer du PDF avec XSLFO et FOP...66 3.4.2 Exemple :...66 3.5 SVG...68 3.6 XUL...69 4 LES SERVICES WEB...70 4.1 SOAP...70 4.1.1 Avant SOAP : XML-RPC...71 4.1.2 Principe de SOAP...73 4.1.3 Structure de l'enveloppe SOAP...74 4.1.4 SOAP RPC...75 4.1.5 La Gestion des erreurs :...77 4.1.6 Pattern d utilisation :...77 4.1.7 Pas de modèle de composants...78 4.1.8 La sécurité...78 4.1.9 Implémentation de référence : Apache SOAP...79 4.1.10 Deux API Java de Sun...85 4.1.11 Outils facilitant l utilisation de SOAP (cf annexes)...86 4.2 WSDL...86 4.2.1 Structure d un document WSDL...86 4.2.2 WSDL et la gestion des fautes...89 4.3 REFERENCEMENT DES SERVICES WEB : UDDI...90 4.3.1 Principe...90 4.3.2 Six types d annuaires UDDI :...92 4.3.3 UDDI4J...93 4.3.4 API de Sun : JAXR...97 4.3.5 Outils facilitant l utilisation de UDDI :...97 4.4 ARCHITECTURE...97 4.4.1 L'architecture multicouche...97 4.4.2 Services web et architecture à 5 couches...99 5 EAI...100 5.1 EAI - DEFINITION...100 5.2 EAI GERER : LES PROCESSUS METIERS...101 5.2.1 Définition des processus métiers :...101 5.2.2 Les Dialogues :...102 5.2.3 Les processus e-business :...103 5.2.4 BPMI.org : définition et exécution des processus métiers...104 6 B2B...106 6.1 NORME D'INFRASTRUCTURE : EBXML...107 6.1.1 Architecture...107 6.1.2 Scénario d utilisation...108 6.1.3 La modélisation des processus métier (ebbpss):...108 6.1.4 Le protocole de messagerie :...112 6.1.5 Les accords de protocole de collaboration...114 6.1.6 Conclusion...114

XML et les applications d entreprise 11 6.2 B2B - LES SPECIFICATIONS DE CONTENU :...114 6.3 EXEMPLE DE SPECIFICATION VERTICALE : ROSETTANET...115 6.3.1 Les PIP : Partner Interface Processes :...116 6.3.2 Le modèle de convergence RosettaNet :...121 6.4 AUTRES SPECIFICATIONS VERTICALES...122 6.5 EXEMPLE DE SPECIFICATION HORIZONTALE : OAGIS...122 6.5.1 Business Objects Document (BOD)...124 6.5.2 Exemple de BOD : S3_003 : PROCESS PO...126 6.6 AUTRES SPECIFICATIONS HORIZONTALES...127 6.6.1 Places de marché...127 6.6.2 Autres :...128 7 POUR RESUMER : MATRICE DES NORMES XML...129 CONCLUSION...130 XML ET LE B2C...130 XML ET L EAI...130 XML ET LE B2B...130 GLOSSAIRE...131 INDEX...134

XML et les applications d entreprise 12 Introduction XML est une technologie incontournable dans l entreprise. On retrouve XML dans des contextes aussi divers que les applications distribuées, la configuration de produits, les annuaires, l édition de documents, la diffusion de contenu sur le web ou la gestion de la connaissance 7. Tant et si bien qu il est devenu difficile d avoir une vision globale de cette technologie sans passer des heures en veille technologique. D où l idée de faire gagner du temps à la communauté en écrivant un livre blanc qui synthétise des heures et des heures de veille. B2C, services web, EAI et B2B XML est plus qu un langage, c est une famille de langages. Actuellement on estime que plusieurs centaines de langages basés sur XML ont été décrits 8, preuve que XML répond à un véritable besoin. Le problème est qu actuellement le monde XML est proche de la tour de Babel. Dans cette cacophonie, où le marketing est roi, il est difficile de comprendre ce qui se passe. L objectif est donc d arriver à rapidement classer une technologie. Pour ceci nous proposons quatre catégories, les langages XML pour le Business to Customer (B2C), les langages XML pour les services web, les langages XML pour l Enterprise Application Integration (EAI) et les langages XML pour le Business to Business (B2B). Cette taxonomie permet de graduer la complexité d un système, le B2C étant le plus simple et le B2B étant le plus complexe (voir Figure 1), et d y associer les langages correspondants (voir Figure 2). Services B2C Web EAI B2B B2C Complexité Figure 1 Complexité des systèmes utilisant XML RDF OAGIS ebxml UDDI RosettaNet tpaml XAML ICE RSS XSL -FO XUL XHTML XSL XSLT WSDL SOAP BPML xcbl cxml Acord Services Web EAI B2B Figure 2 Langages XML présentés dans ce document 7 «The State of XML: Why Individuals Matter» par Edd Dubill : http://www.xml.com/lpt/a/2001/05/30/stateofxml.html 8 «Will Your XML Talk To Mine?»: http://www.xml.org/xmlorg_news/will-xml-talk.shtml

XML et les applications d entreprise 13 1 XML Généralités 1.1 XML = extensible Markup Language 1.1.1 Historique L utilisation d Internet a considérablement augmenté ces dernières années. Cette croissance est à associer à la naissance de deux standards : HyperText Markup Language (HTML) : cette spécification décrit un langage associant des données et la manière de présenter ces données HyperText Transfer Protocol (HTTP) : cette spécification décrit un protocole de transport d informations sur internet. Contrairement au HTTP, le HTML est un standard qui a beaucoup évolué depuis son apparition. A l origine dans un document HTML il n y avait pas de prédominance entre les données et la présentation de ces données, un document était constitué à part égale entre les données et la présentation. Rapidement les normes successives de HTML ont laissé la présentation prendre de plus en plus de place dans un document HTML. Il est donc apparu nécessaire de définir un nouveau langage qui serait centré sur la description des données : extensible Markup Language (XML). Actuellement dans un document HTML, 95% du contenu est constitué d éléments de présentation. 1.1.2 Définition XML 9 (extensible Markup Language) est une recommandation du W3C. C est est un langage à balise définissant un format universel de représentation des données. Un document XML contient à la fois des données et les indications sur le rôle que jouent ces données. Ces indications permettent de déterminer la structure du document : ce sont des balises. XML est une sous partie de SGML (Standard Generalized Markup Langage) définit par l ISO (ISO 8879). SGML est un langage international de documentation normalisée, standard de fait dans le milieu de la gestion documentaire. On a souvent coutume de dire que "XML présente 80% des fonctionnalités de SGML pour seulement 20% de sa complexité". 9 Spécification de XML en français : http://babel.alis.com/web_ml/xml/ Spécification de XML en anglais : http://www.w3.org/tr/rec-xml

XML et les applications d entreprise 14 XML - Les dix commandements Tu seras utilisable sur internet Tu supporteras une grande diversité d applications Tu seras compatible SGML Il devra être aisé d écrire des programmes qui te manipulent Tu auras le minimum de fonctions optionnelles Tu seras lisible par l'homme Tu seras disponible rapidement La spécification qui te décrira devra être simple et concise Un document te respectant devra être facile à construire Tu pourras ne pas être concis. 1.1.3 A quoi ressemble un document XML Toute personne ayant déjà vu un document HTML sera familiarisée avec les documents XML. Voici un exemple simple de document. Il s agit d un document XML décrivant un annuaire simple : une liste d entrées, chaque entrée étant composée d un nom de personne et d un numéro de téléphone. <?xml version= 1.0 encoding= ISO-8859-1?> <! DOCTYPE livre SYSTEM http://abu.cnam.fr/annuaire.dtd > <annuaire type= pages blanches > <entree> <nom>paul Lafargue</nom> <telephone>06 03 02 01 00</telephone> </entree> <entree> <nom>lorédan Larchey</nom> <telephone>06 00 01 02 03</telephone> </entree> </annuaire> Le document commence par une entête. Cette entête n est pas obligatoire. Elle contient des informations sur la version de XML et le jeu de caractères utilisés. L entête peut aussi faire référence à une DTD (Déclaration de Type de Document - Document Type Definition). Une DTD est une grammaire qui définit la structure d un document XML. Elle permet de valider que chaque composant d un document XML est à la bonne place. Les DTD sont par exemple utilisées pour valider les flux XML entrants d'un programme. Le document XML suit l'entête. Ce document est composé d un ou plusieurs éléments. Les limites des éléments sont marquées soit par des balises ouvrantes (< >) et fermantes (</ >), soit, pour les éléments vides, par une balise d'élément vide (< />). Chaque élément est identifié par un nom. Il peut contenir des attributs. Exemple d élément vide avec attribut : <expert nom= Improve /> Exemple d élément non vide sans attribut :

XML et les applications d entreprise 15 <telephone> 06 03 02 01 00 </telephone> Exemple d élément non vide avec attribut : <annuaire type= pages blanches > <entree> <nom>paul Lafargue</nom> <telephone>06 03 02 01 00</telephone> </entree> <entree> <nom>lorédan Larchey</nom> <telephone>06 00 01 02 03</telephone> </entree> </annuaire> Un document XML doit toujours être bien formé. S'il n est pas bien formé, par définition ce n est pas un document XML. Pour être bien formé un document XML est composé de six types de balisage : les balises (balises ouvrantes, balises fermantes et balises d'éléments vides), les appels d'entité (entity reference), les commentaires, les délimiteurs de section CDATA, les déclarations de type de document, et les instructions de traitement. Il existe d autres règles définissant un document XML bien formé. Pour en avoir une description complète se reporter à la recommandation du W3C 10. W3C Le processus de production des recommandations du W3C est composé de quatre types de documents : "les notes (Notes), les documents de travail (Working Drafts), les recommandations proposées (Proposed Recommendations) et enfin les recommandations (Recommendations)". Un document est stable lorsqu il a atteint le statut de recommandation. XML est une recommandation depuis 1998 Pour tout savoir sur le W3C : Le World Wide Web Consortium (W3C) de Frédéric PELLETIER http://www.lexum.umontreal.ca/internet99/p1c4.html 1.2 Les espaces de nommage Les "espaces de nommage" (XML Namespaces) sont spécifiés dans une recommandation 11 du W3C. Ils permettent : de mélanger du vocabulaire XML provenant de plusieurs grammaires, d identifier de manière unique les balises XML. Pour illustrer l utilisation des espaces de nommage, prenons le cas d une entreprise décrite par deux documents XML. Un document qui contient les informations générales à l entreprise : 10 http://babel.alis.com/web_ml/xml/rec-xml-1-2.fr.html#sec-well-formed 11 Spécification sur les espaces de nommage: http://www.w3.org/tr/rec-xml-names/ FAQ sur les espaces de nommage de très bonne qualité : http://www.rpbourret.com/xml/namespacesfaq.htm

XML et les applications d entreprise 16 <entreprise> <nom> Bizib inc </nom> <adresse> </adresse> </entreprise> Un document qui contient les informations sur le personnel de l entreprise : <personnes> <personne> <nom> <nomdefamille>lafargue</nomdefamille> <prenom>paul</prenom> </nom> <fonction>pdg</fonction> <telephone>0102030405</telephone> </personne> </personnes> On remarque que la balise <nom> peut contenir deux types d informations : nom de l entreprise ou nom d une personne. Si l on désire créer un document unique décrivant l entreprise et ses employés, un moyen permettant d identifier les balises est nécessaire (par exemple <personne:nom> et <entreprise:nom>). C est l objectif des espaces de nommage, ou XML Namespace (xmlns). Le principe est d associer une URI (Uniform Resource Identifier voir Figure 3) à un nom. Par exemple l espace de nommage "personne" peut être déclaré de la façon suivante : xmlns:personne="http://www.personne.org". Ce nom est ensuite utilisé pour caractériser les balises. Par exemple <personne:nom> signifie que la balise <nom> appartient à l espace de nommage "personne". Le document XML unique décrivant l organisation de l entreprise est alors : <organisation xmlns:entreprise="http://www.entreprise.org" xmlns:personne ="http://www.personne.org"> <entreprise:nom>bizib inc</entreprise:nom> <personne:nom> <personne:nomdefamille>lafargue</personne:nomdefamille> <personne:prenom>paul</personne:prenom> </personne:nom> <personne:fonction>pdg</personne:fonction> </organisation> L URI de l espace de nommage (ici http://www.entreprise.org et http://www.personne.org) peut être fictive : elle n est pas vérifiée, toutefois elle pointe généralement sur la grammaire de l'espace de nommage. Nous étudierons par la suite plusieurs grammaires XML définies dans des DTD ou XML- Schema. L utilisation d espaces de nommage permet de préciser que des éléments d un document XML sont associées à une grammaire, et de donner l URI où la grammaire est spécifiée. URI, URL, URN et URC :

XML et les applications d entreprise 17 URI (Universal Resource Identifier) : identification de ressources sur le Web. Il y a trois types d'uri : URL (Uniform Resource Locator) : adresse et protocole d'accès d'une ressource sur le Web. URN (Universal Resource Naming) : nommage permanent d'une ressource. Le but est de garantir la possibilité de retrouver un document, même lorsque son URL a changé. La gestion des noms est centralisée. URC (Universal Resource Caracteristics) : description des caractéristiques d'un document. Ces caractéristiques pourront être la version, le format, mais également les localisations et les modes d'accès (plusieurs URL possibles pour un même document). Figure 3 : URI, URL, URN et URC 1.3 Utilisation de Liens avec XLink, XML Base et XPointer Un des facteurs du succès d Internet est la capacité de lier des ressources entre elles par l utilisation de liens hypertextes. Ces liens sont très simples : ils sont unidirectionnels, et ne permettent pas de préciser la nature du lien : un document HTML indique uniquement qu il pointe vers un autre document HTML, ou vers une partie de ce même document à l aide de la balise <a>. Les attributs de la balise <a>, href et ref, pointent sur la ressource de destination. Par exemple : <a href= http://autredocument.html >lien vers un doc externe</a> <a ref= #sous-partie >lien vers une sous partie du même doc</a> XML se devait de fournir un mécanisme permettant le lier les ressources. Mais on sent tout de suite que les possibilités du lien «type HTTP» sont limitées : liens unidirectionnels, non caractérisés, etc. Pour cette raison, trois initiatives visent à approfondir et formaliser la notion de lien en XML : XLink, XML Base et XPointer. 1.3.1 XLink XLink est une recommandation W3C. Cette spécification permet de modéliser les liens entre documents. Nous ne discuterons ici que de l utilisation de XLink dans un document XML, et nous ne détaillerons pas les fonctionnalités plus dédiées au HTML qui sont liées aux actions à effectuer en cas de clic de l utilisateur sur un lien - une des fonctionnalités requises par les XLink était d être compatible avec les liens HTML 4.01. Il existe principalement trois types de liens, définis dans l attribut xlink:type : Les liens simples (xlink:type= simple ) étendent la notion de lien HTML aux documents XML, avec des compléments (possibilité de catégoriser les liens, ) Les liens étendus (xlink:type= extended ) : permettent de définir des liens plus complexes (liens pointant vers des ressources multiples, etc.) Les arcs (xlink:type= arc ) : permettent de définir des relations entre les liens. Le lien XLink le plus simple est équivalent à un lien en HTML : Version HTML : <a href= doc.xml > Lien vers doc.xml </a> Version XLink :

XML et les applications d entreprise 18 <monlien xlink:type= simple xlink:href= doc.xml > Lien vers doc.xml </monlien> XLink définit principalement une liste d attributs qu il est possible d utiliser dans les éléments définis par l utilisateur. Il est possible de les utiliser à partir du moment où on définit l espace de nommage XLink : <?xml version= 1.0?> <mondocument xmlns:xlink= http://www.w3.org/1999/xlink/namespace /> Les attributs principaux sont : xlink:type : type du lien (simple, extended, arc, ) ; xlink:href : pointeur vers une ressource extérieure ; xlink:title : titre du lien, permet de le caractériser de manière sémantique ; xlink:role : description du lien, la forme est libre ; xlink:from, to : utilisés dans les arcs pour définir une relation unidirectionnelle entre deux liens (du lien «from» vers le lien «to»). 1.3.1.1 Les liens simples Comme nous l avons vu précédemment, les liens simples sont une extension des liens HTTP. Par exemple : <document titre= Livre Blanc XML > <adresse xlink:type= simple xlink:title= adresse de téléchargement xlink:href= http://www.application-servers.com > Télécharger sur le site d application servers </adresse> </document> 1.3.1.2 Les liens étendus Les liens étendus permettent de modéliser des liens plus complexes. Imaginons par exemple qu un document soit disponible en plusieurs endroits. Un lien peut pointer sur plusieurs ressources : <document titre= Livre Blanc XML > <localisation xlink:type= extended > <adresse xlink:type= locator xlink:role= adresse principale xlink:href= http://application-servers.com /> <adresse xlink:type= locator xlink:role= site mirroir xlink:href= http://www.toto.com /> </localisation> </document> Note : les liens de type locator sont utilisés dans les liens étendus pour pointer sur une ressource grâce à l attribut xlink:href. Ce sont l équivalent dans ce contexte des liens de type simple. Enfin, il est possible de définir des relations entre les liens contenus dans un lien de type étendu. Par exemple pour préciser que le site principal de téléchargement du livre blanc

XML et les applications d entreprise 19 pointe sur le site mirroir (on utilise pour cela l attribut xlink:label qui permet de donner un identifiant à un lien) : <document titre= Livre Blanc XML > <localisation xlink:type= extended > <adresse xlink:type= locator xlink:label= principal xlink:href= http://application-servers.com /> <adresse xlink:type= locator xlink:label= mirroir xlink:href= http://www.toto.com /> <lien xlink:type= arc xlink:from= principal xlink:to= mirroir /> </localisation> </document> 1.3.2 XML Base XML Base est une recommandation du W3C. Cette norme très simple prévoit l ajout d un attribut xml:base à un élément pour définir l adresse de base de tous les liens définis dans ses sous éléments. Par exemple : <document xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink"> <liens xml:base= http://www.application-servers.com > <livreblanc xlink:type= simple xlink:href= livresblancs/xml > <articles xlink:type= simple xlink:href= pagepublications.jsp /> </liens> </document> Ainsi, le livre blanc est téléchargeable à l adresse http://www.applicationservers.com/livresblancs/xml, concaténation de l URI précisée dans l attribut xml:base et de celle précisée dans xlink:href. 1.3.3 XPointer Comme nous venons de le voir, XLink permet de modéliser des liens plus complexes que ceux qu il est possible de faire avec HTML. Pour compléter cette spécification, il était nécessaire d avoir un moyen de pointer sur des éléments spécifiques d un document XML : c est l objectif de XPointer. XPointer n est pas un langage de requête mais utilise XPath pour permettre de pointer vers un élément particulier d un document XML. Si vous ne connaissez pas XPath, nous vous conseillons de revenir sur cette partie après avoir lu la section 2.3 sur les langages de requêtes). Avec XLink il est possible de créer des liens vers d autres documents (XML, HTML, texte, etc.), mais aussi de pointer sur une partie précise d un document XML. Par exemple, le lien suivant pointe sur l entrée de l annuaire annuaire.xml contenant le numéro de téléphone de Harry Cover :

XML et les applications d entreprise 20 <link xmlns:xlink="http://www.w3.org/2000/xlink" xlink:type="simple" xlink:href= "annuaire.xml#xpointer(//entree[nom= Harry Cover ])"> </link> Numéro de téléphone de Harry cover dans l annuaire Un lien XLink utilise un pointer XPointer dans son attribut href : <link.../> xmlns:xlink="http://www.w3.org/2000/xlink" xlink:href= "annuaire.xml#xpointer(requete XPath)" XPointer définit aussi des extensions à XPath pour pouvoir pointer sur des éléments de façon plus précise. Ces extensions sont détaillées dans le tutorial Zvon «XPointer Tutorial» 12. 1.4 Grammaire XML : DTD versus XML-Schema 1.4.1 Une grammaire qu est ce que c est? Une grammaire définie la syntaxe d un langage. En XML le langage est la liste des balises qui sont utilisables, la syntaxe correspond à l organisation de ces balises. Par conséquent, un document XML est compréhensible si sa grammaire est définie. Les documents DTD et XML-Schema 13 permettent de décrire des grammaires de documents XML. Ce sont deux approches différentes, les DTD étant plus simples à mettre en place mais décrivant un document XML de manière moins complète. Si deux documents XML respectent la structure définie dans une DTD ou un XML-Schema, on dit qu ils respectent la même grammaire. Document valide, document bien formé Un document XML bien formé est un document qui respecte la syntaxe XML. Un document XML valide est un document bien formé qui se conforme à la définition de la grammaire (DTD ou Schéma) à laquelle il est associé. 1.4.2 DTD = Document Type Definition DTD signifie Document Type Definition (ou définition de type de document), c'est la grammaire historique des documents XML. La puissance de description des DTD est faible : une DTD permet uniquement de décrire la structure d'un document XML (liste des balises et organisations des balises),, et non la typologie des données contenues (chaîne de caractère, date, entier, etc).. Les DTD sont donc à utiliser lorsque la typologie des 12 Tutorial Zvon sur XPointer : http://www.zvon.org/xxl/xpointer/tutorial/outputexamples/xpointer_tut.html 13 Spécification XML-Schema : http://www.w3.org/xml/schema

XML et les applications d entreprise 21 données contenues dans le document XML est sans importance. On appelle validation le mécanisme qui vérifie qu un document XML respecte une DTD. 1.4.2.1 Exemple de DTD Dans l exemple ci-dessous, le document XML (1) est valide par rapport à la DTD (2) : 1) 2) <?xml version= 1.0?> <entree> <nom>harry Cover</nom> <telephone>0102030405</telephone> </entree> <?xml version= 1.0?> <!ELEMENT entree (nom,telephone*)> <!ELEMENT nom (#PCDATA)> <!ELEMENT telephone (#PCDATA)> Il est possible de préciser la cardinalité des données. «nom» signifie qu une entrée contient un et un seul élément nom, «telephone*» signifie qu une entrée contient 0 à n numéros de téléphone. Par contre, on ne peut pas typer les données : «telephone» est censé être un champ numérique et non une chaîne de caractères, mais il n est pas possible de modéliser cette contrainte dans une DTD. 1.4.2.2 Référer à une DTD dans un document XML 1. DTD externe : Un document XML peut préciser qu il respecte une DTD définie dans un document à part, on parle alors de DTD externe. Cette information doit être insérée dans l entête du document : <?xml version= 1.0 encoding= ISO-8859-1?> <!DOCTYPE annuaire SYSTEM http://abu.cnam.fr/annuaire.dtd > <annuaire> </annuaire> On fait référence à la DTD par son nom et son URL. Les parseurs XML pourront alors la retrouver et valider ou non ce document (c est à dire vérifier que le document respecte la grammaire fixée par la DTD). Notons que seul les parseurs dits «validant» peuvent valider un document par rapport à sa DTD. 2. DTD interne : il est aussi possible de définir la DTD dans le corps du document XML, on parle alors de DTD interne. Dans ce cas, on utilise l élément <!DOCTYPE nom_grammaire [ définitions ]>. Reprenons l exemple du document XML annuaire.xml précédemment décrit, et ajoutons lui sa DTD interne :

XML et les applications d entreprise 22 <?xml version= 1.0?> <!DOCTYPE annuaire [ <!ELEMENT annuaire (entree+)> <!ELEMENT entree (nom,telephone*)> <!ELEMENT nom (#PCDATA)> <!ELEMENT telephone (#PCDATA)> ]> <annuaire>... </annuaire> Cette solution est rarement utilisée. 1.4.2.3 Les constituants d une DTD 1. Types de données : Les DTD définissent 10 types de données. Les deux types les plus fréquemment utilisés sont : PCDATA et CDATA : PCDATA signifie Parsed Character Data (ou chaîne de caractères parsée). C est le texte contenu dans un élément. Dans l élément suivant : <element>texte</element>, «texte» est du type PCDATA. CDATA signifie Character Data ou chaîne de caractères. Il s agit de chaîne de caractères qui ne seront pas parsées lors de la validation. On les utilise dans les attributs : par exemple dans l élément : <element attribut= <hello/> >, <hello/> est du type CDATA et sera donc traitée comme une chaîne de caractère, et non une balise XML. ID et IDREF : permettent de lier différentes parties d un document XML. Nous y reviendrons. 2. Eléments : Les éléments XML sont définis dans une balise <!ELEMENT>. La syntaxe de base est <!ELEMENT nom (contenu)>. Un élément peut être vide, contenir une chaîne de caractères, ou contenir des sous éléments. Type DTD XML Elément vide <!ELEMENT elt EMPTY> <elt/> Elément contenant du texte <!ELEMENT elt (#PCDATA)> <elt>texte</elt> Elément avec sous éléments Elément avec plusieurs sous éléments <!ELEMENT elt (sous-elt)> <!ELEMENT sous-elt EMPTY> <!ELEMENT elt (s1, s2)> <!ELEMENT s1 EMPTY> <!ELEMENT s2 EMPTY> Elément avec contenu variable <!ELEMENT elt (#PCDATA s1)> <!ELEMENT s1 EMPTY> Elément à contenu non défini <!ELEMENT elt ANY> <!ELEMENT s1 EMPTY> <elt> <sous-elt/> </elt> <elt> <s1/> <s2/> </elt> <elt>texte</elt> ou <elt><s1/></elt> <elt>texte</elt> ou <elt><s1/></elt> etc.

XML et les applications d entreprise 23 On peut déclarer la cardinalité des sous éléments : <!ELEMENT element (s1)> signifie que le sous élément s1 peut avoir une et une seule occurrence. <!ELEMENT element (s1*)> signifie que le sous élément s1 peut avoir 0 à n occurrences. <!ELEMENT element (s1?)> signifie que le sous élément s1 peut avoir 0 ou 1 occurrence. <!ELEMENT element (s1+)> signifie que le sous élément s1 doit avoir au moins 1 occurrence. 3. Attributs : Les attributs sont tous décrits dans une balise <!ATTLIST>. La syntaxe de base est : <!ATTLIST nom-element nom-attribut1 type valeur-par-defaut nom-element nom-attribut2 type valeur-par-defaut...> Il existe de nombreux types possibles pour l attribut. On utilise généralement CDATA (Character Data, ou chaîne de caractères), ou une énumération de valeurs possibles : DTD <!ELEMENT elt EMPTY> <!ATTLIST elt attribut CDATA defaut > <!ELEMENT elt EMPTY> <!ATTLIST elt attribut ( v1 v2 ) v1 > 2 valeurs possibles : v1 et v2 <!ELEMENT elt EMPTY> <!ATTLIST elt att1 CDATA d1 elt att2 CDATA d2 > XML <elt attribut= valeur /> Par défaut : <elt attribut= defaut /> <elt attribut= v2 /> ou (défaut) : <elt attribut= v1 /> <elt att1= a att2= b /> par défaut: <elt att1= d1 att2= d2 /> La valeur par défaut permet de spécifier la valeur que prendra l attribut s il n est pas renseigné par le constructeur du document XML qui respecte cette DTD. Cette valeur permet aussi de préciser des options : Type DTD XML Attribut obligatoire <!ELEMENT elt EMPTY> <!ATTLIST elt att CDATA #REQUIRED> <!ELEMENT elt EMPTY> <!ATTLIST elt att CDATA #IMPLIED> Attribut non obligatoire Attribut à valeur fixe <!ELEMENT elt EMPTY> <!ATTLIST elt att CDATA #FIXED a > <elt att= a /> <elt att= a /> <elt/> <elt att= a />: OK <elt att= b />: non 4. Entités :

XML et les applications d entreprise 24 Les entités peuvent être considérées comme des variables. Elles sont déclarées et non mutables, et peuvent être utilisées dans tout document XML respectant cette DTD. Elles peuvent être internes ou externes (c est à dire faire référence à un autre document par le biais d une URI). Leur déclaration est contenue dans l élément <!ENTITY>. Type DTD Utilisation XML Interne Externe <!ENTITY nom valeur > <element>&nom;</element> => <element>valeur</element> <!ENTITY nom SYSTEM www.coucou.org > <element>&nom;</element> => <element>www.coucou.org</element> 5. Les identifiants Un attribut de type ID permet d attribuer un identifiant à un élément d un document XML. Cet élément peut être ensuite référencé dans une autre partie du même document en utilisant un attribut de type IDREF. Les identifiants permettent donc de lier différentes parties d un document XML. Par exemple, la DTD suivante décrit une grammaire permettant de définir des personnes et leurs relations de parenté : <!ELEMENT personne (#PCDATA)> <!ELEMENT parent (fils*)> <!ELEMENT fils EMPTY> <!ATTLIST personne identifiant ID #REQUIRED> <!ATTLIST parent identifiant IDREF #REQUIRED> <!ATTLIST fils identifiant IDREF #REQUIRED> Exemple de document XML respectant cette DTD. On y définit deux personnes (Adam et Caïn) à qui on attribue un identifiant (respectivement «A» et «B»), et on précise que A est parent de B : <personne identifiant= A >Adam</personne> <personne identifiant= B >Caïn</personne> <parent identifiant= A > <fils identifiant= B /> </parent> 1.4.3 XML-Schema XML-Schema 14 est une recommandation du W3C, au même titre que XML et que les espaces de nommage. Les documents XML-Schema permettent de décrire la structure d'un document XML d'une façon beaucoup plus complète que les DTD. Il est par exemple possible de spécifier la typologie des données (String, Decimal, etc..) que va contenir le document XML décrit par le XML-Schema. Attention toutefois, sous le terme XML-Schema se cache plusieurs "normes". Dans la mesure du possible préférer celle du W3C car elle suit un processus de standardisation ouvert et clair. 1.4.3.1 Exemple de document XML-Schema : 14 Pour une présentation très complète de la spécification se reporter à l'url suivante (15300 mots): http://site.voila.fr/xmlschema/xschema.htm

XML et les applications d entreprise 25 Pour exemple, modélisons l élément <entree> de l annuaire précédemment décrit à l aide de XML-Schema. Nous pouvons ici préciser le type des informations contenues dans les éléments <nom> (string) et <telephone> (decimal). Le document XML : <entree> <nom>harry Cover</nom> <telephone>0102030405</telephone> </entree> Le document XML-Schema : <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/xmlschema"> <xsd:element name="entree"> <xsd:complextype> <xsd:sequence> <xsd:element name="nom" type="xsd:string" minoccurs= 1 maxoccurs= 1 /> <xsd:element name="telephone" type="xsd:decimal"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema> XML-Schema permet de gérer les occurrences d un attribut, les types complexes, etc. De plus, un document XML-Schema respecte la syntaxe XML, à l inverse des DTD pour lesquels il faut apprendre une nouvelle syntaxe. Par contre, comme on peut le remarquer sur l exemple précédent, un document XML-Schema est généralement plus volumineux et plus difficile à lire qu une DTD (pour un opérateur humain). Les opposants à cette norme lui reprochent sa trop grande complexité. Il existe des initiatives pour créer un langage plus facile d utilisation et aussi complet (nous pouvons par exemple citer TREX de James Clark). 1.4.3.2 Référer à un XML-Schema dans une instance de document XML Un document XML peut préciser qu il respecte un XML-Schema. Cela se fait dans l entête de ce document : <entree xmlns="http://www.annuaire.org" xmlns:xsi="http://www.w3.org/2000/10/xmlschema-instance" xsi:schemalocation="http://www.annuaire.org/entree.xsd"> <nom>harry Cover</nom> <telephone>0102030405</telephone> </entree> L espace de nommage xsi correspond aux instances de documents XML respectant les contraintes définies dans un document XML-Schema. Le W3C a défini une librairie de balises et attributs pouvant être utilisés par ces documents. 1.4.3.3 Les constituants d un XML-Schema

XML et les applications d entreprise 26 Comme nous l avons déjà précisé, XML-Schema est une norme assez complexe. Nous n entrerons donc pas autant dans les détails que pour les DTD. 1. Déclaration : L élément <xsd:schema> permet de déclarer un document XML-Schema. Son attribut targetnamespace permet de préciser l espace de nommage de ce type de documents. L attribut elementformdefault précise si les documents XML respectant cette grammaire doivent référer à cet espace de nommage. <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/xmlschema" targetnamespace="http://www.annuaire.org" xmlns="http://www.annuaire.org" elementformdefault="qualified"/> 2. Types de données : XML-Schema définit plus de 40 types de données, et fournit un mécanisme de définition de types de données complexes. Parmi ces types définis par XML-Schema on retrouve string, integer, date, year, CDATA, float, double, binary, ENTITIES, token, byte, etc. Pour définir ses propres types de données, il est possible de créer un type de données totalement nouveau, de restreindre ou d étendre un type de données existant. Note : une déclaration de type est visible par tous les descendants du nœud dans lequel il a été déclaré. Par exemple, un type qui a été déclaré sous le nœud <xsd:schema> sera par voie de conséquence visible dans tout le document. Pour créer un nouveau type de données, il faut utiliser la balise <xsd:complextype>. Créons par exemple un type de données entree : <entree> <nom>string</nom> <telephone>decimal</telephone> </entree> On utilise la syntaxe suivante : <xsd:complextype name= typeentree > <xsd:sequence> <xsd:element name= nom type= xsd:string /> <xsd:element name= telephone type= xsd:decimal /> </xsd:sequence> </xsd:complextype> Pour l utiliser dans une déclaration d élément on utilise la syntaxe suivante : <xsd:element name= entree type= typeentree > 1. Restriction de type existant : utilisation de <xsd:simpletype> Le type de données string comprend 6 attributs optionnels : pattern, enumeration, length, minlength, maxlength, whitespace. Si on désire définir un type de string représentant un choix (oui/non) :