Vous êtes sur la page 1sur 83

Technologies XML

Chapitre 1 : Généralités

Dr Konan Marcellin BROU


marcellin.brou@inphb.ci
konanmarcellin@yahoo.fr

2018-2019
Sommaire
 Introduction
 HTML
 Concepts de base de XML
 Feuilles de style
 Document Type Definition
 XML Schéma
 XML : une BD ou un SGBD ?

K. M. BROU Technologies XML : Généralités 2


I. Introduction
 1.1. Objectifs
 Objectif général :
 Avoir une bonne idée de ce qu’est le XML ;
 Pouvoir facilement lire et écrire du XML simple.
 Objectifs spécifiques :
 Interroger un document XML avec XQuery.
 Manipuler un document XML avec le DOM.
 Stocker un document XML dans une BD

K. M. BROU Technologies XML : Généralités 3


I. Introduction
 1.1. Présentation  Structure logique : rôle et nature de
 Structure d’un document chaque élément d’un document ainsi
que l’ensemble des liens
 Décrire la structure d'un document,
hiérarchiques et/ou logiques qui les
consiste à identifier et décrire chacun des
lient les uns aux autres.
éléments textuels ou non textuels qui le
constituent.  Exemple : document
 Cette description peut prendre plusieurs Chapitre 1
formes. Section 1.1.
 Deux types de structure : la structure paragraphe 1.1.1.
paragraphe 1.1.2.
physique et la structure logique.

 Structure physique : sa mise en page, les Section 1.2.
différentes zones de texte, leur …
agencement les unes par rapport aux Chapitre 2
autres, ainsi que l’ensemble de leurs
caractéristiques typographiques : police,
couleur, gras, italique, etc..

K. M. BROU Technologies XML : Généralités 4


I. Introduction
 Utilité d’un document structuré  Diffusion de documents par voie
 Multiplication des modes de restitution du électronique, utilise les différents
document. champs leurs structures.
 Dans le cadre d'une recherche
documentaire, l'utilisation d'une
structure permettra de mieux cibler
les interrogations faites sur les
corpus de documents.

K. M. BROU Technologies XML : Généralités 5


I. Introduction
 Trois types de documents :  Document structuré
 Document non structuré :  Leurs éléments sont réorganisés
 Les données ne sont pas organisées dans selon une structure permettant à
un format qui permet d'y accéder et de les chacun d'être traité, organisé et
traiter plus facilement. manipulé afin de mieux exploiter les
informations.
 Données textuelle
 Les éléments sont adressables pour
 Données stockées dans des fichiers de
une analyse efficace.
texte.
 Structure régulière, fixe et prévisible
 Exemple : fichier des élèves
 Données stockées dans une BD.
Chaque élève de l’INP-HB possède un nom et  Exemple : Table Eleve
fréquente une classe. Toto et Fatou sont de la
classe Info1. Quant à Froto, il est de la classe Nom Classe
Info2.
Toto Info1

Fatou Info1
Froto Info2

K. M. BROU Technologies XML : Généralités 6


I. Introduction
 Document semi structuré  Exemple : en XML/JSON
 Forme intermédiaire. <eleves>
 Les éléments ne sont pas organisées <eleve>
selon une méthode complexe rendant <nom>Toto</nom><classe>Info1</classe>
possible un accès et une analyse </eleve>
simple. <eleve>
 Possèdent des propriétés <nom>Fatou</nom><classe>Info1</classe>
organisationnelles facilitant leur </eleve>
analyse. <eleve>
<nom>Froto</nom><classe>Info2</classe>
 Certaines informations peuvent leur
</eleve>
être associées, telles que des balises de
</eleve>
métadonnées, qui permettent
l'adressage des éléments qu'elles {
renferment. "etudiants": [
 Structure irrégulière, fixe et { "nom":"Toto" , "classe":"Info1" },
imprévisible { "nom":"Fatou" , "lastName":"Info1" },
 Données au format XML et JSON { "nom":"Froto" , "lastName":"Info2" }
]
}
K. M. BROU Technologies XML : Généralités 7
I. Introduction
 1.2. XML : eXtensible Markup Language  XML 1.1 : 2004
 Conçu en 1996 par Tim Bray, Jon Bosak  Support des différentes versions
et de nombreux autres collaborateurs. d'Unicode
 Généralisation de HTML  Permet l'usage de caractères de
contrôle dans le texte
 HTML :
 Organise les fins de ligne de façon
 HyperText Markup Language compatible avec les technologies IBM.
 Jeu de balises prédéfinies ayant une  Pas de compatibilité avec XML 1.0.
signification prédéfinie.
 Un document bien formé n'est pas
 Pas d’extension possible des balises. nécessairement un document XML
 XML : 1.0 bien formé.
 L'auteur peut créer ses propres balises.  XML 2.0 : Suppression des DTD’s
 Versions :  validation externe des documents
 XML 1.0 : 1998, normalisé par W3C XML et des sections CDATA.
 World Wide Web Consortium.  Remarque
 Version 1.0 est la plus utilisée

K. M. BROU Technologies XML : Généralités 8


I. Introduction
 1.3. Buts de XML  Services Web
AXIS : Apache eXtensible Interaction
 Permettre les échanges de données 
System
entre les machines et les logiciels.
 Environnement d'hébergement de services
 Faciliter le traitement automatisé Web.
de documents et de données.  WSDL : Web Services Description
 Structurer les informations : Language
 Etre lues par des personnes sur le  Description de services Web
web ;  Bureautique
 Etre traitées par des applications de  MS Office 2007 et +
manière automatisée.
 Tous les documents générés sont au
 XML est la norme d’enregistrement format XML.
de nombreuses d’applications.  OpenOffice : format OpenDocument
 Fichiers de configuration de
certains logiciels :
 Serveur Web Apache (httpd.conf) ;
 MySQL.
K. M. BROU Technologies XML : Généralités 9
I. Introduction
 Web sémantique :  Graphiques
 RDF : Resource Description  XUL : XML-based User Interface
Framework Language
 Langage pour représenter des  Langage de description
informations sur des ressources d’interfaces graphiques.
(page web, partie d'une page, site  SVG : Scalable Vector Graphics
web entier…).  Description de dessins
 OWL : Ontology Web Language vectoriels.
 Langage de description des  SMIL : Synchonized Multimedia
ontologie (Hiérarchie de termes Integration Language
structurés pour décrire un  Description de contenus
domaine). multimédia.
 Moteurs SPARQL (SparQL Protocol
And RDF Query Language) :
 CORESE : COnceptual REsource
Search Engine
 Protege

K. M. BROU Technologies XML : Généralités 10


I. Introduction
 Programmation  Divers
 XAML : XML Aplication Markup  OpenStreetMap
Language.  Cartes
 Langage pour La description de  WML Signature
l'interface graphique des  Format pour les signatures
applications WPF (Windows électroniques
Presentation Foundation).
 MathML : Mathematical Markup
Language
 Description de formules
mathématiques.

K. M. BROU Technologies XML : Généralités 11


I. Introduction
 TP Word  Le contenu se présente comme
 Créer un document Word contennt le suit :
message :
 « Les étudiants de l’INP-HB sont
très compétents. »
 Metrre INP-HB en Gras, couleur
rouge, taille 20, police Algerian.
 Enregistrer le document sous
TPWord.docx
 Remplacer l’extension docx par zip
(TPWord.zip)
 Dézipper TPWord.zip
 Ouvrir le fichier word/document.xml

K. M. BROU Technologies XML : Généralités 12


