<XML/> Bruno GRILHERES (EADS CASSIDIAN)

Slides:



Advertisements
Présentations similaires
Données structurées et XML
Advertisements

Introduction aux Web Services Partie 1. Technologies XML
XML eXtensible Markup Language
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
eXtensible Markup Language
Les espaces de nommage XML par Philippe Poulard 1
XML schema Objectifs Valider un doc. XML pour des contraintes syntaxiques Documenter un type de documents XML caractérisé par des contraintes Encadrer.
Données structurées et XML
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Cours 1.2 : Introduction au langage XML
Extensible Markup Language
le langage les éléments
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Introduction Concepts fondamentaux Éléments d’architecture
Manipulation d’XML avec XSL
Introduction et Concepts : De SGML à XML
Introduction aux Web Services Partie 1. Technologies HTML-XML
XML eXtensible Markup Language
Langage de structuration des données: XML
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Web Structurel
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
XML: Syntaxe XML, DTD et Schémas
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Introduction au XML Choopan Rattanapoka Université Louis-Pasteur, Starsbourg.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
Rappel (très) succint d’éléments techniques (XML, DTD, XSL, PHP)
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
1 Programmation Web II 2 ème année Licence Appliquée IAG Faculté des Sciences Economiques et de Gestion de Nableul Université 7 novembre à Carthage Années.
Le langage XHTML 420-S4W-GG Programmation Web Client
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Le langage XML.
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
XML: Plan I. Origines et base 3 II. DTD et Schéma 47
Initiation à XML Antonin Benoît DIOUF eXtensible Markup Language.
Seminaire XML B. Rothenburger A. Nouvel XML XSD XSL IRIT Toulouse Disponible Consultable dans l'équipe 21...
XHTML les fondamentaux M.DIENG Abdoulaye DTS 1 Réseaux & Données.
SMIL Synchronized Multimedia Integration Language
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Introduction à XML Yves Bekkers. Plan Introduction - structurer l’information Les langages à balises - un peu d’histoire XML - concepts de base Outils.
Cours LCS N°4 Présenté par Mr: LALLALI
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
1. Introduction 2. DTD 3. Schémas
XSD XML Schema Definition Année universitaire UP web.
Document Type Definition (DTD) Plan 2.1Introduction 2.2Déclaration de Document Type 2.3Déclaration d’élément Type 2.3.1Séquences, Choix, indicateurs d’Occurrence.
eXtensible Markup Language. Généralités sur le XML.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.
Vers la modularisation des données du web XHTML. Qu'est-ce que XHTML ? ● XHTML est une famille de types de documents futurs et actuels et de modules :
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
XML : un métalangage pour la description de documents structurés XML a été défini par le consortium W3 en fonction de 2 objectifs: Compenser les limitations.
XML les données réellement portables La nécessité d’un format de données universel et lisible se faisait sentir depuis longtemps, aujourd’hui avec le développement.
INF2005– Programmation web– A. Obaid Variantes de HTML.
Jean Vieille Research community Consulting group
XML Introduction. Langage XML eXtensible Markup Language XML permet de créer des documents Avec des balises propres au document Langage «extensible» Représentant.
DTD - Y. Bekkers - IFSIC1 DTD Document Type Definition Yves Bekkers Mise à jour : 31 mai 2016.
Transcription de la présentation:

<XML/> Bruno GRILHERES (EADS CASSIDIAN) bruno.grilheres@cassidian.com

Sommaire Cours 1 : Introduction à XML XML, Namespaces, DTD, XML-Schema, Exemples d’applications utilisant XML Cours 2 : Transformations XML, Persistance et Recherche XML XSL, XSLT, XSL-FO XPath, XLink, XPointer, XQuery Cours 3 : Manipulation de XML en JAVA et Web Services DOM, SAX, JAXB WSDL, SOAP TP1 : Création d’un CV en XML + validation avec un XSD TP2 : Construction d’un feuille XSL pour transformation et visualisation du CV (XHTML) TP3 : Manipulation de CV en java et sérialisation en XML (JAXB)

Introduction à XML Objectif et Historique Les bases d’XML Validation XML DTD XML Schema Autres approches (RELAX-NG, Schematron) Quelques utilisations d’XML XHTML Ant/Maven Spring IOC GraphML et SVG OpenDocument

