Technologies XML
Chapitre 1 : Généralités
Dr Konan Marcellin BROU
[Link]@[Link]
konanmarcellin@[Link]
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 ([Link]) ;
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
[Link]
Remplacer l’extension docx par zip
([Link])
Dézipper [Link]
Ouvrir le fichier word/[Link]
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
[Link]
<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@[Link]
</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="[Link]
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"
"[Link]
[Link]">
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 & pour & dans des
par exemple ôter un </p> n’est pas attributs, y compris les URL :
valable
<a href="?a=1&b=2">
K. M. BROU Technologies XML : Généralités 19
III. Concepts de base de XML
Exemple de document xhtml
([Link])
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"[Link]
<html xmlns="[Link] 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
[Link] <last>Buneman</last>
<?xml version="1.0" encoding="ISO-8859-1" standalone = "no" ?> <first>Peter</first>
<?DOCTYPE bib SYSTEM [Link] ?>
</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)
[Link]
-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)
[Link]
/download/[Link]
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)
[Link]
[Link]/fr/download/[Link]
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)
[Link] [Link]
[Link]/dl4/[Link]?na
Editix (payant, version gratuite) me=corel%20xmetal&torrent=111
[Link] Editeur XML
[Link] Prend en charge la conversion de BD
Editix-xml-editor ODBC au format XML.
XML Spy (payant)
[Link]
[Link]
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 [Link]
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é
& &
< <
> >
" "
' '
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 > 0</a>
</comparaison> </comparaison>
K. M. BROU Technologies XML : Généralités 31
III. Concepts de base de XML
Entités internes Exemple : [Link]
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 : [Link]
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 "[Link]">
Syntaxe
]>
<?xml version="1.0" standalone="no"?> <classe>
<!DOCTYPE Elementracine [ <eleve>&eleves;</eleve>
<!ENTITY nomEntite SYSTEM "[Link]"> </classe>
]>
SYSTEM commande la lecture
d’une URL, ici, c’est un fichier local.
Le contenu du document
[Link] 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 : [Link] [Link]
<?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="[Link]" 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 : [Link]
Extension de CSS pour les
documents XML.
Exemple : [Link]
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="[Link] 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="[Link]
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 : [Link]
<?xml version="1.0"?> <xsl:for-each select="author">
<xsl:stylesheet version="1.0" <tr><td><font color="blue">
xmlns:xsl="[Link] <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
[Link]
<?xml version="1.0" encoding="ISO-8859-1" standalone =
"no" ?>
<?xml-stylesheet href="[Link]" 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
[Link] réutilisables sont inclus, qui peuvent
3033- être configurés pour produire un
003_fa09/handouts/IntroductionToCoc comportement complexe avec un
[Link] 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
[Link] [Link]
Télécharger de Python [Link]
[Link] [Link]
3.6.5/[Link] Copier [Link] dans le dossier
/webapps de Tomcat
Télécharger de WinCSV
Redémarrer Tomcat
[Link]
ua/cocoon/2.2/[Link] Il y a création de du dossier
/webapps/cocoon
Tester l’URL
[Link]
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 ([Link])
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 [Link], [Link]
[Link] 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 "[Link]">
<!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" ?>
[Link] <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 :
([Link]). 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 [Link]-->
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsd:schema xmlns:xsd="[Link]
<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="[Link] 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 [Link]-->
<?xml version="1.0" encoding="UTF-8"?>
Construire à la manière des DTDs, <xs:schema xmlns:xs="[Link]
<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 [Link]--> <!-- 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="[Link]
<!-- 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
"[Link]
xmlns. instance" xsi:noNamespaceSchemaLocation
xmlns:xsd="[Link] ="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=
"[Link]
Si on a déposé un schéma à l'adresse
xsi:noNamespaceSchemaLocation
[Link] ="[Link]">.
hemas/bib, on peut l'appeler par
<xsd:bib
xmlns="[Link]
/collection_schemas/bib">.
K. M. BROU Technologies XML : Généralités 77
VI. XML Schema
Exemple ([Link]) <?xml version="1.0" encoding="ISO-8859-1" ?>
<bib xmlns:xsi="[Link]
xsi:noNamespaceSchemaLocation = "[Link]">
<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 ([Link]) <?xml version="1.0" encoding="UTF-8"?>
<bib xmlns:xsi="[Link]
xsi:noNamespaceSchemaLocation="[Link]">
<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
[Link]
"XML, Langage et applications", [Link]/mkadmi/coursXML/[Link]
Alain Michard, Eyrolles. [Link]
[Link] s/VQ-EcoleEte3-4-Jun03/[Link]
[Link] [Link]
Webographie [Link]
[Link] [Link]
s/structurez-vos-donnees-avec- [Link]
xml/qu-est-ce-que-le-xml cases/
[Link] [Link]
http:// php
[Link]/~benzaken/documents/x [Link]
[Link] [Link]#minitoc
[Link] [Link]
[Link]#main [Link]
K. M. BROU Technologies XML : Généralités 83