8 - XML Cours XML.

Slides:



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

1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Transformation de documents XML
DTD Sylvain Salvati
Thème 3 : plate-forme de modélisation et de gestion de référentiels XML étapes modélisation des structures (UML) gestion du référentiel de modélisation.
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 2 : Transformation de documents XML
Extensible Markup Language
le langage les éléments
SVG: Scalable Vector Graphics. Dialecte dXML pour la représentation de graphique vectoriel 2D Tracés de base en vectoriel (courbes, lignes, rectangles,…)
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
Tutoriel XML – Première Partie F. Sajous & L. Tanguy ERSS – Sémantique et Corpus.
Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/ Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.
Manipulation d’XML avec XSL
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
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.
<XML/> Bruno GRILHERES (EADS CASSIDIAN)
XML : concours d’acronymes ou futur standard ?
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.
XML Plan du cours Introduction au fichier 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
Les outils de base : XPath, XSL, XLink, XForms
Paradigmes des Langages de Programmation
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
Introduction à XML Généralités.
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.
XPath XML Path UP Web Année universitaire
Représentation des connaissances et échanges d’information Working with 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.
Copyright © 2005 Yves MARCOUX1 Concepts XML de base Yves MARCOUX EBSI - Université de Montréal.
Initiation à XML Antonin Benoît DIOUF eXtensible Markup Language.
1 Schémas XML - cours 1 Éric Laporte Institut Gaspard-Monge Université Paris-Est Marne-la-Vallée.
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.
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.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
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.
INF2005– Programmation web– A. Obaid Variantes de HTML.
Jean Vieille Research community Consulting group
Extensions à la spécification XML Le "plus petit cercle" XML Yves Bekkers Mise à jour : 9 octobre 2003.
DTD - Y. Bekkers - IFSIC1 DTD Document Type Definition Yves Bekkers Mise à jour : 31 mai 2016.
Transcription de la présentation:

8 - XML Cours XML

Structure en arbre Example de document XML <message>  <to>you@yourAddress.com</to>   <from>me@myAddress.com</from>   <subject>XML Is Really Cool</subject>   <text>   How many ways is XML cool? Let me count the ways...   </text> </message> Présence obligatoire d’un élément racine (qui contient tous les autres)

Structure en arbre Feuille Nom du document Element racine

Elements et Attributs Valeur de l’attribut to Choix lié au design <message to="you@yourAddress.com" from="me@myAddress.com"      subject="XML Is Really Cool">   <text>     How many ways is XML cool? Let me count the ways...   </text> </message> Valeur de l’attribut to Fin de l’element message

Noms Libre avec certaines règles Pas d’espaces, pas d’accents Premier caractère alphabétique … Noms sensibles aux majuscules-minuscules Noms composés avec le caractère - autorisés: exemple: ordre-achat

Noms qualifiés : QName Noms avec préfixe (Qualified Name) exemple: xsd:element, svg:rectangle Ils évitent les collisions de noms (notion d’espace de noms)

Noeuds et feuilles Noeuds Feuilles Le noeud racine message a comme fils 4 noeuds: 3 noeuds de type attributs et de noms: to, from, subject 1 noeud de type élément et de nom text Feuilles Les feuilles de l’arbre correspondent aux valeurs des éléments et des attributs

Eléments vides Notation: < ... /> <message to="you@yourAddress.com" from="me@myAddress.com" subject="XML Is Really Cool"> <flag/> <text> How many ways is XML cool? Let me count the ways... </text> </message>

Commentaires <!-- les commentaires sont ignorés --> <message to="you@yourAddress.com" from="me@myAddress.com" subject="XML Is Really Cool"> <!-- ceci est un commentaire --> <text> How many ways is XML cool? Let me count the ways... </text> </message>