Explosion informationnelle Informations et documents dans l’entreprise Constat : Inflation du volume d’informations Coût et difficulté : Difficultés à retrouver un document Coût induit par la gestion de documents

XML : Origine et objectifs 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

SGML(ISO 8879) Standard Generalized Markup Language Standard international pour la définition de la structure et du contenu d’un document numérique Indépendant du type de matériel, et du système envisagé Système de balises extensibles Utilisation de DTD pour la validation de la structure Trés utilisé pendant plus de 10 ans mais trés lourd.

HTML(RFC 1866) HyperText Markup Language Sous ensemble de SGML utilisé pour la présentation d’informations sur le Web Utilisation d’un vocabulaire de balises restreint

Qu’est ce que XML ? SGML XML HTML XHTML   eXtensible Markup Language Recommendation du W3C 1.0 Ed01 en 1996, 1.0 Ed05 en 2008 1.1 en 2004 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 ... SGML XML HTML   XHTML

A quoi peut servir XML ? Séparer les données de leur présentation Créer de nouveaux formats de données Echanger des données entre applications Valider, stocker et rechercher des données …

Les 10 règles 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

Les 10 règles 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

Un exemple Entête Racine Elément Contenu Entité Attribut Commentaire Elément « vide »

Structure d’Arbre Livre Chapitre Titre A Corps … Chapitre Titre AA

XML « Buildings Blocks » En tête Une déclaration: version [, encoding, standalone] Une DTD optionnelle (Document Type Definition ) (standalone = “no”) Element Délimités par des chevrons Identifie la nature des éléments qu’ils encadrent Format classique : <element> … </element> Elément vide: <element-vide/> Attribut Couple clé-valeur à l’intérieur d’un élément <element attribut=“valeur”> Quelques règles de syntaxe : Tous les éléments doivent être fermés Les balises sont dépendantes de la casse Tous les documents XML doivent avoir un élément racine Les valeurs des attributs doivents être entre guillemets Les balises ne doivent pas se chevaucher Parler du choix attribut vs

Espace de noms / Namespaces Objectif : Eviter les conflits de noms d’élements <my:livre xmlns:my="http://bg.free.fr/my/"> Namespace par défaut xmlns="…«  S’applique à tous les fils de l’élément sur lequel le namespace est déclaré.

Espace de noms / Namespaces Quelques namespaces récurrents : Xml http://www.w3.org/XML/1998/namespace RDF <rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> Dublin-core <dc:title xmlns:dc="http://purl.org/dc/"> SVG <svg xmlns="http://www.w3.org/2000/svg"> SOAP <SOAP-ENV xmlns:SOAP-NV="http://schemas.xmlsoap.org/soap/envelope/"> Schema <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> XHTML <xhtml:xhtml xmlns:xhtml="http://www.w3.org/1999/xhtml"> XSLT <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Validation XML Document XML ”bien formé” Document XML “valide” Syntaxe XML Correcte Document XML “valide” bien formé + Conforme aux règles d’une DTD, d’un XML Schéma, etc.

DTD DTD = Document Type Definition La DTD fournit : la liste des éléments, la liste des attributs, des notations et des entités du document XML associé ainsi que les règles des relations qui les régissent.

DTD interne et externe La DTD est déclarée dans le document XML par la balise !DOCTYPE Elle peut être : incluse dans le code source du fichier XML, ou DTD interne : <!DOCTYPE élément-racine [déclaration des éléments]> décrite dans un fichier externe, ou DTD externe : <!DOCTYPE élément-racine SYSTEM "nom_fichier.dtd">

Un exemple de DTD

DTD «Building blocks » Une DTD contient Une ou plusieurs définitions d’éléments introduites par la balise !ELEMENT : <!ELEMENT nom-élément valeur> Une ou plusieurs listes d’attributs introduites par la balise !ATTLIST: <!ATTLIST nom-élément attribut type défaut> Une ou plusieurs définitions d’entités introduites par la balise !ENTITY : <!ENTITY nom-entité "valeur"> ou <!ENTITY nom-entité SYSTEM "nom_fichier">

