La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

8 - XML Cours XML.

Présentations similaires


Présentation au sujet: "8 - XML Cours XML."— Transcription de la présentation:

1 8 - XML Cours XML

2 Structure en arbre Example de document XML <message>   <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)

3 Structure en arbre Feuille Nom du document Element racine

4 Elements et Attributs Valeur de l’attribut to Choix lié au design
<message      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

5 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

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

7 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

8 Eléments vides Notation: < ... />
<message subject="XML Is Really Cool"> <flag/> <text> How many ways is XML cool? Let me count the ways... </text> </message>

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

10 Instructions de traitement
<?cible instructions?> Destiné à un programme cible Codage des caractères: ISO > latin-1 UTF > 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 :-)

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

12 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

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

14 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

15 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

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

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

18 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

19 Validation des données
<position> <latitude> </latitude> <longitude> </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

20 Validation <position> <latitude>32.904237</latitude>
<longitude> </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

21 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

22 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

23 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

24 Schéma XML <?xml version="1.0” encoding="UTF-8"?>
<xsd:schema targetNamespace=" xmlns:xsd=" xmlns=" 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

25 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=" xmlns:xsd=" xmlns=" 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 Specifying code

26 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=" xmlns:xsd=" xmlns=" 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

27 Schéma XML <?xml version="1.0” encoding="UTF-8"?>
<xsd:schema targetNamespace=" xmlns:xsd=" xmlns=" 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: qui est le targetNamespace ! Specifying code

28 QName <?xml version="1.0” encoding="UTF-8"?>
<xsd:schema targetNamespace=" xmlns:xsd=" xmlns=" 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).

29 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: Le préfixe habituel est de cet espace de nom est xsi: Exemple: <root .... xmlns:xsi='' xsi:schemaLocation='' file:/tp/xschemas/wsdl.xsd'' >

30 Référence au schéma utilisé
Langage temperature Exemple de document instance <?xml version="1.0"?> <temperature xmlns=" xmlns:xsi=" xsi:schemaLocation=" 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é

31 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

32 Cardinalité des éléments

33 ELément optionnel l’élément bb est optionnel
<xsd:schema xmlns:xsd=" >   <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"

34 unbounded signifie “autant que l’on veut”
Tableau d’éléments <xsd:schema xmlns:xsd=" >   <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”

35 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 – E3, INF, -INF, NAN – format: hh:mm:ss.sss – format: CCYY-MM-DD

36 Types simples de base (XML-Schema)

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

38 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

39 UML

40 UML <<schema>> temperature.xsd
<<schema>> temperature.xsd Représentation d’un schéma avec son targetNameSpace

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

42 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

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

44 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

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


Télécharger ppt "8 - XML Cours XML."

Présentations similaires


Annonces Google