XML eXtensible Markup Language

Slides:



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

HTML Abda Anne Plan Présentation Structure Texte Listes Images Liens Tableaux Formulaires.
Introduction aux Web Services Partie 1. Technologies XML
XML.
Transformation de documents XML
DTD Sylvain Salvati
Cours MIAGE Henry Boccon-Gibod1 XML, langage de structuration Modélisation structurelle en XML de Messages et de Documents.
Cours MIAGE Henry Boccon-Gibod 1 Extensible Mark up Language Modélisation structurelle de Messages e t de Documents en XML XML Schema.
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
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
le langage les éléments
Le typage orienté objet pour les données XML
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
TP 3-4 BD21.
Manipulation d’XML avec XSL
Introduction et Concepts : De SGML à XML
Introduction aux Web Services Partie 1. Technologies HTML-XML
Adamou Mahamane Sidi Maman Bachir
Langage de structuration des données: XML
Cours 3: Base de donnée XML
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Modélisation E/R des Données
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Web Structurel
28 novembre 2012 Grégory Petit
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
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
<XML/> Bruno GRILHERES (EADS CASSIDIAN)
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.
Agenda Généralités sur XMLGénéralités sur XML La syntaxe du langage Les API pour XML Un exemple Un exercice.
Les feuilles de style CSS
Initiation à XML Sebti Foufou.
8 - XML Cours XML.
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.
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 HTML ISN Terminale S Un peu d’histoire …
Le langage XML.
Les Schémas XML Le standard W3C.
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
Seminaire XML B. Rothenburger A. Nouvel XML XSD XSL IRIT Toulouse Disponible Consultable dans l'équipe 21...
Conception et Manipulations des Documents
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.
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.
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
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.
ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.
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.
Le langage XML Documents bien formés Un document XML est dit bien formé lorsque le document est correct sans toutefois posséder une DTD. Le prologue du.
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.
DTD EAD.
DTD - Y. Bekkers - IFSIC1 DTD Document Type Definition Yves Bekkers Mise à jour : 31 mai 2016.
Transcription de la présentation:

XML eXtensible Markup Language Benjamin SACLIER (MFI) Sources : Georges Gardarin, Jean-Pierre Fournier

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) Langage à balises encadrement des champs par des balises début et fin Multiples précurseurs dont les plus connues : SGML pour la structuration HTML pour la présentation

XML= un nouveau langage d'échange basé sur le balisage XML= plus simple que SGML XML= plus ouvert que HTML 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

XML Langage portable, échangeable, universel lisible présentable (navigateurs Web) Avec garantie possible de cohérence des données sans SGBD mais compatible avec tous les SGBD (import-export)

XML standardise la manière dont l'information est: échangée présentée archivée retrouvée transformée cryptée ...

XML c’est quoi ? un langage de balises, héritier de html, sgml… un métalangage : l’utilisateur définit lui-même ses balises exemple xml : <coucou>Un texte</coucou>

XML exemple simple <?xml version="1.0" encoding="UTF-8"?> <listePersonnes> <personne statut ="etudiant" > <nom>Dupont</nom> <prenom>Arthur</prenom> <adresse pays="France"> <numero>10</numero> <rue>rue des Alouettes</rue> <codePostal>91400</codePostal> <ville>Orsay</ville> </adresse> </personne> </listePersonnes> Encodage par défaut Balises ouvrantes et fermantes Balise avec attributs

Exemple complet

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 Mougin

Au point où nous en sommes Au point où nous en sommes :un document XML est identique à un fichier textuel, mais : il est un peu plus portable (indication de l’encodage employé) chaque information est associée à une « étiquette », sa balise, donc plus facilement identifiable et contrôlable la qualité de sa structure est facile à vérifier pour l’instant, la cohérence de ses informations n’est pas garantie…

Incohérences sémantique Exemple d’un fichier XML de structure correcte avec des incohérences sémantiques: <?xml version="1.0" encoding="UTF-8"?> <!-- commentaire xml --> <listePersonnes> <personne statut="etudiant"> <nom>Dupont</nom> <prenom>12342</prenom> <numero>10</numero> <adresse pays="France"> <rue>rue des Alouettes</rue> <codePostal>Le Guichet</codePostal> <ville>Orsay</ville> </adresse> </personne> </listePersonnes> Prénom numérique numéro mal placé, adresse incomplète…

Contrôle du xml XML n’est vraiment puissant que si la cohérence est contrôlée pour cela, deux technologies au choix: le DTD rudimentaire mais suffisant dans la plupart des cas syntaxe différente le XML-Schéma puissant (données plus fortement typées) syntaxe de style xml DTD ou/et schéma permettent de définir son propre langage basé sur XML Vocabulaire (balises) Grammaire (imbrications) les données de contrôle peuvent être dans le fichier xml lui-même, dans un fichier annexe, sur le Web