DTD : Eléments Combinaison d’un ou plusieurs items : Mot-clé #PCDATA (Parsed Character Data) : le contenu est une chaîne de caractères Nom d’un autre élément de la DTD Chaque item peut être suivi par un caractère facultatif d’occurrence : ? : l’item apparaît zéro ou au plus une fois + : l’item apparaît au moins 1 fois * : l’item apparaît zéro fois ou plus

DTD : Eléments Les items sont séparés par : Le caractère virgule « , » si les 2 items sont tous deux inclus dans le contenu Le caractère pipe « | » si le contenu est un choix entre les 2 items Les items peuvent être regroupés à l’aide de parenthèses pour définir des ordres de priorité ou d’occurrence

DTD : Eléments Exemples <!ELEMENT livre (chapitre+)> <!ELEMENT chapitre (titre?, corps, chapitre* image*)> <!ELEMENT chapitre (#PCDATA)> <!ELEMENT image EMPTY> Définition d’un élément livre composé de un ou plus éléments chapitre. Définition d’un élément chapitre, composé de quatre éléments : titre (facultatif), corps, chapitre (de 0 à n fois), image (de 0 à n fois) Définition d’un élément chapitre contenant une chaîne de caractères Définition d’un élément image de contenu vide

DTD : Attributs Déclaration dans la DTD par la balise !ATTLIST : <!ATTLIST nom-élément nom-attribut type valeur-défaut> Où : nom-élément est le nom d’un élément défini dans la DTD par la balise !ELEMENT attribut est le nom de l’attribut présentement défini pour l’élément nom-élément type peut prendre l’une des valeurs: CDATA : la valeur correspond au contenu de l’élément (choix1|choix2|…) : la valeur doit être l’une des choix énumérés ID : la valeur est un identifiant unique ENTITY : la valeur est une entité valeur-défaut prend l’une des valeurs : valeur : valeur par défaut donnée à l’attribut #REQUIRED : attribut obligatoire, sans valeur par défaut #IMPLIED : attribut optionnel, sans valeur par défaut #FIXED valeur : valeur fixe

DTD : Attributs Exemple <!ATTLIST image source CDATA #REQUIRED> Définition d’un attribut source (obligatoire) pour l’élément image

DTD : Entities Définition d’une entité XML Une entité est une variable utilisée pour définir du texte. L'intérêt d'une entité consiste à pouvoir remplacer autant de fois que nécessaire dans le document XML l'entité par le texte qui lui est associé. Dans le document XML, la référence à une entité est introduite par le caractère "&" suivi du nom de l’entité, et terminée par le caractère ";". Il existe 5 entités prédéfinies en XML : lt, gt, amp, apos et quot (caractères < > & ' ") Une entité est définie avec la balise !ENTITY, et dite: Interne si sa valeur est donnée dans la DTD <!ENTITY nom-entité "valeur"> Externe si sa valeur est fournie dans un fichier externe à la DTD <!ENTITY nom-entité SYSTEM "nom_fichier">

Limites des DTD Une DTD est difficile à lire Une DTD est non extensible (ce n’est pas un document XML). Une DTD ne permet pas de typer les données Une DTD ne peut prendre en compte qu’un seul espace de nom (Namespace).

Exercice : DTD

Exercice : Corrigé

XML - Schéma Une spécification du W3C (2001) pour l’écriture de règles de validation XML Specification : http://www.w3.org/XML/Schema Est lui même exprimé en XML (… Metalanguage …) XML Schéma permettent de spécifier des types de données (restrictions sur les chaînes de caractères, sur des intervalles de nombres) Ne permet pas de définir des entités comme dans les DTD. Est externe.

Un exemple de XML Schéma

Un deuxième exemple

XSD : Elements Déclaration des types de données : Type simple byte, unsignedByte, hexBinary, integer, positiveInteger, negativeInteger, int, unsignedInt, long, unsignedLong, short, unsignedShort, decimal, float, double, string, NormalizedString, token, boolean, anyURI, language, time, dateTime, duration, date, gMonth, gYear, gYearMonth, gDay, gMonthDay, etc. Restriction de types simples Type complexe

XSD : Elements Exemples <xs:element name="titre" type="xs:string"/> <xs:element name="chapitre"  type="chapitreType"/> <xs:complexType name="chapitreType"> <xs:sequence> <xs:element ref="titre" minOccurs="0" maxOccurs="1"/> <xs:element ref="corps" minOccurs="1" maxOccurs="1"/> <xs:element ref="chapitre" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="image" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> Définition d’un élément titre de type chaîne de caractère Définition d’un élément chapitre, composé de quatre éléments : titre (facultatif), corps, chapitre (de 0 à n fois), image (de 0 à n fois)

XSD : Attributs Déclaration des types de données : Type simple byte, unsignedByte, hexBinary, integer, positiveInteger, negativeInteger, int, unsignedInt, long, unsignedLong, short, unsignedShort, decimal, float, double, string, NormalizedString, token, boolean, anyURI, language, time, dateTime, duration, date, gMonth, gYear, gYearMonth, gDay, gMonthDay, etc. Restriction de types simples <xs:attribute name="source" type="xs:string" use="required" value="default"/>

DTD vs XSD La DTD permet de définir facilement et rapidement des grammaires simples. XML-Schema permet de définir de manière plus formelle et complète une grammaire => complexité accrue. Un document XML-Schema respecte la syntaxe XML. Un document XML-Schema est généralement plus volumineux et encore plus difficile à lire qu’une DTD (pour un opérateur humain).

D’autres approches Relax-NG Schematron

Quelques utilisations d’XML XHTML Ant / Maven Spring IOC GraphML / SVG OpenDocument et quelques autres…

XHTML HTML + XML HTML bien formé et valide DTDs : http://www.w3.org/TR/xhtml1/dtds.html#dtds

Ant Un « Makefile » pour Java Fichier Ant en XML

Maven 2 & 3 Gestion complète du cycle de vie en Java Gestion des dépendances Java Project Object Model (POM)

Spring IOC Inversion de contrôle Injection de valeur de propriété Java à l’exécution par chargement de fichier XML Le principe est de découpler les liens de dépendances entre objets. En programmation objet, les objets de type A dépendent d'un objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans un espace à trois dimensions, qui a une fonction précise, et qui peut être désigné par une étiquette verbale. Il est défini par les relations externes qu'il entretient avec son...) de type B si au moins une des conditions suivantes est vérifiée : A possède un attribut de type B (dépendance par composition) ; A est de type B (dépendance par héritage) ; A dépend d'un autre objet de type C qui dépend d'un objet de type B (dépendance par transitivité) ; une méthode de A appelle une méthode de B. Si A dépend de B, cela implique que pour créer A, on ait besoin de B ce qui, en pratique, n'est pas toujours le cas. Pour supprimer la dépendance, un moyen possible consiste à créer une interface I qui contiendra toutes les méthodes que A peut appeler sur B, indiquer que B implémente l'interface I, remplacer toutes les références au type B par des références à l'interface I dans A.

