Title: Les technologies XML
1Les technologies XML
- Cours 1 Introduction au langage XML
- (XML, DTD, XML-Schema)
- Janvier 2007
2PRESENTATION DU COURS 1/2
- 1 Introduction au langage XML
- XML
- DTD
- XML-Schema
- 2 Transformation de documents XML
- XPath
- XSLT
- 3 Présentation de documents XML
- XSL Fo
- 4 Langages XML
- Xquery
- XMI
- XUL
3PRESENTATION DU COURS 2/2
- 5 Les APIs XML
- 6 XML et les architectures N-tiers
- 7 Technologies liées à XML
- EJB
- Web Services
- 8 Exemples dapplications de XML
4SOMMAIRE DU COURS INTRODUCTION A XML
- Rappel sur HTML
- Problématique à lorigine de XML
- (le W3C)
- Caractéristiques et définition de XML
- Applications de XML
- Structure dun document XML
- Spécifications du langage XML
- Définitions de Types de Document (DTD)
- XML-Schema
- Conclusion DTD versus XML-Schema
5Du HTML vers XML
- Rappel du HTML
- HTML langage de base pour la création des
interfaces des services web. - Premier pas vers description de contenu
6Eléments du HTML
- Balises
- Balises de structure du document
- Balises de formatage
- Balises de listes
- Balises des hyperliens
- Balises des images et des images maps
- Balises de tableaux
- Balises de formulaires
- Balises des cadres
- Balises de contenus executables
- Balises possèdent des attributs
Ce rappel est loin dêtre exhaustif et ne donne
que des éléments nécessaires pour ce cours
7Balisesde la structure (1)
- ltHTMLgt lt/HTMLgt - balise obligatoire
- ltHEADgt lt/HEADgt - contient les balises qui
composent lentête du document - ltBODYgt lt/BODYgt - contient lensemble des contenus
des balises qui composent le corp dun document - ltTITLEgt lt/TITLEgt donne un titre descriptif dun
document, saffiche dans la barre de navigateur - ltSTYLEgt lt/STYLEgt - spécifie les propriétés du
style relatives au document - ..
8Premier exemple HTML
- lt!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Tansitional//EN" "http//www.w3.org/TR/xhtml1/DTD/
xhtml1-transitional.dtd"gt - lthtml xmlns"http//www.w3.org/1999/xhtml"
lang"fr"gt - ltstyle type "text/css"gt
- body font-family Helvetica
- h2 font-family Arial color bluefont-size
22px - h3 font-family Arial color bluefont-size
16px - .reponse colorred font-weight bold
- lt/stylegt
- ltheadgt
- ltmeta http-equiv"Content-Type"
content"text/xhtml charsetiso-8859-1"/gt - lttitlegtTD1lt/titlegt
- lt/headgt
- ltbodygt
- lth2gtPremier exemple HTMLlt/h2gt
- ltol type"i" compactgt
- ltligt lta href"installation"gtInstaller et
configurer Tomcatlt/agtlt/ligt - ltligt lta href"td1"gtRéaliser une page html avec
quelques contrôles Javascriptlt/agtlt/ligt - lt/olgt
9Premier Exemple
10Balises de formatage(2)
- 2. Balises de formatage
-  Mélange du contenu et du style  du fond et
de la forme - ltBgt texte lt/Bgt, - texte en gras
- ltfontgt texte ltfontgt,
- ltBRgtlt/BRgt - saut de ligne
- ltHRgtlt/HRgt - insertion dune ligne horisontale
- Utiliser les feuilles de style CSS!
- .
-
11Exemple 2
- lt!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Tansitional//EN" "http//www.w3.org/TR/xhtml1/DTD/
xhtml1-transitional.dtd"gt - lthtml xmlns"http//www.w3.org/1999/xhtml"
lang"fr"gt - lt--exemple 2 avec les elements de formattage en
plus----/gt - ltstyle type "text/css"gt
- body font-family Helvetica
- h2 font-family Arial color bluefont-size
22px - h3 font-family Arial color bluefont-size
16px - .reponse colorred font-weight bold
- lt/stylegt
- ltheadgt
- ltmeta http-equiv"Content-Type"
content"text/xhtml charsetiso-8859-1"/gt - lttitlegtTD1lt/titlegt
- lt/headgt
- ltbodygt
- lth2gtPremier exemple HTMLlt/h2gt
- ltfont size7 color"red" face"Helvetica"gt
- Quelques formatages locaux
- Desapprouvés par W3C
- lt/fontgt
12Balises de liste (3)
- HTML4.01 Listes de définitions, listes
numérotées,listes à puces, compatibilité HTML3.2 - ltli type  type de liste start valeur
initiale compact value3gttextelt/ligt - OL listes numérotées,
- ltol typei/a/ start valeur initialeÂ
compact/gt - UL listes avec les puces
- ltul type disc /  square /  circleÂ
compact/gt
13Exemple 3
- .
- ltbodygt
- lth2gtPremier exemple HTMLlt/h2gt
- ltli type"i" start 3 value4gtnous
commensonslt/ligt - attributs sont sans effet
- ltol type "a" compactgt
- ltligt action1 lt/ligt
- ltligt action2 lt/ligt
- lt/olgt
- ltol type"i" compactgt
- ltligt lta href"installation"gtInstaller et
configurer Tomcatlt/agtlt/ligt - ltligt lta href"td1"gtRéaliser une page html avec
quelques contrôles Javascriptlt/agtlt/ligt - lt/olgt
- ltol type"a" compact start 3gt
- ltligt action3 lt/ligt
- ltligtaction4lt/ligt
- lt/olgt
- ltul typedisc compactgt
- ltligt Les actions sont à specifierlt/ligt
14Balises dhyperliens(4)
- ltagt
- Deux fonctions
- 1. associée à latribut HREF définit un hyperlien
- 2.associée à lattribut  name définit un ancre
à lintérieur du document - - possibilité de naviguer dans des documents
volumineux -
15Exemple 4
- ..
- ltbodygt
- lth2gtBalises des hyperliens HTMLlt/h2gt
- ltol type"i" compactgt
- ltligt lta href"installation"gtInstaller et
configurer Tomcatlt/agtlt/ligt - ltligt lta href"td1"gtRéaliser une page html avec
quelques contrôles Javascriptlt/agtlt/ligt - lt/olgt
- lthrgtlt/hrgt
- ltfont size1 color blue face Arialgt
- tttttttttttttttttltbrgt
- tttttttttttttttltbrgt
- ..
- lt/fontgt
- lthrgtlt/hrgt
- lta name"installation"gtlt/agt
- lth3gtNe rien faire pour le momentlt/h3gt
- ltfont size1 color green face Arialgt
- aaaaaaaaaaaaaaaaaaaaaltbrgt
- aaaaaaaaaaaaaaaaaaaaaaaaaaaltbrgt
16Balises de tableaux (6)
- lttable align left/center/rightÂ
border épasseur bgcolor couleur - Width largeur en de fenêtre/pels
cols nombre de colonnes - lt/tablegt
- Balises corrélatives
- ltcaptiongt,lttheadgt, lttfootgt,lttbodygt,ltcolgroupgt,ltcol
gt,lttrgt,ltth,lttdgt
17Balises de tableaux(6)
- ltcolgroupgt permet de définir des propriétés
communes à un gourpe de colonnes - ltcolgroup span3 align center valign top gt
- lt/colgroupgt
- lttrgt lt/trgt définit une ligne de tableau
- lttdgt lt/tdgt définit une cellule à linterieur de
tr - ltthgt lt/thgt de même
- Attribut importan colspan
- lttr align  left colspan3gt.lt/trgt
18- .
- ltbodygt
- lth2gtTableau de HTMLlt/h2gt
- lttable border 1gt
- lttbodygt
- lttrgt
- lttd align"center"gtPremière colonne du premier
groupe centrée lt/tdgt - lttd align"right"gtSeconde colonne du premier
groupe alignée à droitelt/tdgt - lttd align"center"gtpremiere colonne du second
groupe centréelt/tdgt - lttd align"center"gtseconde colonne du second
groupe centréelt/tdgt - lt/trgt
- lttrgt
- lttd align"center"gt1.1lt/tdgt
- lttd align"right"gt1.2lt/tdgt
- lttd align"center"gt2.1lt/tdgt
- lttd align"center"gt2.2lt/tdgt
- lt/trgt
- lt/tbodygt
19PROBLEMATIQUE 1/2
- Informations et documents dans lentreprise
- Constat
- Inflation du volume dinformations
- Coût et difficulté
- Difficultés à retrouver un document
- Coût induit par la gestion de documents
20PROBLEMATIQUE 2/2
21W3C
- Le WORLD WIDE WEB Consortium crée des standards
pour le Web. - Le W3C en 7 points
- Accès universel (internationalisation, web
mobile) - Web sémantique (RDF, XML)
- Confiance (signatures électroniques,
collaboratif) - Intéropérabilité (consensus industriel)
- Evolutivité (simplicité, modularité,
compatibilité) - Décentralisation (systèmes répartis, tolérance
aux erreurs) - Multimédia (SVG, SMIL)
- Pour plus dinformations www.w3c.org
22CARACTERISTIQUES
- Richesse sémantique de SGML
- Compatible SGML
- Dédié au traitement des données
- Soutenant une grande variété dapplications
- Assurant un entretien aisé
- Intelligent
- Facilité de mise en uvre de HTML
- Simple et lisible
- Portable et facilement utilisable sur Internet
- Assurant un développement aisé
23DEFINITION 1/2
- eXtensible Markup Language
- Recommandation (norme) du W3C
- Spécifiant un langage
- Constitué dun ensemble déléments appelés
balises - Utilisable pour créer dautres langages
- 2 concepts fondamentaux
- Structure, contenu et présentation sont séparés
- Les balises ne sont pas figées
24DEFINITION 2/2
- Conséquences
- XML est un format de document
- XML est un format de données
- XML est un mode de structuration de
linformation - XML est un méta-langage
25Exemple (1)
- ltddgt Ma chanson (identification de la définition
d'un terme) - ltulgt
- ltligt par l'auteurlt/ligt
- ltligt Producteur Dupondlt/ligt
- ltligt Editeur Maison editionlt/ligt
- ltligt Duree 620lt/ligt
- ltligt Date 1978lt/ligt
- ltligt Artiste Totolt/ligt
- lt/ulgt
- lt/bodygt
- lt/htmlgt
- ExHTML6.html
26Exemple (2)
- XML
- ltSONGgt
- ltTITLEgt Ma chanson lt/TITLEgt
- ltCOMPOSERgt par lauteurlt/COMPOSERgt
- ltPRODUCERgt Dupondlt/PRODUCERgt
- ltEDITORgt Maison editionlt/EDITORgt
- ltDURATIONgt 620lt/DURATIONgt
- ltDATEgt 1978lt/DATEgt
- ltARTISTgt Totolt/ARTISTgt
- lt/SONGgt
- Balises propriétaires compréhensibles à la
profession, dérivation des langages proprétaires.
- XML sépare le contenu de son aspect ( à la
différence de HTML ou tout peut être mélangé)
27APPLICATIONS 1/2
- GED et Gestion de Contenu
- GED traditionnelle statique, redondante,
lourde - Apports dXML dynamique, cohérence,
intelligence - EDI
- Exploitation des données complexe, rigide
- Apports dXML simplicité, flexibilité,
intelligence
28APPLICATIONS 2/2
- Interopérabilité de SI hétérogènes
- Architectures existantes complexité,
dépendances - Apports dXML simplicité, flexibilité,
indépendance - Commerce électronique
- Exploitation de linformation complexe,
statique - Apports dXML relation client personnalisée
29STRUCTURE DUN DOCUMENT XML
30SPECIFICATIONS DU LANGAGE XML
- Résumé des spécifications
- Un document doit commencer par une déclaration
XML - Toutes les balises avec un contenu doivent être
fermées - Toutes les balises sans contenu doivent se
terminer par les caractères /gt - Le document doit contenir un et un seul élément
racine - Les balises ne doivent pas se chevaucher
- Les valeurs dattributs doivent être entre
guillemets - La casse doit être respectée pour toutes les
occurrences de noms de balise (MAJUSCULES ou
minuscules). - Un document respectant ces critères est dit bien
formé
31PREMIERE FEUILLE DU STYLE CSS
- XML comment définir laspect du document?
- Premières solutions CSS, XSL
- CSS Cascading Style Sheet héritage du HTML
32Principes de CSS
- Une Feuille de style CSS liste de règles,
chacune indiquant les noms des éléments auquelles
elles sappliquent et les paramètres de style qui
doivent être utilisés.
33Syntaxe 1/2
- La syntaxe de base doit respecter le modèle
- element propriété valeur
- body color blue
- p font-family arial
- Il est possible de grouper les éléments lors
dune définition - h1, h2, h3 colorgreen
- La définition de classe permet daffiner un
élément - element.classe propriété valeur
- p.droit text-align right
- Il ne peut y avoir quune classe par élément HTML
- Dans la cas ou lon ne précise pas lélément de
base de la classe celle-ci sapplique à tous les
éléments HTML
34Syntaxe 2/2
- Il est possible de spécifier des règles ne
sappliquant quà un seul élément en utilisant
son id. - Le style peut sappliquer sur un élément
- elementid propriété valeur
- ppar1 font-family arial
- Ou sur le premier id trouvé
- id propriété valeur
- par1 font-family arial
35Utilisation 1/2
- Les styles peuvent être définis
- Dans un fichier à part, lié à laide de
linstruction - ltheadgt
- ltlink rel"stylesheet" type"text/css"
href"ltfichier.cssgt"/gt - lt/headgt
- Directement dans le fichier HTML
- ltheadgtltstyle type"text/css"gt
- P color blue
- lt/stylegt
- lt/headgt
36Exemple de HTML/CSS
- Fichier HTML
- lt!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Tansitional//EN" "http//www.w3.org/TR/xhtml1/DTD/
xhtml1-transitional.dtd"gt - lthtml xmlns"http//www.w3.org/1999/xhtml"
lang"fr"gt - ltheadgt
- ltlink rel"StyleSheet" href"styleEx7.css"
type"text/css" media"screen"/gt - balise de
structure ltlinkgt - ltmeta http-equiv"Content-Type"
content"text/xhtml charsetiso-8859-1"/gt - lttitlegtExCSSlt/titlegt
- lt/headgt
- ltbodygt
- lth2gtDefinition des chansonslt/h2gt
- ltddgt Ma chanson (identification de la définition
d'un terme) - ltulgt
- ltligt par l'auteurlt/ligt
- ltligt Producteur Dupondlt/ligt
- ltligt Editeur Maison editionlt/ligt
- ltligt Duree 620lt/ligt
- ltligt Date 1978lt/ligt
Attribut rel Specifie la relation entre les
fichiers
37Feuille de style
- Fichier .css
- body font-family Helvetica
- h2 font-family Arial color bluefont-size
22px - h3 font-family Arial color bluefont-size
16px - li font-familyArial colorgreenfontsize 14px
38Utilisation 2/2
- 3. Directement dans la définition de lélément
- ltp style"color redtext-align right"gt
- La valeur réelle du style est lunion de toutes
les définitions. - De plus une notion dhéritage existe ainsi la
définition de body impacte les paragraphes
39Priorité
- Il existe des priorités dans lordre de présence
des styles - Les styles définis dans un élément HTML sont les
plus prioritaires - Ensuite viennent les éléments définis dans le
head du fichier - Ensuite viennent les éléments définis dans une
feuille de style externe - Ensuite viennent les styles par défaut du
navigateurs
40Pratique avancées 2/3
- Les pseudos classes
- Ce sont des classes prédéfinies ( active, hover,
link, visited, first-child, lang)/ - Elementpseudo-classe propriété valeur
- alink color FF0000
- avisited colorFFFF00
- Les pseudos classes se combinent avec les classes
- element.classepseudo-classe
- a.redvisited color FFFFFF
41XML CSS
- Inconvénient de CSS
- statique, ne permet pas de modifier la structure
du document -  action à la façon de htmlÂ
- Solution XSL XML style sheet
- permet de modifier la structure par
transformations XSLT.
42Références
- http//www.w3c.org/Style/CSS
- http//www.w3schools.com/css
- http//www.slackerhtml.com/CSS-Home.htm
- http//www.websitetips.com/css/index.shtml
43DEFINITIONS DE TYPES DE DOCUMENT 1/5
- 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.
44DEFINITIONS DE TYPES DE DOCUMENT 2/5
- 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 - lt!DOCTYPE élément-racine déclaration des
élémentsgt - décrite dans un fichier externe, ou DTD externe
- lt!DOCTYPE élément-racine SYSTEM
"nom_fichier.dtd"gt
45DEFINITIONS DE TYPES DE DOCUMENT 3/5
46DEFINITIONS DE TYPES DE DOCUMENT 4/5
- Exemple de DTD externe reprise de lexemple
précédent, en version DTD externe
47DEFINITIONS DE TYPES DE DOCUMENT 5/5
- La DTD contient
- Une ou plusieurs définitions déléments
introduites par la balise !ELEMENT - lt!ELEMENT nom-élément valeurgt
- Une ou plusieurs listes dattributs introduites
par la balise !ATTLIST - lt!ATTLIST nom-élément attribut type défautgt
- Une ou plusieurs définitions dentité introduites
par la balise !ENTITY - lt!ENTITY nom-entité "valeur"gt
- ou
- lt!ENTITY nom-entité SYSTEM "nom_fichier"gt
48DTD ELEMENTS 1/4
- Chaque balise dun document XML valide doit être
déclarée à laide dun élément dans la DTD
associée. - Un élément est défini par la balise !ELEMENT
- lt!ELEMENT nom-élément valeur-élémentgt
- Où
- nom-élément est une balise du document XML
- valeur-élément prend lune des trois formes
- (contenu)
- Déclaration dun élément à contenu explicite.
Exemple - lt!ELEMENT sujet (PCDATA)gt
- EMPTY
- Déclaration dun élément vide. Utilisé en HTML
pour les sauts - de ligne (BR), image, filet horizontal (HR) etc.
Exemple - lt!ELEMENT br EMPTYgt
- ANY
- Déclaration dun élément pouvant contenir tout
type - de donnée. Exemple
- lt!ELEMENT note ANYgt
49DTD ELEMENTS 2/4
- Contenu explicite
- Combinaison dun ou plusieurs items
- Mot-clé PCDATA (Parsed Character Data) le
contenu est une chaîne de caractères - Nom dun autre élément de la DTD
- Chaque item peut être suivi par un caractère
facultatif doccurrence - ? litem apparaît zéro ou au plus une fois
- litem apparaît au moins 1 fois
- litem apparaît zéro fois ou plus
- 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 à laide de
parenthèses pour définir des ordres de priorité
ou doccurrence
50DTD ELEMENTS 3/4
51DTD ELEMENTS 4/4
52DTD ATTRIBUTS 1/3
- Les balises ouvrantes et les balises vides
peuvent contenir des couples nom-valeur des
attributs - XML
- ltGREETING LANGUAGE Englishgt
- Hello everybody
- lt/GREETINGgt
- Les attributs possibles dun élément du document
XML sont déclarés dans la DTD associée.
nom
valeur
53DTD ATTRIBUTS 2/3
- Déclaration dans la DTD par la balise !ATTLIST
- lt!ATTLIST nom-élément nom-attribut type
valeur-défautgt - Où
- nom-élément est le nom dun élément défini dans
la DTD par la balise !ELEMENT - attribut est le nom de lattribut présentement
défini pour lélément nom-élément - type peut prendre lune des valeurs
- CDATA la valeur correspond au contenu de
lélément - (choix1choix2) la valeur doit être lune des
choix énumérés - ID la valeur est un identifiant unique
- ENTITY la valeur est une entité
- valeur-défaut prend lune des valeurs
- valeur valeur par défaut donnée à lattribut
- REQUIRED attribut obligatoire, sans valeur par
défaut - IMPLIED attribut optionnel, sans valeur par
défaut - FIXED valeur valeur fixe
54DTD ATTRIBUTS 3/3
- Exemples
- lt!ELEMENT GREETING (PCDATA)gt
- lt!ATTLIST GREETING LANGUAGE CDATA Englishgt
- Définition dun carré et de son attribut largeur
- DTD
- lt!ELEMENT carre EMPTYgt
- lt!ATTLIST carre largeur CDATA 0gt
- XML
- ltcarre largeur100gt
- Liste de moyens de paiement
- DTD
- lt!ATTLIST paiement moyen (especeschequeCB)
CBgt - XML
- ltpaiement moyenchequegt
- lt!-- ... --gt
- ltpaiement moyenCBgt
55DTD ENTITES 1/3
- Définition et rappel dune 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 lentité, 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 lt gt ' ") - Une entité est définie avec la balise !ENTITY, et
dite - Interne si sa valeur est donnée dans la DTD
- lt!ENTITY nom-entité "valeur"gt
- Externe si sa valeur est fournie dans un fichier
externe à la DTD - lt!ENTITY nom-entité SYSTEM "nom_fichier"gt
56DTD ENTITES 2/3
- Exemple de document XML avec DTD interne et
entité interne "titre" - lt?xml version"1.0"?gt
- lt!DOCTYPE introduction
- lt!ENTITY titre "Introduction au language XML"
gt - lt!-- . . . --gt
- gt
- ltintroduction gt
- titre
- lt!-- . . . --gt
- lt/introduction gt
57DTD ENTITES 3/3
- Exemple de document XML avec DTD interne et
entité externe "chapitre1" - lt?xml version"1.0" ?gt
- lt!DOCTYPE livre
- lt!ENTITY chapitre1 SYSTEM "chapitre1.xml"gt
- gt
- ltlivregt
- lttitregtTitre du livrelt/titregt
- chapitre1
- lt/livregt
- Contenu du fichier "chapitre1.xml"
- lt?xml version"1.0" ?gt
- ltchapitregt
- lttitregttitre du chapitre 1lt/titregt
- ltsectiongt1ère sectionlt/sectiongt
- ltsectiongt2ème sectionlt/sectiongt
- lt/chapitregt
58DEFINITIONS DE TYPES DE DOCUMENT 1/2
- Résumé des spécifications
- Une DTD (grammaire) permet de déclarer
- un type délément,
- une liste dattribut dun élément,
- une entité
- Chaque balise du langage doit faire lobjet
dune et dune seule déclaration - Un document XML est dit valide sil possède une
DTD et si sa syntaxe est conforme aux règles de
la DTD - Un document valide est obligatoirement bien
formé
59DEFINITIONS DE TYPES DE DOCUMENT 2/2
- Espaces de nom
- XML Namespaces est une recommandation permettant
dutiliser le vocabulaire (les balises) de 2 DTD
distinctes sans risque dambigüité. - Inconvénients des DTD
- Une DTD est difficile à lire
- Une DTD est non extensible (ce nest pas un
document XML). - Une DTD ne permet pas de typer les données
- Une DTD ne peut prendre en compte quun seul
espace de nom (Namespace).
60XML-SCHEMA 1/4
- En réponse aux lacunes des DTD, une alternative a
été proposée comme recommandation il sagit de
XML-Data dont XML-Schema est un sous-ensemble. - Cette nouvelle norme achève de faire dXML un
format pivot - La version 1.1 de XML Schema (datée de mai 2001)
se compose de 3 normes - XML Schema tome 0 Introduction
- XML Schema tome 1 Structures
- XML Schema tome 2 Types de données
61XML-SCHEMA 2/4
- Les documents XML-Schema sont des documents
- respectant la syntaxe XML,
- permettant de décrire la structure dun document
XML dune façon beaucoup plus complète que les
DTD. - XML-Schema permet en effet de
- spécifier la typologie des données que va
contenir le document XML décrit par le
XML-Schema, - gérer une quarantaine de types de données
simples, - gérer des types complexes,
- gérer les occurrences des données.
62XML-SCHEMA 3/4
- Exemple de document XML-Schema
63XML-SCHEMA 4/4
- Référence à un XML-Shema dans un document XML
- Lespace 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.
64Constituantsdun XML-SCHEMA 1/8
- Déclaration de lentête
- Lélément ltxsdschemagt permet de déclarer un
document XML-Xchema. - Lattribut targetNamespace permet de préciser
lespace de nommage de ce type de documents. - Lattribut elementFormDefault précise si les
documents XML respectant cette grammaire doivent
référer à cet espace de nommage.
lt?xml version"1.0" encoding"ISO-8859-1"
?gt ltxsdschema xmlnsxsd"http//www.w3.org/2001/X
MLSchema"gt lt!--balise schema obligatoire --gt
65Constituantsdun XML-SCHEMA 2/8
- Déclaration des types de données
- Il est possible de déclarer un type de données
- soit dans la déclaration dun élément (local)
- soit hors de la déclaration de lélément
(global) - XML-Schema permet dutiliser des données
- de type prédéfini (string, int)
- de type complexe
- dont le type est une restriction de type
- dont le type est une extension de type
66Constituants dun XML-SCHEMA 3/8
- Déclaration des types de données
- Types prédéfinis
- 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 - ID, IDREF, IDREFS, ENTITY, ENTITIES, NOTATIN,
NMTOKEN, NMTOKENS - Exemple ltxsdelement name"comment"
type"xsdstring"/gt
67Constituants dun XML-SCHEMA 4/8
- Déclaration des types de données
- Types complexes
- Exemple le type de données TypeAdresse se
compose de 6 éléments Numero, Rue1, Rue2, Ville,
CP et Pays
68Constituants dun XML-SCHEMA 5/8
- Déclaration des types de données
- Restriction de type existant
- Exemple le type de données string comprend 6
attributs optionnels pattern, enumeration,
length, minlength, maxlength, whitespace. Si on
désire représenter un choix Oui/Non (restriction
sur lattribut enumeration) -
69Constituants dun XML-SCHEMA 6/8
- Déclaration des types de données
- Extension / dérivation de type existant
- Exemple si lon souhaite créer un type Personne
contenant en plus du nom et du prénom, un élément
de type Adresse (extension du type Adresse vu
précédemment) -
70Constituants dun XML-SCHEMA 7/8
- Déclaration des éléments
71Constituants dun XML-SCHEMA 8/8
- Déclaration des attributs
72Conclusion DTD versus XML-SCHEMA
- 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 mais cest au
prix dune complexité accrue. - Un document XML-Schema respecte la syntaxe XML.
- Un document XML-Schema est généralement plus
volumineux et plus difficile à lire quune DTD
(pour un opérateur humain).
73Exemple de XML-XSD
- lt?xml version"1.0" encoding"ISO-8859-1"
standalone"no" ?gt - ltcave xmlnsxsi"http//www.w3.org/2001/XMLSchema-
instance" xsinoNamespaceSchemaLocation'td2.xsd'gt
- ltappellation id"01" nom"Saint Estèphe"gt
- ltchateau id"0101"gt
- ltnomgt Chateau Bellevuelt/nomgt
- ltadressegt 12 Rue du Pontlt/adressegt
- lttéléphonegt 0556124321lt/téléphonegt
- lt/chateaugt
- ltchateau id"0102"gt
- ltnomgt Chateau Le Bernadotlt/nomgt
- ltadressegt 21 Avenue du Cygnelt/adressegt
- lttéléphonegt 0556324231lt/téléphonegt
- lt/chateaugt
- lt/appellationgt
- lt/cavegt
74XSD
- lt?xml version"1.0" encoding"ISO-8859-1"?gt
- ltxsdschema xmlnsxsd'http//www.w3.org/2001/XMLS
chema'gt - ltxsdelement name"cave"gt
- ltxsdcomplexTypegt
- ltxsdsequencegt
- ltxsdelement ref"appellation" minOccurs'1'
maxOccurs'unbounded'/gt - lt/xsdsequencegt
- lt/xsdcomplexTypegt
- lt/xsdelementgt
-
- ltxsdelement name"appellation"gt
- ltxsdcomplexTypegt
- ltxsdsequencegt
- ltxsdelement ref"chateau" minOccurs'0'
maxOccurs'unbounded'/gt - lt/xsdsequencegt
- ltxsdattribute name"id" type"xsdinteger"
use'required'/gt - ltxsdattribute name"nom" type"xsdstring"/gt
- lt/xsdcomplexTypegt
- lt/xsdelementgt
75- ltxsdelement name"chateau"gt
- ltxsdcomplexTypegt
- ltxsdsequencegt
- ltxsdelement ref"nom" minOccurs'1'
maxOccurs'1'/gt - ltxsdelement ref"adresse"/gt
- ltxsdelement ref"téléphone"/gt
- lt/xsdsequencegt
- ltxsdattribute name"id" type"xsdinteger"
use'required'/gt - lt/xsdcomplexTypegt
- lt/xsdelementgt
- ltxsdelement name"nom" type"xsdstring"/gt
- ltxsdelement name"adresse" type"xsdstring"/gt
- ltxsdelement name"téléphone" type"xsddecimal"/
gt - lt/xsdschemagt