Instructions de traitement <?cible instructions?> Destiné à un programme cible Codage des caractères: ISO-8859-1 ---> latin-1 UTF-8 ---> Unicode <?xml version="1.0" encoding="UTF-8" standalone="yes"?> Les documents XML peuvent contenir des caractères français ( êèé…). Pour que le parser XML les comprenne, il est conseillé de sauver vos documents en Unicode avec un éditeur compréhensif :-)

Substitutions prédéfinies Syntaxe: &substitution; Obligatoires Facultatives > plus grand que & & ampersand < plus petit que " “ guillemets " " "

Pas de blancs entre ces 3 caractères Section CDATA Les caractères d’une section CDATA ne sont pas analysés par le parser <script> <![CDATA[ function matchwo(a,b){ if (a < b && a < 0) then return 1; else return 0 } ]]> </script> Pas de blancs entre ces 3 caractères

Document bien formé Si et seulement si: Structure en arbre respectée + Respect des règles de nommage

XML & la présentation Feuilles de style pour la présentation Langage XSLT de transformation de page: XSLT transforme un document XML vers un document XML, PDF, HTML, TEXTE, … Langage push-pull à base de règles

XML et la programmation Traitement de données locales ou sur réseau Programmation par documents XML spécifiant une composition de composants Binding: génération automatique à partir d’un schéma d’une partie importante de l’application

Langages XML XHTML1.0: Web SVG: Scalable Vector Graphics SMIL: Synchronized Multimedia Integration Language ebXML: Electronic Business with XML ...

Modélisation des données par Schémas XML

Définition Un schéma XML déclare: Un vocabulaire Un ensemble de règles (grammaire) précisant comment utiliser les mots du vocabulaire Un schéma XML sert: De modèle pour la création de documents XML. Ces documents sont appelés documents instances

Validation des données <position> <latitude>32.904237 </latitude> <longitude>73.620290 </longitude> </position> Validité de cette donnée ? La latitude doit être présente et comprise entre -90 et +90 La longitude doit être présente et comprise entre -180 et +180

Validation <position> <latitude>32.904237</latitude> <longitude>73.620290</longitude> </position> Validateur ok! RELAX NG and XML Schema are two examples. In RELAX NG <grammar> and <define> are conceptually a map. In XML Schema Qnames are references. After all, there is a reason why we humans are writing programs by ourselves. -Vérifier que l’on a une latitude et une longitude -Vérifier que la latitude est comprise entre -90 and +90 -Vérifier que la longitude est comprise entre -180 and +180 XML Schema

Schémas Spécification De la structure des documents instance Du type des éléments et attributs Schémas les plus utilisés Relax-NG XML-Schema

Utilisation des schémas XML document Parser Validateur Compilateur Java/c++ . . . Data binding Reduit le temps de dévelopement Tranforme une représentation externe en une représentation interne

temperature Namespace Vocabulaires Les vocabulaires sont associés avec un nom (namespace) XMLSchema Namespace temperature Namespace Schema xmlns targetNamespace temperature element name type min max complexType sequence simpleType restriction forecast_low Specifying code enumeration forecast_high C’est le vocabulaire que XMLSchema vous fournit Pour définir votre nouveau vocabulaire

Schéma XML <?xml version="1.0” encoding="UTF-8"?> <xsd:schema targetNamespace="http://schemas/temperature" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas/temperature” elementFormDefault="qualified" > <xsd:element name="temperature" type="Temperature"/> <xsd:complexType name="Temperature"> <xsd:sequence> <xsd:element name="min" type="DegreeRange"/> <xsd:element name="max" type="DegreeRange"/> <xsd:element name="forecast-low" type="DegreeRange"/> <xsd:element name="forecast-high" type="DegreeRange"/> </xsd:sequence> </xsd:complexType>  <xsd:simpleType name="DegreeRange" > <xsd:restriction base="xsd:decimal"> <xsd:minInclusive value="-70"/> <xsd:maxInclusive value="80"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> Specifying code