DTD Une DTD décrit les balises autorisées dans un document xml, l’ordre dans lequel elles doivent être imbriquées, leurs éventuels attributs, les types des informations qu’elles encapsulent <!ELEMENT listePersonnes (personne+) > <!ELEMENT personne (nom, prenom?, adresse)> <!ATTLIST personne statut CDATA #REQUIRED > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT adresse (numero?, rue, codePostal, ville)> <!ATTLIST adresse pays NMTOKENS #IMPLIED> <!ELEMENT numero (#PCDATA) > <!ELEMENT rue (#PCDATA) > <!ELEMENT codePostal (#PCDATA) > <!ELEMENT ville (#PCDATA) >

Lien xml DTD séparée <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE listePersonnes SYSTEM 'listePersonnes.dtd' > <listePersonnes> <personne statut ="etudiant" > <nom>Dupont</nom> <prenom>12342</prenom> <adresse pays="France"> <numero>10</numero> <rue>rue des Alouettes</rue> <codePostal>Le Guichet</codePostal> <ville>Orsay</ville> </adresse> </personne> </listePersonnes>

XML / DTD 1 seul fichier <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <!DOCTYPE listePersonnes [ <!ELEMENT listePersonnes (personne+) > <!ELEMENT personne (nom, prenom?, adresse)> <!ATTLIST personne statut CDATA #REQUIRED > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT adresse (numero?, rue, codePostal, ville)> <!ATTLIST adresse pays NMTOKENS #IMPLIED> <!ELEMENT numero (#PCDATA) > <!ELEMENT rue (#PCDATA) > <!ELEMENT codePostal (#PCDATA) > <!ELEMENT ville (#PCDATA) >]> <listePersonnes> <personne> <statut libellé="etudiant" /> <nom>Dupont</nom> <prenom>12342</prenom> <adresse pays="France"> <numero>10</numero> <rue>rue des Alouettes</rue> <codePostal>Le Guichet</codePostal> <ville>Orsay</ville> </adresse> </personne> </listePersonnes>

Lien DTD web <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DO'ChTtYtPpE: /l/ilsotceaPlehrossotn/nleisstSeYPSeTrEsMo nnes.dtd' > <listePersonnes> <personne statut ="etudiant" > <nom>Dupont</nom> <prenom>12342</prenom> <adresse pays="France"> <numero>10</numero> <rue>rue des Alouettes</rue> <codePostal>Le Guichet</codePostal> <ville>Orsay</ville> </adresse> </personne> </listePersonnes>

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

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

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

Exemple d’une DTD <!ELEMENT listePersonnes (personne+) > <!ELEMENT personne (nom, prenom?, adresse)> <!ATTLIST personne statut CDATA #REQUIRED > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > 􀂆 une balise « listePersonnes » contient au moins 1 balise personne 􀂆 une balise « personne » contient une balise nom, une éventuelle balise prenom, une balise adresse, le tout dans l’ordre indiqué 􀂆 la balise « personne » contient un attribut « statut » obligatoire 􀂆 + signifie « au moins une » 􀂆 * signifie « au moins zéro » 􀂆 ? signifie « 0 ou 1 » 􀂆 xxx | yyy signifie une de ces deux balises au choix 􀂆 #PCDATA « parsed character data » 􀂆 #REQUIRED = obligatoire, #IMPLIED = facultatif

XML Schéma Limite des DTD Objectif de XML Schéma Description limitée dans des documents structurés Problème de typage (PCDATA) Exprimé dans un langage autre que XML Pas les mêmes parseurs Objectif de XML Schéma Amélioration du typage Amélioration de la structure Nombre borné d’éléments inclus … Remplace de plus en plus la DTD car exprimé en syntaxe XML et extensible

XML Schéma Comme une DTD, le Schéma (xsd) permet de garantir la cohérence des données xml, mais : sa syntaxe est de style xml le niveau de précision est beaucoup plus élevé Dans le document xml : <listePersonnes xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation="listePersonnes.xsd">

XML Schéma 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)

Les types simples string byte hexBinary integer positiveInteger Confirm this is electric byte -1, 126 hexBinary 0FB7 boolean true, false 1, 0 time 13:20:00.000, 13:20:00.000-05:00 dateTime 1999-05-31T13:20:00.000-05:00 duration P1Y2M3DT10H30M12.3S float -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN integer -126789, -1, 0, 1, 126789 positiveInteger 1, 126789 negativeInteger -126789, -1 nonNegativeInteger 0, 1, 126789 nonPositiveInteger -126789, -1, 0 int -1, 126789675 unsignedInt 0, 1267896754 anyURI http://www.example.com/,

Les types complexes Définition d'objets complexes Exemple <sequence> : collection ordonnée d'éléments typés <all> : collection non ordonnée d'éléments typés <choice>: choix entre éléments typés Exemple <xsd:complexType name="AddresseFR"> <xsd:sequence> <xsd: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" fixed="FR"/> </xsd:complexType>

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>