Spring IOC Exemple de chargement d’une classe message contenant une chaine de caractères

GraphML GraphML Working Group 2002 Format XML pour décrire des graphes Orienté structure du graphe (et non pas présentation)

SVG Scalable Vector Graphics (W3C 1999) Format XML pour décrire des images vectorielles Permet de gérer des animations

OpenDocument OASIS 2006 Format XML pour les documents bureautiques (tableur, présentation, traitement de texte, etc.) OpenDocument = format des fichiers OpenOffice Structuration en 4 parties Contenu (content.xml) Style (style.xml) Métadonnées (meta.xml et settings.xml)

OpenDocument Exemple de tableau

Des dizaines d‘autres MathML : Notation mathématiques Xliff : Gestion des traductions VoiceML : Gestion du traitement de la parole WebLab : Document multimédia Office OpenXML : Document MS Office RDF/XML : Standard de représentation de connaissance BPEL : Standard de gestion de processus d’execution XMI : Representation de modèles (tels qu’UML) etc…

Conclusion XML Fondement de très nombreuses technologies Séparer les données de leur présentation Créer de nouveaux formats de données Echanger des données entre applications Valider, stocker et rechercher des données Fondement de très nombreuses technologies Utilisé au quotidien dans l’entreprise

Références Cours de référence Livres En ligne Jenny Benois-Pineau, Georges Gardarin, Yves Bekkers, Khaled Khelif Livres XML in a Nutshell, Third Edition Ed O’Reilly En ligne http://www.w3.org/TR/xml/ http://www.w3schools.com/xml/default.asp