Schéma XML <?xml version="1.0” encoding="UTF-8"?> Tous les schémas XML ont schema comme élément racine <?xml version="1.0” encoding="UTF-8"?> <xsd:schema targetNamespace="http://schemas/temperature" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas/temperature” elementFormDefault="qualified" > <xsd:element name="temperature" type="Temperature"/> <xsd:complexType name="Temperature"> <xsd:sequence> <xsd:element name="min" type="DegreeRange"/> <xsd:element name="max" type="DegreeRange"/> <xsd:element name="forecast-low" type="DegreeRange"/> <xsd:element name="forecast-high" type="DegreeRange"/> </xsd:sequence> </xsd:complexType>  <xsd:simpleType name="DegreeRange" > <xsd:restriction base="xsd:decimal"> <xsd:minInclusive value="-70"/> <xsd:maxInclusive value="80"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> les éléments et types utilisés pour construire des schemas - schema - element - complexType - simpleType - sequence - decimal ......... proviennent de l’espace de nom http://…/XMLSchema Specifying code

Schéma XML targetNamespace: dit que les éléments définis par ce schéma - temperature - min - max - forecast_low - forecast_high appartiennent à ce namespace <?xml version="1.0” encoding="UTF-8"?> <xsd:schema targetNamespace="http://schemas/temperature" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas/temperature” elementFormDefault="qualified" > <xsd:element name="temperature" type="Temperature"/> <xsd:complexType name="Temperature"> <xsd:sequence> <xsd:element name="min" type="DegreeRange"/> <xsd:element name="max" type="DegreeRange"/> <xsd:element name="forecast-low" type="DegreeRange"/> <xsd:element name="forecast-high" type="DegreeRange"/> </xsd:sequence> </xsd:complexType>  <xsd:simpleType name="DegreeRange" > <xsd:restriction base="xsd:decimal"> <xsd:minInclusive value="-70"/> <xsd:maxInclusive value="80"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> Specifying code

Schéma XML <?xml version="1.0” encoding="UTF-8"?> <xsd:schema targetNamespace="http://schemas/temperature" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas/temperature” elementFormDefault="qualified" > <xsd:element name="temperature" type="Temperature"/> <xsd:complexType name="Temperature"> <xsd:sequence> <xsd:element name="min" type="DegreeRange"/> <xsd:element name="max" type="DegreeRange"/> <xsd:element name="forecast-low" type="DegreeRange"/> <xsd:element name="forecast-high" type="DegreeRange"/> </xsd:sequence> </xsd:complexType>  <xsd:simpleType name="DegreeRange" > <xsd:restriction base="xsd:decimal"> <xsd:minInclusive value="-70"/> <xsd:maxInclusive value="80"/> </xsd:restriction> </xsd:simpleType> </xsd:schema> Le namespace par défaut est: http://schemas/temperature qui est le targetNamespace ! Specifying code

QName <?xml version="1.0” encoding="UTF-8"?> <xsd:schema targetNamespace="http://schemas/temperature" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas/temperature” elementFormDefault="qualified" > … Specifying code C’est une directive pour tous les documents instance se conformant à ce schéma: tous les éléments utilisés par le document instance qui étaient déclarés dans ce schéma doivent être namespace qualified (préfixés).

XMLSchema- instance XMLSchema-instance définit des attributs pour une utilisation directe dans les documents XML. Ces attributs se trouvent dans un espace de noms différent qui a pour nom: http://www.w3.org/2001/XMLSchema-instance Le préfixe habituel est de cet espace de nom est xsi: Exemple: <root .... xmlns:xsi=''http://www.w3.org/2001/XMLSchema-instance'' xsi:schemaLocation=''http://schemas.xmlsoap.org/wsdl/ file:/tp/xschemas/wsdl.xsd'' >

Référence au schéma utilisé Langage temperature Exemple de document instance <?xml version="1.0"?> <temperature xmlns="http://schemas/temperature" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas/temperature temperature.xsd"> <min>-4.1</min> <max>12.7<max> <forecast_low>-6.0</forecast_low> <forecast_high>8.0</forecast_high> </temperature> Specifying code Référence au schéma utilisé