XML Schema: exemple (1) <xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <xsd:element name="commande" type="CommandeType"/> <xsd:element name="commentaire" type="xsd:string"/> <xsd:complexType name="CommandeType"> <xsd:sequence> <xsd:element name="livrer" type="Adresse"/> <xsd:element name="facturer" type="Adresse"/> <xsd:element ref="commentaire" minOccurs="0"/> <xsd:element name="produits" type="ProduitType"/> </xsd:sequence> <xsd:attribute name="date_com" type="xsd:date"/> </xsd:complexType>

XML Schema : exemple (2) <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>

Feuille de style

Feuille de style La représentation de cette lettre en XML ne comporte aucune indication sur sa mise en page Les aspects graphiques ou typographiques sont absents du source XML Ces aspects seront définis par l’intermédiaire d’une feuille de style Une feuille de style est un ensemble de règles pour spécifier la réalisation concrète d’un document sur un média particulier On ajoute dans le début du fichier xml un lien vers la feuille de style, fichier xsl <?xml-stylesheet type="text/xsl« href="transformateur.xsl"?> Ce fichier peut être local ou accédé via une URL

Conception de DTD/Schéma Possible à partir d’une modélisation ULM

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

Exemple DTD Convertisseur TAC vers XML (metaf2xml) <!ENTITY % cloudType 'AC|ACC|ACSL|AS|CB|CBMAM|CC|CCSL|CI|CS|CU|CF|CUFRA|NS|SAC|SC|SCSL|ST|SF|STFRA|TCU'> <!ENTITY % colourCodes 'BLUplus|BLU|WHT|GRN|YLO|YLO1|YLO2|AMB|RED|FCSTCANCEL'> <!ENTITY % cloudCover 'FEW|SCT|BKN|OVC'> <!ENTITY % cloudFamily '0|1|2|3|4|5|6|7|8|9'> <!ENTITY % phenomDescr 'isFrequent|isOccasional|isIntermittent|isContinuous|isThick|isPrettyThick|isVeryThick|isThin|isPrettyThin|isVeryThin|isFeeble|isPrettyFeeble|isVeryFeeble|isLight|isPrettyLight|isVeryLight|isModerate|isLow|isLower|isIsolated|isConvective|isDissipated|inPastHour|baseBelowStation|isAloft|isAround|isFreezing|isPatchy'> <!ENTITY % unitRadiation 'kJmm|Jcmcm'> <!ENTITY % unitSpeed 'KT|MPS|KMH'> <!ENTITY % period '1d|24h|1h|n'> <!ENTITY % compassDir 'N|NNE|NE|ENE|E|ESE|SE|SSE|S|SSW|SW|WSW|W|WNW|NW|NNW'>

Exemple DTD <!ELEMENT taf (ERROR?, WARNING?, obsStation?, issueTime?, fcstPeriod?, reportModifier?, fcstNotAvbl?, sfcWind?, (CAVOK | (visPrev?, weatherList?, cloudList?, visVert?)), (turbulence | icing | windShearLvl | QNH)*, trendList?, (tempAt | tempMaxAt | tempMinAt | correctedAt | amendedAt | limMetwatch | autoMetwatch | amendment)*, tafRemarkList?)> <!ATTLIST taf s CDATA #REQUIRED>

Exemple xml <?xml version="1.0" encoding="UTF-8"?> <data> <options><format v="xml" /> <lang v="en" /> <mode v="latest" /> <msg_metaf v="" /> <msg_synop v="AAXX 09004 08495 11459 30714 10147 20136 30151 40159 58005 60001 70511 83500 92350 " /> <src_metaf v="noaa" /> <src_synop v="nws_land" /> <type_metaf v="metar" /> <type_synop v="synop" /> </options> <reports> <synop s="AAXX 09004 08495 11459 30714 10147 20136 30151 40159 58005 60001 70511 83500 92350"> <obsStationType s="AAXX"> <stationType v="AAXX" /> </obsStationType> <obsTime s="0900"> <day v="09" /> <hour v="00" /> <minute v="00" /> </obsTime> <windIndicator s="4"><windUnit v="KT" /> </windIndicator> <stationId s="08495"> <id v="08495" /> <region v="VI" /> <precipInd s="1"> <precipIndVal v="1" /> </precipInd> <wxInd s="1"> <wxIndVal v="1" /> </wxInd> <baseLowestCloud s="4"> <from v="300" u="M" /> <to v="600" u="M" /> </baseLowestCloud> <visPrev s="59"> <distance v="9" u="KM" /> </visPrev> <totalCloudCover s="3"> <oktas v="3" /> </totalCloudCover> <sfcWind s="0714"> <wind> <dir v="70" /> <speed v="14" u="KT" /> </wind> </sfcWind> <temperature s="10147 20136"> <air> <temp v="14.7" u="C" /></air>

Exemple Interface WEB

WIS XML/BUFR