I. Introduction
<?xml version="1.0" encoding="UTF-8" <w:rPr><w:rFonts w:ascii="Times New Roman"
standalone="yes"?> w:hAnsi="Times New Roman"
<w:document w:cs="Times New Roman"/>
… <w:sz w:val="28"/>
<w:t>Les étudiants de l’</w:t> </w:rPr>
</w:r> <w:t xml:space="preserve"> sont très
<w:bookmarkStart w:id="0" w:name="_GoBack"/> compétents.</w:t>
<w:r w:rsidRPr="00A84F26"> </w:r>
<w:rPr> </w:body>
<w:rFonts w:ascii="Algerian" w:hAnsi="Algerian" </w:document>
w:cs="Times New Roman"/>
<w:bCs/>
<w:color w:val="FF0000"/><w:sz w:val="40"/>
</w:rPr>
<w:t>INP-HB</w:t>
</w:r>
<w:bookmarkEnd w:id="0"/>
<w:r w:rsidRPr="00F10E3E">

K. M. BROU Technologies XML : Généralités 13


II. HTML
 2.1. Présentation  Document HTML composé de :
 HTML : HyperText Markup Language  Texte
 Langage utilisé pour décrire la  Commandes : tag en anglais
structure logique des documents  Permettent de mettre en forme
hypertextes pour WWW : le texte (Titre, caractère gras,
 Appelés page web ou document italique, image, liens, etc.).
HTML.  Ont une marque de début et
une marque de fin
 Implémentation relativement
 Certaines marques de fin sont
simple du langage SGML
facultatives
 Standard Generalisation Markup
Language
 Permet de résoudre le problème de
transport de documents
électroniques sur différentes plates-
formes.
 Norme internationale en 1986
(norme ISO 8879)
K. M. BROU Technologies XML : Généralités 14
II. HTML
 2.2. Structure d’un document HTML  Nombre de balise figé
 Structure hiérarchique  HTML : 1er nœud de type élément.
 Possède 2 enfants : HEAD et BODY
Document
 HEAD et BODY
Elément  Egalement nœuds de type Element
<HTML>
 Possèdent d’autres enfants.
 Nœud texte
Elément Elément
<BODY>
 Texte contenu dans les éléments.
<HEAD>
 Tous ces nœuds sont des objets
Elément Elément
Elément Elément  On peut les manipuler en utilisant
<P> <H1>
<TITLE> <META> leurs méthodes et leurs propriétés
en JavaScript, PHP, DOM...
Text Attribut Elément Texte Texte
"Le DOM" HRF <a> "Du texte" "Le DOM"

Text
"Un lien"
K. M. BROU Technologies XML : Généralités 15
II. HTML
 2.3. Exemple de document HTML  Affichage dans un navigateur
 inphb.html
<HTML>
<HEAD> <TITLE> Bien venue à l’INP-HB</TITLE></HEAD>
<BODY BGCOLOR="blue" TEXT="yellow">
<P>L’INP-HP (Institut National Polytechnique Houphouët Boigny)
est la grande école de référence en Côte d’Ivoire.
Elle est constituée des 6 écoles qui sont :
<OL>
<LI> ESA : Ecole Supérieure Agronomique</LI>
<LI>ESCAE : Ecole Supérieure de commerce et d’administration
des entreprises</LI>
<LI>EFCPC : Ecole de Formation Continue et de
Perfectionnement des cadres</LI>
<LI>ESI : Ecole Supérieure d’Industrie</LI>
<LI>ESMG : Ecole Supérieure des Mines et Géologie</LI>
<LI>ESTP : Ecole Supérieure des Travaux Publics</LI>
</OL>
<HR SIZE=3>
<ADRESS> Konan Marcellin BROU – brou@larima.inset.ci
</ADRESS>
</BODY>
</HTML>

K. M. BROU Technologies XML : Généralités 16


III. Concepts de base de XML
 3.1. Présentation  Un élément est composé :
 XML : eXtensible Markup Language  d’un nom : spécifie son type ;
 Standard d’échange de données  d’attributs : possède un nom
universel et une valeur (chaîne de
caractères) ;
 Balises crées par l’utilisateur
 d’un contenu : formé
 Document structuré ou semi- d’éléments ou de textes
structuré en une collection de (chaînes de caractères).
données
 Portable : codé en Unicode
 Structure d’arbre
 Un document XML est découpé en
éléments structurés
hiérarchiquement.
 Un document a un élément racine

K. M. BROU Technologies XML : Généralités 17


III. Concepts de base de XML
 Syntaxiquement :  Contenu du document entouré
 Eléments sont marqués dans le de balise "html" avec une
document lui-même. déclaration de "namespace".
 Par des paires de balises ouvrantes et
fermantes. <html xmlns="http://www.w3.org/1999/xhtml"
 Document XHTML : xml:lang="en" lang="en">
 Extensible HTML (HTML plus strict
comme XML)
 Extension d’un document : XHTML
 Document possède une entête XML

Une déclaration XML (version et jeu de caractères)


<?xml version="1.0" encoding="ISO-8859-1"?>
une déclaration du DocType ("XHTML")
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">

K. M. BROU Technologies XML : Généralités 18


III. Concepts de base de XML
 Balise head utilisé pour stocker de  Minuscules pour toutes les
l’information sur le document, le titre balises
dans la plupart des cas.  Eléments vides doivent avoir un
 Balise title du document utilisé à deux "terminateur" :
fins :  <hr> devient <hr /> etc.
 Titre affiché dans la barre titre des  Valeurs d’attributs sont entourés
navigateurs. de guillemets :
 Titre souvent utilisé par les robots pour  <p align="right">
indexer votre page.
 Chaque attribut doit avoir une
 Balise body contient le corps du valeur :
document.
 <hr noshade="noshade">.
 Toutes les balises doivent être fermés
 Utiliser &amp; pour & dans des
 par exemple ôter un </p> n’est pas attributs, y compris les URL :
valable
 <a href="?a=1&amp;b=2">

K. M. BROU Technologies XML : Généralités 19


III. Concepts de base de XML
 Exemple de document xhtml
(exXhtm.xhtml)

<?xml version="1.0" encoding="ISO-8859-1"?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>Exemple de document XHTML</title>
</head>
<body>
<h1>document XHTML</h1>
<p>Extensible HyperText Markup Language (XHTML)</p>
</body>
</html>

K. M. BROU Technologies XML : Généralités 20


III. Concepts de base de XML
 3.2. Exemple de document XML
 bib2.xml <last>Buneman</last>
<?xml version="1.0" encoding="ISO-8859-1" standalone = "no" ?> <first>Peter</first>
<?DOCTYPE bib SYSTEM bib.dtd ?>
</author>
<bib>
<author>
<book id="b1" year="1994">
<title>TCP/IP Illustrated</title> <last>Suciu</last>
<author><last>Stevens</last> <first>Dan</first>
<first>W.</first></author> </author>
<publisher>Addison-Wesley</publisher> <publisher>Morgan Kaufmann Publishers</publisher>
<price> 65.95</price> <price>39.95</price>
</book> </book>
<book id="b2" year="1992"> <book id="b4" year="1999">
<title>Advanced Programming in the Unix environment</title> <title>The Economics of Technology and Content for ...
<author><last>Stevens</last> </title>
<first>W.</first> <editor>
</author>
<last>Gerbarg</last>
<publisher>Addison-Wesley</publisher>
<first>Darcy</first>
<price>65.95</price>
</book> <affiliation>CITI</affiliation>
<book id="b3" year="2000"> </editor>
<title>Data on the Web</title> <publisher>Kluwer Academic Publishers</publisher>
<author> <price>129.95</price>
<last>Abiteboul</last> </book>
<first>Serge</first></author> </bib>
<author> K. M. BROU Technologies XML : Généralités 21
III. Concepts de base de XML
 3.3. Quelques éditeurs XML
 XML Copy Editor (gratuit)
 http://sourceforge.net/projects/xml