Validation multiple Valide que temperature.xml XMLSchema.xsd temperature.xml temperature.xsd Valide que temperature.xml est conforme aux règles du schéma temperature.xsd Valide que le schéma est conforme aux règles du schéma des schémas

Cardinalité des éléments

ELément optionnel l’élément bb est optionnel <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >   <xsd:element name="aa">     <xsd:complexType name="AaType">       <xsd:sequence >         <xsd:element name="bb"B minOccurs="0"maxOccurs="1"Btype="xsd:string"/>         <xsd:element name="cc" Ctype="xsd:string"/>       </xsd:sequence>     </xsd:complexType>   </xsd:element> </xsd:schema> l’élément bb est optionnel Par défaut: minOccurs= maxOccurs="1"

unbounded signifie “autant que l’on veut” Tableau d’éléments <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >   <xsd:element name="aa">     <xsd:complexType name="AaType">       <xsd:sequence >         <xsd:element name="bb"B minOccurs="0"maxOccurs="3"Btype="xsd:string"/>         <xsd:element name="cc" maxOccurs="unbounded" type="xsd:string"/>       </xsd:sequence>     </xsd:complexType>   </xsd:element> </xsd:schema> unbounded signifie “autant que l’on veut”

Types prédéfinis Types Primitifs Types Atomiques – "Hello World" – string – boolean – decimal – float – double – time – date … Types Atomiques – "Hello World" – {true, false, 1, 0} – 7.08 – 12.56E3, INF, -INF, NAN – format: hh:mm:ss.sss – format: CCYY-MM-DD …

Types simples de base (XML-Schema)

Types simples ou complexes Utilisez l’élément complexType quand vous voulez définir des éléments fils et/ou des attributs d’un élément Utilisez l’élément simpleType quand vous voulez créer un nouveau type qui soit une spécialisation d’un type simple prédéfini (string, date, décimal, etc)

Types anonymes et nommés <xsd:element name="a" type="Foo"/> <xsd:complexType name=”Foo"> <xsd:sequence> <xsd:element name="b" …/> <xsd:element name="c" …/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="a"> <xsd:complexType> <xsd:sequence> <xsd:element name="b" …/> <xsd:element name="c" …/> </xsd:sequence> </xsd:complexType> </xsd:element> équivalent

UML

UML <<schema>> temperature.xsd http://schemas/temperature <<schema>> temperature.xsd Représentation d’un schéma avec son targetNameSpace

<<schema>> UML http://schemas/temperature temperature <<schema>> temperature.xsd Représentation d’un schéma avec son targetNameSpace et son élément racine

UML (schema) NameSpace racine B F d:int b e:int c:double 1 d:int b racine e:int c:double <xsd:complexType name=”F”> <xsd:sequence> <xsd:element name="b" type="B"/> <xsd:element name="c” type="xsd:double"/> </xsd:sequence> </xsd:complexType <xsd:complexType name=B”> <xsd:sequence> <xsd:element name="d" type="xsd:int"/> <xsd:element name="e” type="xsd:int"/> </xsd:sequence> </xsd:complexType

UML (schema) Types, éléments & attributs <xsd:complexType name="Part"> <xsd:sequence> <xsd:element name="name" type="xsd:string" /> <xsd:element name="price" type="xsd:decimal" /> </xsd:sequence> <xsd:attribute name="partID" type="xsd:token" /> <xsd:attribute name="inStock" type="xsd:positiveInteger" /> </xs:complexType>

Conclusion XML et XML-Schema vont nous permettre de décrire des données complexes Un XML-Schema est un modèle d’une classe de données Un document XML est une instance de ce modèle

TP 4 à faire 3 sujets de TP sur XML, XML Schéma, XSLT sous NetBeans