-copy-editor/
 Logiciel libre libéré sous le permis de
grand public de GNU.
 Editeur XML léger, rapide et validant.

K. M. BROU Technologies XML : Généralités 22


III. Concepts de base de XML
 Microsoft XML Notepad (gratuit)
 http://french.eazel.com/lv/software
/download/kl37370.htm
 Interface utilisateur simple et
intuitive pour parcourir et modifier
des documents XML.
 Non validant

K. M. BROU Technologies XML : Généralités 23


III. Concepts de base de XML
 Notepad++ (gratuit)
 http://notepad-plus-
plus.org/fr/download/v6.2.html
 Editeur de code source qui prend
en charge plusieurs langages.
 Sous licence GPL, développé en
C++ avec STL et win32 api.
 Pas spécifique à XML

K. M. BROU Technologies XML : Généralités 24


III. Concepts de base de XML
 JAXE (Gratuit)  XMetal (payant)
 http://jaxe.sourceforge.net/fr/  http://dwld2.b-
softwares.com/dl4/Request.php?na
 Editix (payant, version gratuite) me=corel%20xmetal&torrent=111
 http://www.editix.com/download.html  Editeur XML
 https://github.com/AlexandreBrillant/  Prend en charge la conversion de BD
Editix-xml-editor ODBC au format XML.

 XML Spy (payant)


 http://cdn.sw.altova.com/v2013/en/X
MLSpyEnt2013.exe
 Editeur XML validant

K. M. BROU Technologies XML : Généralités 25


III. Concepts de base de XML
 3.4. Affichage de documents XML
 Affichage dans un navigateur
sans feuille de style

K. M. BROU Technologies XML : Généralités 26


III. Concepts de base de XML
 3.5. Structure d’un document XML attribut valeurs possibles explications
 Un document commence par la Obligatoire, indique le numéro
balise : version 1.0 de version du standard auquel
le document se conforme.
 <?xml version="1.0" ?> UTF-8, UTF-16, ISO-
 avec des attributs suivants : 10646-UCS-2, ISO-
nom de l'encodage de
10646-UCS-4, ISO-
encoding caractères employé dans le
8859-1 à ISO-8859-
fichier
9, ISO-2022-JP,
Shift_JIS, EUC-JP
si le document XML fait
référence à une DTD ou à des
standalone yes, no entités définies dans un autre
fichier, il faut mettre "no".
Sinon, on utilise "yes".

K. M. BROU Technologies XML : Généralités 27


III. Concepts de base de XML
 Jeux de caractères  La norme Unicode
 La norme ASCII  Permet de coder les caractères
 utilise 8 bits pour représenter un de toutes les langues.
caractère.  Utilise 16 bits pour représenter
 28 - 1 = 255 caractères possibles un caractère.
 Les normes ISO  216 - 1 = 65535 caractères
possibles.
 utilise 8 bits pour représenter un
caractère.  UTF-8
 En français, on utilise souvent le jeu de  Par défaut, un document XML
caractères ISO-8859-1 ou Latin-1, utilise utilise Unicode UTF-8 ou UTF-16,
un seul octet pour représente 191 seuls jeux de caractères qu’un
caractères de l’alphabet latin n°1 (ouest processeur XML doit connaître.
de l'Europe). Les caractères € et œ n’en  Utilise 1 à 4 octets pour
font pas partie, d’où ISO 8859-15. représenter les caractères.
 A codé par 1 octet : 0x41.
 é par 2 octets : 0xC3,0xA9.
 € par 3 octets : 0xE2,0x82,0xAC.

K. M. BROU Technologies XML : Généralités 28


III. Concepts de base de XML
 Arbre du document bib.xml

bib

book …
book book

author author
id = "b1" year = "2000" title

Data on the Web last first

Abiteboul Sergel

K. M. BROU Technologies XML : Généralités 29


III. Concepts de base de XML
 Remarques :
 Le nom des balises et des attributs
doivent être en minuscule.
 Les attributs présents dans la
balise <?xml ... ?> doivent être
dans l'ordre où ils sont énumérés
dans le tableau ci-dessus.
 Les valeurs d'attributs doivent
toujours être entre guillemets
 contrairement à HTML, en XML on
ne peut pas avoir un nom
d'attribut qui ne soit pas suivi de
="valeur"
 Au sein d'une même balise l'ordre
des attributs peut être quelconque
et il ne peut pas y avoir deux
attributs avec le même nom.

K. M. BROU Technologies XML : Généralités 30


III. Concepts de base de XML
 3.6. Les Entités  Il est possible de créer ses
 Certains caractères sont interdits propres entités :
dans le contenu des éléments.  Entités internes ;
 XML propose comme en HTML  Entités externes.
d’utiliser la référence d’entité ou
entité pour simplifier.
Caractère Entité
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;
 Exemple :
A ne pas faire A faire

<?xml version="1.0"?> <?xml version="1.0"?>


<comparaison> <comparaison>
<a>numérateur > 0</a> <a>numérateur &gt; 0</a>
</comparaison> </comparaison>
K. M. BROU Technologies XML : Généralités 31
III. Concepts de base de XML
 Entités internes  Exemple : ex3.xml
 Entité contenu dans le même fichier <?xml version="1.0" standalone="no"?>
du document XML. <!DOCTYPE eleve [
 Syntaxe <!ENTITY adr "B. P. 1093 Yakro">
<!ENTITY mat "Cours XML">
<?xml version="1.0" standalone="no"?> ]>
<!DOCTYPE elementRacine [ <eleve>
<!ENTITY nomEntite "texte de remplacement"> <adresse>&adr;</adresse>
]> <matiere>&mat;</matiere>
</eleve>
 DOCTYPE appelé Document Type
Definitions (DTD) permet de définir
le nœud racine du document.
 standalone doit prendre no comme
valeur.
 Utilisation
 &nomEntite;
 L’entité nomEntite sera remplacée
par le texte de remplacement.
K. M. BROU Technologies XML : Généralités 32
III. Concepts de base de XML
 Entité externe  Exemple : ex4.xml
 Entité qui représente tout un <?xml version="1.0" encoding="utf-8"
document XML contenu dans un standalone="no"?>
autre fichier. <!DOCTYPE classe [
<!ENTITY eleves SYSTEM "eleves.xml">
 Syntaxe
]>
<?xml version="1.0" standalone="no"?> <classe>
<!DOCTYPE Elementracine [ <eleve>&eleves;</eleve>
<!ENTITY nomEntite SYSTEM "nomEntite.xml"> </classe>
]>

 SYSTEM commande la lecture


d’une URL, ici, c’est un fichier local.
 Le contenu du document
nomElement.xml est inséré à la
place de l’entité &nomElement;

K. M. BROU Technologies XML : Généralités 33


IV. Feuilles de style
 4.1. Feuilles de style CSS  Pourquoi de "feuilles de style en
 Cascadind Style Sheets cascade" ?
On peut déclarer les styles à
Intérêt


différents endroits, et selon ces
 Le design d'un site évolue endroits ils seront plus ou moins
toujours au fil du temps. prioritaires.
 Sans feuilles de style, il faut  On obtient donc une cascade de
reprendre toutes les pages une à styles.
une pour modifier une police de
 Règles
caractère ou une couleur de
 Une feuille de style CSS est
fond...
constituée de règles.
 Avec les CSS, ce lourd handicap
 Exemple :
est résolu.
 h2 { font-size: 16pt ; }
 Une règle comporte plusieurs
parties : Sélecteur, Déclaration,
Propriété, Valeur, Bloc.

K. M. BROU Technologies XML : Généralités 34


IV. Feuilles de style
 Règle : h2 { font-size: 16pt ; }
 Sélecteur : H2 en place de "tag" (balise)
 Déclaration : font-size: 16pt
s'applique à l'ensemble qui à son tour se
compose de deux parties :
 Propriété : font-size:
 Valeur : 16pt
 Bloc : { font-size: 16pt ; }
 Bloc de déclarations : contient plusieurs
déclarations :
 { font-size: 16pt ; font-family:
arial ; }.

K. M. BROU Technologies XML : Généralités 35


IV. Feuilles de style
 Principales mise en Mise en forme de la police Explication
forme Font-family. Propriété pour choisir la police
Font-size Propriété pour le corps (taille de la police).
Font-style. Propriété pour l'italique
Font-variant Propriété pour le texte en petites majuscules.
Font-weight Propriété pour la graisse de la police (poids).
Font-stretch Propriété pour l'étirement de la police
Mise en forme du texte Explication
Color Propriété pour définir la couleur du texte.
Letter-spacing Propriété pour définir l'espacement entre les caractères.
Word-spacing Propriété pour définir l'espacement entre les mots.
Text-transform Propriété pour forcer les minuscules ou les majuscules.
Text-decoration Propriété pour souligner, surligner, barrer, clignoter.
Text-shadow Propriété pour créer un effet d'ombrage sur un texte.
Mise en forme de l'arrière-plan Explication
Background-color Pour la couleur du fond de page (couleur d'arrière-plan).
Background-image Pour placer une image en fond de page ou d'élément.
Background-repeat-x Propriété pour répétition horizontale d'une image.
Background-repeat-y Propriété pour répétition verticale d'une image
Background-attachment Pour définir une image fixe lors du défilement de la
page.
Background-attachment y Pour définir si une image reste fixe verticalement lors du
défilement de page.
Background-position Pour définir la position d'une image dans la page.

K. M. BROU Technologies XML : Généralités 36


IV. Feuilles de style
 Exemple : bibCSS.css  bib11.xml
<?xml version="1.0" encoding="ISO-8859-1" standalone =
book { display: block; font-family:helvetica,sans-serif; "no" ?>
background-color: rgb(230, 230, 255) } <?xml-stylesheet href="bibCSS.css" type="text/css" ?>
title { display: block; font-size: 200%; color: #FF0000; <bib>
text-align: center; border-width: medium; …
border-style: groove } </bib>
author { display: block; font-size: 80%; color: rgb(0,
255, 0);
font-weight: bold }
editor { display: inline; font-size: 80%; font-style: italic }
price { display: block; font-size: 80%; font-weight: bold }

K. M. BROU Technologies XML : Généralités 37


IV. Feuilles de style
 4.2. Feuille de style CSS2  Exemple : bib12.xml
 Extension de CSS pour les
documents XML.
 Exemple : bibCSS2.css

bib {display: table ; border: outset 2pt ; border-spacing: 1pt}


book {display: table-row ; }
title {display: table-cell ; border: inset 1pt ; color: blue ;}
publisher {display: table-cell; border: inset 1pt ; color: red
;}
editor {display: table-cell; border: inset 1pt ; color: green ;}
price {display: table-cell; border: inset 1pt ; color: yellow ;}
author display: table-row ; }
last {display: table-cell ; border: inset 1pt ; }
first {display: table-cell; border: inset 1pt ; }

 Remarque :
 Ne s’affiche pas correctement dans
Internet Explorer 8 mais avec IE 9
K. M. BROU Technologies XML : Généralités 38
IV. Feuilles de style
 4.3. Feuille de style XSL XSLT

 eXtensible Stylesheet Language


HTML
 Ou langage extensible de feuille de XML
Processeur
XSL (ou XML
style. ou text)
 Recouvre trois langages :
 XPath : Langage pour accéder à un nœud
quelconque de l'arborescence d'un
document.
 XSLT : eXtensible Stylesheet Langage
Transformation.
 XSL-FO : eXtensible Stylesheet Langage -
Formating Objects.
 Langage permettant le contrôle de la
mise en page finale de la transformation
(production de contenus au format PDF).

K. M. BROU Technologies XML : Généralités 39


IV. Feuilles de style
 Structure d'un document XSL  xsl:stylesheet : élément racine du
 Commence par un prologue, puis un document XSL.
élément xsl:stylesheet pouvant contenir  contient tous les modèles (les
quelques attributs, notamment une templates)
déclaration d'espace de noms ainsi que le  y compris celui qui est associé à
numéro de version. la racine du document XML,
<?xml version="1.0"?>
modèle que l'on note
<xsl:stylesheet version="1.0" <xsl:template match="/">.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  L'attribut match="/" indique que
… ce modèle s'applique à la racine
</xsl:stylesheet> du document XML.
 L’espace de noms permet de lever les
ambiguïtés
 xmlns:xsl="http://www.w3.org/1999/XS
L/Transform"
 Tous les élément de ce espace de nom
seront précédés de xsl:

K. M. BROU Technologies XML : Généralités 40


IV. Feuilles de style
 Exemple : bibXSL.xsl
<?xml version="1.0"?> <xsl:for-each select="author">
<xsl:stylesheet version="1.0" <tr><td><font color="blue">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:value-of select="last"/></font></td>
<xsl:output method="html"/> <td><font color="blue">
<xsl:template match="bib"> <xsl:value-of select="first"/></font>
<html> </td>
<head> </tr>
<title><xsl:value-of select="book/title"/></title> </xsl:for-each>
</head> </table> <br/>
<body> </xsl:for-each>
<xsl:for-each select="book"> </body>
<b>Numéro : <xsl:value-of select="@id"/></b> </html>
<font color="red" size="4"> </xsl:template>
<b>Titre : <xsl:value-of select="title"/></b> </xsl:stylesheet>
</font>
<br/>Editeur : <xsl:value-of select="editor"/><br/>
Prix : <xsl:value-of select="price"/>
<table border="1">
<caption>Auteur</caption>
<tr><th>Nom</th>
<th>Prenom</th></tr>
K. M. BROU Technologies XML : Généralités 41
IV. Feuilles de style
 Bib13.xml

<?xml version="1.0" encoding="ISO-8859-1" standalone =


"no" ?>
<?xml-stylesheet href="bibXSL.xsl" type="text/xsl" ?>
<bib>

</bib>

K. M. BROU Technologies XML : Généralités 42


IV. Feuilles de style
 TD1 Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg
d'ions positifs calcium, et 5,5 mg d'ions positifs magnésium. On y
 Donnez une version trouve également des ions négatifs comme des chlorures à 20 mg
structurée du document. par litre et des nitrates avec 1 mg par litre. Elle est recueillie à
 Donner l’arbre StCyr la Source, dans le département du Loiret. Son code barre est
3274080005003 et son pH est de 7,45. Comme la bouteille est
correspondant sale, quelques autres matériaux comme du fer s’y trouvent en
suspension.
Une seconde bouteille d'eau Cristaline a été, elle, recueillie à la
source d'Aurèle dans les Alpes Maritimes. La concentration en ions
calcium est de 98 mg/l, et en ions magnésium de 4 mg/l. Il y a 3,6
mg/l d'ions chlorure et 2 mg/l de nitrates, pour un pH de 7,4. Le
code barre de cette bouteille de 50 cl est 3268840001008.
Une bouteille de même contenance est de marque Volvic, et a été
puisée à... Volvic, bien connu pour ses sources donnant un pH
neutre de 7. Elle comprend 11,5 mg/l d'ions calcium, 8,0 mg/l
d'ions magnésium, 13,5 mg/l d'ions chlorures et 6,3 mg/l d'ions
nitrates. Elle contient également des particules de silice. Son code
barre est 3057640117008.
PS : Volvic est dans le Puy-de-Dôme...

K. M. BROU Technologies XML : Généralités 43


IV. Feuilles de style
 Correction <?xml version="1.0" encoding="ISO-8859-1" ?>
<eau>
 Document XML <bouteille>
<marque>Cristaline</marque>
<composition>
<ion type="positif">calcium 71mg/l</ion>
<ion type="positif">magnésium 5,5mg/l</ion>
<ion type="negatif">chlorure 20mg/l</ion>
<ion type="negatif">nitrate 1mg/l</ion>
<autre type="metal">fer</autre>
</composition>
<source>
<ville>St-Cyr la Source</ville>
<departement>Loiret</departement>
</source>
<codeBarre>3274080005003</codeBarre>
<contenance unit="cl">150</contenance>
<ph>7,45</ph>
</bouteille>

K. M. BROU Technologies XML : Généralités 44


IV. Feuilles de style
<bouteille>
<marque>Cristaline</marque>
<composition>
<ion type="positif">calcium 98mg/l</ion>

</composition>
<source>
<ville>Aurèle</ville>
<departement>Alpes Maritimes</departement>
</source>
<codeBarre>3268840001008</codeBarre>
<contenance unit="cl">50</contenance>
<ph>7,4</ph>
</bouteille>
<bouteille>
<marque>Volvic</marque>
<composition> …</composition>
<source> …</source>
</bouteille>
</eau>

K. M. BROU Technologies XML : Généralités 45


IV. Feuilles de style
 Arbre du document

eau

bouteille bouteille
bouteille

composition source codeBarre contenance ph


marque

Cristaline autre ville departement unit="cl"" 150


ion ion

type="positif" calcium 71mg type=« metal" fer

K. M. BROU Technologies XML : Généralités 46


IV. Feuilles de style
 TD2 + TP2
 Soit le schéma
entité/association suivant :
 Créer les documents XML Commande Produit
Client passe
correspondants (2 0,n 1,1 numCom 1,n detailCom 0,n numProd
documents). numCl dateCom qteCom designation
Nom prix
 Ajouter 5 produits, 3
Tel qtéStock
clients, 2 commandes par Adresse
fax
client, 2 produits par 1, 1 norue
commande. 1,1 Rue
possede ville
 Créer une feuille de style
codepostal
CSS ou CSS2 pour afficher
ces documents.
 Créer une feuille de style
XSL pour afficher ces
documents.

K. M. BROU Technologies XML : Généralités 47


IV. Feuilles de style
 4.4. XSL-FO
 XSL Formatting Objects
 Utiliser pour transformer un
document XML en un document PDF.
 On utilise XSLT pour générer du XSL-
FO à partir de données au format
XML.
 Mise en forme possible
 Pagination d’un document
 Notes de bas de page
 Marges
 Polices des caractères
 Affichage de tableaux, etc.

K. M. BROU Technologies XML : Généralités 48


IV. Feuilles de style
 Remarque :
 XSL-FO ne marche pas encore dans les
navigateurs habituels
 Mais il existe de viewers
 Il existe plusieurs outils "server-side"
(Cocoon, Axkit) qui incluent un
processeur FO.
 Des éditeurs XML comme Oxygen
peuvent lancer des processeurs FO
comme FOP
 FOP : Formatting Objects Processor
 Développé dans le cadre du projet
Apache
 Permet de générer un document PDF à
partir d’un document XSL-FO.

K. M. BROU Technologies XML : Généralités 49


IV. Feuilles de style
 Processus pour générer du PDF
1. Génération d’un document XSL-FO Document
Document
 A partir d’un document XML XML XSLT
et d’une feuille de style XSLT
en entrée d’un processeur XSLT.
Processeur XSLT
2. Génération du document PDF
 A partir d’un document XML
en entrée d’un processeur FOP Document
XSL-FO

Processeur FOP

Document
PDF

K. M. BROU Technologies XML : Généralités 50


IV. Feuilles de style
 Structure d’une page
 Page layout

Page top margin


P BEFORE P
a a
g g
e e
l S r
e E
T i
f N
A BODY g
t D
R h
m T t
a m
r a
g r
i g
n AFTER i
n
Page bottom margin
K. M. BROU Technologies XML : Généralités 51
IV. Feuilles de style
 Squelette XSL-FO de base  fo:root : la racine contient :
 fo:layout-master-set : définit un ou
<xsl:template match="page"> plusieurs page layout
<fo:root>  fo:simple-page-master : définit un
<fo:layout-master-set> layout
<!-- Definition of a single master page. It is simple (no
headers etc.) -->  fo:declarations : des déclarations à
<fo:simple-page-master master-name="first" > option
<!-- required element body -->  fo:page-sequences : définit une
<fo:region-body/> séquence d’un ou plusieurs texte
</fo:simple-page-master>
</fo:layout-master-set> (littéralement ou fournis par XSLT) et
<!-- Definition of a page sequence --> des instructions de formatage.
<fo:page-sequence master-name="first">
<fo:flow flow-name="xsl-region-body" font-
size="14pt" line-height="14pt">
<xsl:apply-templates/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>

K. M. BROU Technologies XML : Généralités 52


IV. Feuilles de style
 Qu'est-ce que Cocoon?  Une grande variété de composants
 http://www.nyu.edu/classes/jcf/g22. réutilisables sont inclus, qui peuvent
3033- être configurés pour produire un
003_fa09/handouts/IntroductionToCoc comportement complexe avec un
oon2.pdf minimum de développement Java.
 Cocoon est un projet open-source  Effectuer des transformations XSLT
développé dans le cadre de Apache simples et multi-étapes
XML.  Transmettre les paramètres
 Framework de serveur Java qui permet dynamiquement aux transformations
la publication dynamique de contenu XSLT
XML utilisant des transformations XSLT.  Générer une grande variété de
 Permet de créer des applications avec formats de sortie, y compris XML,
séparation entre contenu, logique et HTML, PNG, JPEG, SVG, et PDF
présentation.
 Utilise le concept d'un pipeline pour
décrire le processus de publication du
contenu pour le Web.

K. M. BROU Technologies XML : Généralités 53


IV. Feuilles de style
 Télécharger Tomcat  Télécharger Cocoon
 http://tomcat.apache.org/  http://cocoon.apache.org/
 Télécharger de Python  http://cocoon.apache.org/3.0/downloa
 https://www.python.org/ftp/python/ d.html
3.6.5/python-3.6.5-amd64.exe  Copier cocoon.war dans le dossier
/webapps de Tomcat
 Télécharger de WinCSV
 Redémarrer Tomcat
 http://www.apache.org/dyn/closer.l
ua/cocoon/2.2/cocoon-2.2.0.zip  Il y a création de du dossier
/webapps/cocoon
 Tester l’URL
 http://localhost:8080/cocoon/

K. M. BROU Technologies XML : Généralités 54


V. Définition de Types de Documents
 5.1. Présentation  Document bien formé (Well
 DTD : Document Type Definition Formed document)
 Liste de règles définies au début  Balises correctement imbriquées
d’un document XML pour permettre  Analysable (parsable) et
sa validation avant sa lecture. manipulable
 Permet de définir le "vocabulaire"  Pas nécessairement valide par
et la structure qui seront utilisés rapport à la DTD
dans le document XML.  Document valide (Valid document)
 Grammaire du langage dont les  Bien formé + conforme à la DTD
phrases sont des documents XML (ou au XML schéma)
(instances).
 Deux sortes de DTD :
 DTD interne : insérée dans le
document XML
 DTD externe : mise dans un fichier
séparé.

K. M. BROU Technologies XML : Généralités 55


V. Définition de Types de Documents
 5.2. Les éléments
 Servent à définir des balises du
langage que l'on veut créer.
 Chaque balise du langage doit faire
l'objet d'une définition d'élément.
 La définition d'un élément contient
deux parties :
 nom de l'élément et contenu autorisé.
 Deux sortes d’éléments :
 Simple ;
 Composé.

K. M. BROU Technologies XML : Généralités 56


V. Définition de Types de Documents
 Déclaration d’élément simple  Exemple
 <! ELEMENT balise (définition)>
<!ELEMENT last (#PCDATA)>
 définition : représente soit un type
de donnée prédéfini, soit un type de <last>Stevens</last>
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 ;
 #CDATA : texte brut non analysé
en tant qu’XML.
 #PCDATA : L'élément doit contenir
une chaîne de caractère analysable.

K. M. BROU Technologies XML : Généralités 57


V. Définition de Types de Documents
 Déclaration d'élément composé
Opérateur Signification Exemple
 Elément composé d'une séquence ou L'élément doit être présent au
d'un choix d'éléments +
minimum une fois
A+
 Syntaxe spécifique L'élément peut être présent
* A*
 <! ELEMENT balise (composition) > plusieurs fois (ou aucune)
avec opérateurs de composition L'élément peut être optionnellement
 ? A?
d'éléments : présent (0 ou 1)
L'élément A ou B peuvent être
 Exemple : |
présents (pas les deux)
A|B
L'élément A doit être présent et suivi
<!ELEMENT author (last,first)> , A,B
de l'élément B
<!ELEMENT last (#PCDATA)> Les parenthèses permettent de
<!ELEMENT first (#PCDATA)> () regrouper des éléments afin de leur (A,B)+
<author> appliquer les autres opérateurs
<last>Stevens</last>
<first>W.</first>
</author>

K. M. BROU Technologies XML : Généralités 58


V. Définition de Types de Documents
 Déclaration d'attributs
 <! ATTLIST balise Attribut Type Type Explication
Mode > CDATA chaîne quelconque de caractères entre guillemets
("aa") non analysées
 balise : spécifie l'élément auquel
PCDATA chaîne quelconque de caractères entre guillemets
est attaché l'attribut
("aa") analysées
 Attribut : nom de l'attribut déclaré ID nom unique dans le document (identifiant)
 Type : définit le type de donnée de IDREF numéro d'identifiant du document (clé étrangère)
l'attribut choisi parmi : ENTITY entité externe
ENTITIES liste d'ENTITY séparées par des espaces
 Enumération
NMTOKEN mot sans espace
 Liste de valeurs séparées par | NMTOKENS liste de NMTOKEN séparés par des espaces
 <! ATTLIST balise Attribut
(Valeur1 | Valeur2 | ... ) >
 Mode : précise le caractère
obligatoire ou non de l'attribut

K. M. BROU Technologies XML : Généralités 59


V. Définition de Types de Documents
 Exemple d'attributs  Exemple de DTD (bib.dtd)
Mode Explication <?xml version="1.0" encoding="ISO-8859-1"?>
#REQUIRED la valeur de l’attribut doit-être donnée dans <!ELEMENT bib (book+)>
<!ELEMENT book (title,(author+|editor*),publisher+,price)>
le document
<!ATTLIST book id ID #REQUIRED>
#IMPLIED s'il n'y a pas de valeur dans le document,
<!ATTLIST book year CDATA "">
c'est à l'application traitant le document de <!ELEMENT title (#PCDATA)>
donner la valeur par défaut <!ELEMENT author (last,first)>
#FIXED la valeur doit être celle de la DTD <!ELEMENT last (#PCDATA)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT bib (book+)> <!ELEMENT publisher (#PCDATA)>
<!ELEMENT book(title, author+, <!ELEMENT price (#PCDATA)>
publisher+, price, editor+)> <!ELEMENT editor (last,first,affiliation)>
<!ATTLIST book id ID #REQUIRED> <!ELEMENT affiliation (#PCDATA)>
<!ATTLIST book year CDATA "">

<book id="b1" year="1992">


<title>Advanced Programming in the Unix
environment</title>

</book>

K. M. BROU Technologies XML : Généralités 60


V. Définition de Types de Documents
 5.3. Utilisation d’une DTD  DTD externe : dans un fichier à
 DTD interne : incorporée dans le part
document  bib2DTD.dtd, bib2.xml
 bibDTDInterne.xml  Syntaxe
<?xml version="1.0" encoding="ISO-8859-1"  <!DOCTYPE NomDeLElementRacine

standalone="yes"?> SYSTEM "URLduFichierDeDTD">


<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="ISO-8859-1"
<!DOCTYPE bib [
standalone = "no" ?>
<!ELEMENT bib (book+)>
<!DOCTYPE bib SYSTEM "bib2DTD.dtd">
<!ELEMENT book (title,(author+ |
<bib>
editor*),publisher+,price) >
<book id="b1" year="1994">
<!ATTLIST book id ID #REQUIRED>
<title>TCP/IP Illustrated</title>
<!ATTLIST book year CDATA "">
<author>

<last>Stevens</last>
]>
<first>W.</first></author>
<bib>
<publisher>Addison-Wesley</publisher>
<book id="b1" year="1994">
<price>65.95</price>
<title>TCP/IP Illustrated</title>
</book>
<author><last>Stevens</last><first>W.</first>

</author>
</bib>

</book> K. M. BROU Technologies XML : Généralités 61
VI. XML Schema
 6.1. Présentation  Très peu de contraintes sur les
chaînes contenues dans les
 Insuuffisances des DTDs éléments et sur les valeurs
 Trop contraignantes : tout doit d'attributs.
être défini  Syntaxe particulière différente
 Pas de notion d'espace de noms de la syntaxe de balisage des
 Risque de collisions entre instances (pas au format XML).
symboles importés et symboles  Solution
définis localement.
 Notion de XML schéma
 Pas assez contraignantes :
 Un schéma utilise la notation
 Pas de définition du nombres XML.
d'occurrences

K. M. BROU Technologies XML : Généralités 62


VI. XML Schema
 Apports des schémas
 Typage des données
 Permet la gestion de booléens,
d'entiers, d'intervalles de temps...
 Possible de créer de nouveaux types à
partir de types existants.
 Notion d'héritage
 Les éléments peuvent hériter du
contenu et des attributs d'un autre
élément.
 Support des espaces de nom
 Indicateurs d'occurrences des
éléments
 Peuvent être tout nombre non négatif
 Dans une DTD, on était limité à 0, 1
ou un nombre infini
 Facilement concevables par modules

K. M. BROU Technologies XML : Généralités 63


VI. XML Schema
 Exemple : document XML <?xml version="1.0" encoding="ISO-8859-1" ?>
 bib.xml <bib>
<book id="b1" year="1994">
 Plusieurs méthodes de <title>TCP/IP Illustrated</title>
construction de schémas : <author><last>Stevens</last><first>W.</first></author>
<publisher>Addison-Wesley</publisher>
 Schéma interne au document ;
<price>65.95</price>
 Schéma externe au document ; </book>
 Définition de types nommés. <book id="b4" year="1999">
<title>The Technology and Content for Digital TV</title>
<editor><last>Gerbarg</last><first>Darcy</first>
<affiliation>CITI</affiliation>
</editor>
<publisher>Kluwer Academic Publishers</publisher>
<price>129.95</price>
</book>

K. M. BROU Technologies XML : Généralités 64


VI. XML Schema
 6.2. Schéma interne au document  Avantage : très simple à implémenter
 Suivre la structure du document  Inconvénients :
(bibInterne.xsd).  Difficile à lire et à maintenir si la
 Définir chaque élément ou attribut structure du document se
dans son contexte. complexifie.
 Définir des occurrences multiples  très différent de la structure des
d'un même nom d'élément ayant des DTDs : Gênant
structures différentes en fonction du  lors de la conversion manuelle ou
contexte dans le document. automatique de DTDs en W3C XML
 W3C XML Schema est un langage Schema.
contextuel hiérarchique avec  pour développer des
champ de définition. méthodologies génériques de
génération de schémas.
 Chaque définition est visible que dans
l'élément dans laquelle elle est
effectuée ainsi que dans tous ses
descendants.

K. M. BROU Technologies XML : Généralités 65


VI. XML Schema
<!-- fichier bibInterne.xsd-->

<?xml version="1.0" encoding="ISO-8859-1" ?>


<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="bib">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="book" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="author" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="last" type="xsd:string"/>
<xsd:element name="first" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

K. M. BROU Technologies XML : Généralités 66


VI. XML Schema
 Explication 2. Balise ouvrante de l’élément "book"
1. Prologue du document : ouverture un <xsd:element name="book">
élément "schema" <xsd:complexType>
<?xml version="1.0" encoding="utf-8"?> <xsd:sequence>
<xsd:schema  Définit un élément qui aura ce nom
xmlns:xsd="http://www.w3.org/2000/10/ book.
XMLSchema">  complexType : élément ayant des
 L'élément "schema" ouvre un schéma W3C attributs et des sous éléments,
XML Schema.  simpleType : éléments et attributs
sans sous-éléments ou attributs et ne
contenant donc que des valeurs.
 Sequence : liste des sous éléments
décrite à l'intérieur d'un élément qui
définit une liste ordonnée de sous
éléments
 Remarque :
 Pas de différence entre xsd ou xs

K. M. BROU Technologies XML : Généralités 67


VI. XML Schema
3. Description les éléments "title" et
"price"
 de types simples puisqu'ils n'ont ni <xsd:element name="title" type="xsd:string"/>
attributs ni sous-éléments. <xsd:element name="price" type="xsd:string"/>
 xsd:string : type utilisé préfixé par
l'espace de noms xsd
 string est un type prédéfini de <xsd:element name="character " minOccurs="0"
W3C XML Schema : maxOccurs="unbounded">
4. Elément "author" de type <xsd:complexType>
<xsd:sequence>
complexe
 minOccurs et maxOccurs
définissent sa cardinalité <xsd:element name="last" type="xsd:string"/>
5. Liste des éléments de l’élément <xsd:element name="first" type="xsd:string"/>
author (déjà vu) :

K. M. BROU Technologies XML : Généralités 68


VI. XML Schema
6. Fin de l'élément "author",
"complexType" et "element"
 Séquence des éléments pour </xsd:sequence>
</xsd:complexType>
l'élément "book" est également </xsd:element>
terminée :
</xsd:sequence>
7. Définition des attributs de
l’élément book
<xsd:attribute name="id"
type="xsd:string"/>
 les attributs devant toujours être
déclarés après les éléments.
8. Fin du schéma
</xsd:complexType>
 Refermer tous les éléments
</xsd:element>
encore ouverts
</xsd:schema>

K. M. BROU Technologies XML : Généralités 69


VI. XML Schema
 6.3. Schéma externe au document <!-- fichier bibExterne.xsd-->
<?xml version="1.0" encoding="UTF-8"?>
 Construire à la manière des DTDs, <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="title" type="xs:string"/>
un simple catalogue éléments <xs:element name="publisher" type="xs:string"/>
présents dans le document. <xs:element name="price" type="xs:string"/>
<xs:element name="last" type="xs:string"/>
 Préciser, pour chacun, la liste de <xs:element name="first" type="xs:string"/>
ses attributs et éléments. <xs:element name=“affiliation" type="xs:string"/>
<xs:element name="editor">
<xs:complexType>
<xs:sequence>
<xs:element ref="last"/>
<xs:element ref="first"/>
<xs:element ref="affiliation"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:choice>
<xs:element ref="author" maxOccurs="unbounded"/>
<xs:element ref="editor"/>
</xs:choice>
K. M. BROU Technologies XML : Généralités 70
VI. XML Schema
<xs:element ref="publisher"/>
<xs:element ref="price"/>
</xs:sequence>
<xs:attribute name="year" use="required" type="xs:short"/>
<xs:attribute name="id" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="bib">
<xs:complexType>
<xs:sequence>
<xs:element ref="book" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element ref="last"/>
<xs:element ref="first"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="affiliation" type="xs:string"/>
</xs:schema>

K. M. BROU Technologies XML : Généralités 71


VI. XML Schema
 6.4. Définition de type nommé  Réalisation
 Consiste à définir des types de  Donner un nom aux éléments
données pouvant être : "simpleType" et "complexType"
 Simples  Les définir en dehors de toute
définition d'élément ou d'attribut.
 Utilisable uniquement par des
attributs ou des éléments au  Dériver un type à partir d'un
contenu simple (PCDATA) autre type
 complexes  Donnant une restriction sur les
 Utilisables uniquement pour valeurs acceptées par ce type de
définir des éléments données.
 Utiliser ces types pour définir les
éléments et attributs.

K. M. BROU Technologies XML : Généralités 72


VI. XML Schema
 Exemple
 Définir un type de données
<xsd:simpleType name="nameType">
"nameType"
<xsd:restriction base="xsd:string">
 Chaîne de 50 caractères maximum : <xsd:maxLength value=“50"/>
 simpleType : définit le nom du type </xsd:restriction>
de données. </xsd:simpleType>

 restriction : son attribut base indique


que ce type de données est dérivé
par restriction du type de données
"string".
 maxLength : appelé "facette"
 définit cette restriction comme étant
le fait que la taille maximale est de
50.
 l'unité étant fonction du type de
données qui est ici le caractère.

K. M. BROU Technologies XML : Généralités 73


VI. XML Schema
 Facette "pattern" : permet de donner
une expression régulière qui devra être
vérifiée pour que la valeur soit
acceptée.
 une expression régulière est une chaîne <xsd:simpleType name="yearType">
de caractères, qui décrit, selon une <xsd:restriction base="xsd:string">
syntaxe précise, un ensemble de <xsd:pattern value="[0-9]{4}"/>
chaînes de caractères possibles. </xsd:restriction>
</xsd:simpleType>
 Exemple chaine de 4 caractères
numériques : "[0-9]{4}"
 Exemple : attribut year
 Type yearType est une chaîne de quatre
caractères numériques de la manière

K. M. BROU Technologies XML : Généralités 74


VI. XML Schema
<!-- fichier bibNomme.xsd--> <!-- definition of attributes -->
<?xml version="1.0" encoding="UTF-8" ?> <xsd:attribute name="id" type="xsd:string"/>
<xsd:schema <xsd:attribute name="year" type="yearType"/>
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- definition des types simples d'elements --> <!-- definition des types complexes d'elements -->
<xsd:simpleType name="nameType"> <xsd:element name="author">
<xsd:restriction base="xsd:string"> <xsd:complexType>
<xsd:maxLength value="50"/> <xsd:sequence>
</xsd:restriction> <xsd:element ref="last"/>
</xsd:simpleType> <xsd:element ref="first"/>
<xsd:simpleType name="yearType"> </xsd:sequence>
<xsd:restriction base="xsd:string"> </xsd:complexType>
<xsd:pattern value="[0-9]{4}"/> </xsd:element>
</xsd:restriction>
</xsd:simpleType> <xsd:element name="editor">
<xsd:complexType>
<xsd:element name="title" type="nameType"/> <xsd:sequence>
<xsd:element name="price" type="nameType"/> <xsd:element ref="last"/>
<xsd:element name="last" type="nameType"/> <xsd:element ref="first"/>
<xsd:element name="first" type="nameType"/> <xsd:element ref="affiliation"/>
<xsd:element name="affiliation" type="nameType"/> </xsd:sequence>
<xsd:element name="publisher" type="nameType"/> </xsd:complexType>
</xsd:element>
K. M. BROU Technologies XML : Généralités 75
VI. XML Schema
<xsd:element name="book">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="title"/>
<xsd:element ref="author" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="editor" minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element ref="publisher"/>
<xsd:element ref="price"/>
</xsd:sequence>
<xsd:attribute ref="id"/>
<xsd:attribute ref="year"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="bib">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="book" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
K. M. BROU Technologies XML : Généralités 76
VI. XML Schema
 6.5. Lier un fichier XML à un schéma  Référence locale pour une DTD de
 Un document XML peut faire référence à type SYSTEM
un ou plusieurs schémas selon lesquels  on fait référence au schéma dans le
ce document est structuré. document XML en utilisant l'attribut
 La référence se fait d'une des façons noNamespaceSchemaLocation :
suivantes
<bib xmlns:xsi =
 On utilise pour ce faire le préfixe
"http://www.w3.org/2001/XMLSchema-
xmlns. instance" xsi:noNamespaceSchemaLocation
 xmlns:xsd="http://www.w3.org/200 ="lien_relatif_vers_le_schema">.
1/XMLSchema".  Exemple
 Tous les éléments commençant par
xsd sont référencés à cette URL. <bib xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
 Si on a déposé un schéma à l'adresse
xsi:noNamespaceSchemaLocation
http://www.monsite.org/collection_sc ="bibExterne.xsd">.
hemas/bib, on peut l'appeler par
<xsd:bib
xmlns="http://www.monsite.org
/collection_schemas/bib">.
K. M. BROU Technologies XML : Généralités 77
VI. XML Schema
 Exemple (bibXsd.xml) <?xml version="1.0" encoding="ISO-8859-1" ?>
<bib xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation = "bibExterne.xsd">
<book id="1" year="1994">
<title>TCP/IP Illustrated</title>
<author><last>Stevens</last><first>W.</first></author>
<publisher>Addison-Wesley</publisher>
<price>65.95</price>
</book>
<book id="4" year="1999">
<title>The Technology and Content for Digital TV</title>
<editor>
<last>Gerbarg</last>
<first>Darcy</first>
<affiliation>CITI</affiliation>
</editor>
<publisher>Kluwer Academic Publishers</publisher>
<price>129.95</price>
</book>
</bib>

K. M. BROU Technologies XML : Généralités 78


VI. XML Schema
 Exemple (bibNxsd.xml) <?xml version="1.0" encoding="UTF-8"?>
<bib xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="bibNomme.xsd">
<book id="b1" year="1994">
<title>TCP/IP Illustrated</title>
<author>
<last>Stevens</last>
<first>W.</first>
</author>
<publisher>Addison-Wesley</publisher>
<price>65.95</price>
</book>
<book id="b2" year="1992">
<title>Advanced Programming in the Unix environment</title>
<author>
<last>Stevens</last>
<first>W.</first>
</author>
<publisher>Addison-Wesley</publisher>
<price>70.95</price>
</book>

</bib>

K. M. BROU Technologies XML : Généralités 79


VII. XML : BD ou SGBD ?
 7.1. XML est une sorte de SGBD  Inconvénients :
 Points communs  Stockage inefficace ;
 Le stockage : document XML  Pas d’indexs ;
 Les schémas : DTD, XML schéma  Pas de sécurité ;
 Langages de requête : XPath, XQL,  Pas de transactions ;
XQuery…  Pas de contraintes d’intégrité des
 Des interfaces de programmation : données ;
 SAX : Simple API for XML  Pas d’accès multi-utilisateurs ;
 DOM : Document Object Model  Pas de triggers.
 JDOM : Java Document Object Model

K. M. BROU Technologies XML : Généralités 80


VII. XML : une BD ou un SGBD ?
 7.2. Solutions aux inconvénients  Supporte :
 Stockage dans une BD  Transactions ;
relationnelle  Sécurité ;
 Pour documents orientés données  Accès concurrent ;
 Structure régulière, fixe et prévisible  Langage de requête ;
 Stockage dans une BD native  Intégrité des documents ;
 Véritable système de gestion de  Indexes.
BD XML
 Pour documents orientés
documents
 Structure irrégulière, fixe et
imprévisible
 Spécifique pour stocker des
documents XML
 Document XML  Ligne
 Collection de documents  Table

K. M. BROU Technologies XML : Généralités 81


VII. XML : une BD ou un SGBD ?
 7.3. Comment interroger des  XML-QL (AT&T) : pattern XML de
documents XML? recherche et composition
 XQL (MS) : URL dopées aux
 Solutions : langages de requêtes expressions régulières
 SQL : il faut stocker XML dans une  XSQL (Oracle) : SQL3 avec résultats
BD relationnel XML
 Langage des SGBD natives  XQuery (draft W3C ) : vrai langage
 XPath : extraction de fragments de requêtes pour XML
d’arbres
 XSLT : extraction + transformation
(règles)
 LOREL (UC Stanford) : extension de
OQL avec les expressions de
chemins
 SQLX (PRiSM) : extension de SQL
avec les expressions de chemins

K. M. BROU Technologies XML : Généralités 82


Bibliographie
 Livres
 http://h2ptm.hypermedia.univ-
 "XML, Langage et applications", paris8.fr/mkadmi/coursXML/sommaire.htm
Alain Michard, Eyrolles.  http://wam.inrialpes.fr/course
 https://coursexercicespdf.com/t  s/VQ-EcoleEte3-4-Jun03/slide4-0.html
elecharger-fichier.html  http://gilles.chagnon.free.fr/cours/xml/sche
 Webographie ma.html
 https://openclassrooms.com/course  http://www.galaxquery.org/
s/structurez-vos-donnees-avec-  http://www.w3.org/TR/xmlquery-use-
xml/qu-est-ce-que-le-xml cases/
 http://www.w3.org/XML/Query  http://css.mammouthland.net/css_de_base.
 http:// php
www.lri.fr/~benzaken/documents/x  http://www.yoyodesign.org/doc/w3c/css2/
query.pdf cover.html#minitoc
 http://cui.unige.ch/eao/www/xml/  http://www.aliasdmc.fr/coursjavas/cours_j
Plan.html#main avascript166.html

K. M. BROU Technologies XML : Généralités 83

Vous aimerez peut-être aussi