Académique Documents
Professionnel Documents
Culture Documents
Oriented Architecture) et
services web
Niveau: GLSI3
Plan du cours
▪ Chapitre I : Technologies XML
Niveau: GLSI3
Plan du chapitre 1
▪ Partie 1
1. XML
2. Validation des documents XML
▪ DTD
▪ XSD
▪ Partie 2
3. XSL
▪ Xpath
▪ XSLT
▪ XQuery
4
Introduction: Présentation de XML
▪ eXtended Markup Language
▪ XML est issue du langage de balise SGML dont est issue HTML
▪ Si HTML est conçu pour l’affichage, XML est conçu pour le représentation des
données.
5
Introduction: Présentation des technologies XML
▪ XML regroupe un ensemble de technologies
▪ Schémas XML et DTD: Modèles de documents
▪ Description des modèles de documents
▪ Schémas XML sont plus souples et puissants que DTD
▪ XPath : Langage de sélection
▪ Sélection des éléments dans un document XML
▪ XQuery : Langage de requête
▪ Extraction des informations à partir d'un ou plusieurs documents XML et
synthèse de nouvelles informations à partir de celles extraites
▪ XSLT : Transformation de documents
▪ Expression facile des transformations complexes entre documents XML
6
1. XML
7
Présentation
▪ Un document XML est un ensemble de données organisées dans un arbre
▪ Format textuel
Desc1 Desc 2
8
Premier exemple d’un document XML
1
2
3
4
Prologue
Corps
10
Structure XML : entête
12
Structure XML : balise
▪ Les balises sont les éléments de base d'un document XML
▪ Les balises permettent de décrire les données contenu dans le document XML
13
Exercice d’application: Création d’un livre en XML
▪ On souhaite écrire un livre en utilisant le formalisme XML. Le livre est structuré
en sections (au moins 2), en chapitres (au moins 2) et en paragraphes (au
moins 2).
▪ Le livre doit contenir la liste des auteurs (avec nom et prénom).
▪ Tous les éléments doivent posséder un titre, sauf le paragraphe qui contient du
texte.
▪ Proposez une structuration XML de ce document (avec 2 auteurs, 2 sections, 2
chapitres par section et 2 paragraphes par chapitre).
▪ Vérifiez, à l’aide de l’éditeur, que votre document est bien formé.
▪ Attention : ne pas utiliser d’attributs ; l’encodage utilisé est ISO-8859-1
▪ Votre document sera nommé livre1.xml.
14
Types de nœuds XML
Un arbre XML possède différents types de nœuds :
▪ Racine: nœud élément contenant l’intégralité du document. C’est labalise racine (root)
▪ Un document XML ne contient qu’une seule balise racine
▪ Élément: nœud possédant un nom (balise). Il peut posséder des nœuds filles de tous
types (sauf racine)
▪ Attribut: nœud sous forme ”nom = valeur” et qui est rattaché à la balise ouvrante d’un
élément. Pour un élément donné, impossible d’avoir deux attribut portant le même nom
▪ Commentaire
15
Types de nœuds XML
1. Éléments
▪ Un élément est formé d'une balise ouvrante, d'un contenu et de la balise
fermante correspondante.
16
Types de nœuds XML
1. Éléments
▪ Exemple d’imbrication d’éléments
Parent
Desc1 Desc 2
Enf1 Enf2
17
Types de nœuds XML
2. Attributs
▪ Les balises ouvrantes peuvent contenir des attributs associés à des valeurs. Chaque
balise ouvrante peut contenir 0, 1 ou plusieurs associations de valeurs à des attributs
▪ L'association de la valeur à l'attribut prend la forme:
▪ attribute='value’ ou
▪ attribute="value"; où attribute et value sont respectivement le nom et la valeur de l'attribut.
▪ Les espaces peuvent être présents dans la balise après le nom de l'élément et entre les
attributs.
▪ Aucun espace ne peut séparer le caractère '=' du nom de l'attribut et de sa valeur.
▪ L'ordre des attributs n'a pas d'importance
18
Exercice d’application: Utilisation des attributs
▪ Conception de livre2.xml à partir de livre1.xml
20
Quelques conventions de nommage
▪ Employer des minuscules pour les attributs et les éléments.
▪ Éviter les accents dans les noms d’attributs et d’éléments pour des raisons de
compatibilité avec les outils du marché qui proviennent souvent d’un univers
anglo-saxon.
▪ Préférer les guillemets délimitant les valeurs d’attribut.
▪ Séparer les noms composés de plusieurs mots par les caractères -, _, . ou une
majuscule.
▪ Essayer d’être homogène dans votre document en gardant la même
convention. 21
Exercice d’application: Document bien formé
<?xml version="1.0"?>
<!-- this is a note -->
<note date=3 janvier>
▪ Observez le document XML suivant <to>Bob</To>
<from>Alice</from>
▪ Ce document est-il bien formé (i.e. <heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
respecte-t-il la syntaxe XML) ? </note>
<note date="5 janvier" <!-- this is another note -->
▪ S'il ne l'est pas, corrigez les erreurs. >
<to>Alice</to>
<from>Bob
<body>No problem & see you soon</body>
</note>
<note />
22
Les espaces de noms dans un document XML
▪ Problématique: Comment garantir, quand nous choisissons une balise ou un attribut,
que personne n’a eu la même idée dans un contexte d’application différent ?
▪ le choix de l’élément titre peut représenter le titre d’un livre, mais pourquoi pas le titre de
noblesse d’une personne…
▪ Pour délimiter la portée d’une balise, d’un attribut ou d’une valeur d’attribut, nous
utilisons les espaces de noms (namespace)
▪ L’utilisation des espaces de noms garantit une forme de traçabilité de la balise et
évite les ambiguïtés d’usage
▪ Concept très connu en informatique
▪ Exemple: packages dans le langage de programmation Java qui servent à délimiter la portée
d’une classe. En choisissant un package, le développeur lève tout conflit potentiel sur le nom, car
la classe sera par la suite utilisée directement ou indirectement via son package et son nom.
23
Les espaces de noms dans un document XML
▪ 3 documents de sociétés différentes qui sont
intégrés dans un document utilisé par la
société 4.
▪ Il faux que:
▪ ces mélanges se fassent sans conflit
▪ L’application sache différencier ce qui vient de
telle ou telle société.
▪ Pour que les espaces de noms aient un sens, il
faut pour chacun d’eux un identifiant unique.
▪ Cet identifiant unique peut être simplement l’URL
24
Les espaces de noms dans un document XML
▪ Plusieurs méthodes pour l’intégration des espaces de noms, exemples: Les
règles implicites et explicites (la plus employée).
▪ L’espace de noms par défaut
▪ Il est précisé par un pseudo-attribut xmlns et la valeur associée est une URL garantissant
l’unicité de l’espace de noms.
▪ Il s’applique à l’élément où se situe sa déclaration et à tout son contenu.
25
Les espaces de noms dans un document XML
▪ L’espace de noms par défaut même dans les éléments enfants, peut être
changé : une règle de priorité est appliquée.
L’élément paragraphe n’appartient pas à
l’espace de noms
http://www.masociete.com mais
uniquement à l’espace de noms
http://www.autresociete.com
27
Exercice d’application: Utilisation des espaces de noms
▪ Il s’agit de créer un document livre3.xml sur la base de livre1.xml en respectant
les points suivants :
▪ Mettez tous les éléments dans l’espace de noms http://www.masociete.com sans utiliser
d’espace de noms par défaut.
28
2. Validation des documents XML
29
Validation XML
▪ Pour qu'un document XML soit utilisé comme un format d'échange, il doit
respecter certaines contraintes syntaxiques :
▪ Nom des éléments et des attributs autorisés,
▪ Hiérarchie(père/fils) et appartenance des éléments et attributs,
▪ Séquencement et itérations des éléments, Contraintes d'unicités et de référence.
▪ Validation XML est le contrôle du contenu XML par rapport à une grammaire
fournie
▪ DTD (Document Type Definition): le plus ancien
▪ XML Schéma ou XSD: norme fournie par le W3C
▪ Relax NG : l'équivalent de XML Schéma mais proposé par OASIS.
30
DTD (Document Type Definition)
▪ DTD permet de décrire la structure d'un document XML:
▪ Liste des balises
▪ Attributs des balises
▪ Organisation des balises
▪ La validation est le mécanisme qui vérifie qu’un document XML respecte une
DTD (c.à.d., respecte un certains nombre de contraintes)
31
DTD Structure : élément
32
DTD Structure : élément
Type DTD XML
Elément vide <!ELEMENT elt EMPTY> <elt/>
Elément contenant du texte <!ELEMENT elt (#PCDATA)> <elt>texte</elt>
Elément avec sous éléments <!ELEMENT elt (sous-elt)> <elt>
<!ELEMENT sous-elt EMPTY> <sous-elt/>
</elt>
Elément avec plusieurs sous <!ELEMENT elt (s1, s2)> <elt>
éléments <!ELEMENT s1 EMPTY> <s1/>
<!ELEMENT s2 EMPTY> <s2/>
</elt>
Elément avec contenu variable <!ELEMENT elt (#PCDATA|s1)> <elt>texte</elt> ou
<!ELEMENT s1 EMPTY> <elt><s1/></elt>
Elément à contenu non défini <!ELEMENT elt ANY> <elt>texte</elt> ou
<!ELEMENT s1 EMPTY> <elt><s1/></elt> etc.
33
DTD Structure : élément
Cardinalité Signification
<!ELEMENT elt (s1)> Le contenu de la balise elt est une seule balise s1
<!ELEMENT elt (s1*)> Le contenu de la balise elt est 0 à n occurrence de la
balise s1
<!ELEMENT elt (s1?)> Le contenu de la balise elt est 0 à 1 occurrence de la
balise s1
<!ELEMENT elt (s1+)> Le contenu de la balise elt est 1 à n occurrence de la
balise s1
34
DTD Structure : attribut
▪ PUBLIC : la DTD est dans le domaine public (norme), indiqué par son identifiant (FPI) et sa location
par son URI
36
Exercice d’application: Utilisation d’une DTD
▪ Créez la DTD carnet.dtd suivante
▪ Créez un document XML qui soit valide par rapport à cette DTD
37
Exercice d’application: Création d’une DTD
▪ Créez une DTD livre.dtd à partir du document livre2.xml créé précédemment
38
XSD (XML Schema Definition)
▪ Un schéma XML décrit la structure d'un document XML.
▪ Le langage XML Schema est également appelé XML Schema Definition (XSD).
▪ Avantages par rapport à DTD :
▪ Le typage poussé des données (booléens, entiers, intervalles de temps...)
▪ Possibilité de créer de nouveaux types à partir de types existants
▪ Dérivation, Les éléments peuvent hériter du contenu et des attributs d'un autre
élément..
▪ Les indicateurs d'occurrences des éléments peuvent être tout nombre non négatif autre
que 0,1 ou infini
39
XSD: Exemple
Document XML
41
XSD Structure : entête
▪ Les éléments et types de données utilisés dans le schéma proviennent de l'espace de noms
http://www.w3.org/2001/XMLSchema
▪ Les éléments et les types de données provenant de cet espace de noms doivent être précédés de xs:
▪ Les éléments définis par ce schéma (note, to, from, head, body.) proviennent de l'espace de
noms https://www.w3schools.com
▪ Tous les éléments utilisés par le document d'instance XML qui ont été déclarés dans ce
schéma doivent être qualifiés d'espace de noms
42
XSD: Déclaration dans un document XML
▪ xmlns: : identifie l’espace de noms par
défaut
▪ Indique au validateur de schéma que tous les
éléments utilisés dans ce document XML sont
déclarés dans l'espace de noms
https://www.w3schools.com
▪ xmlns:xsi : identifie le namespace de la
norme W3C, plus précisément l'instance du
schéma XML
▪ xsi:schemaLocation : identifie pour chaque
namespace utilisé par le document XML, la
localisation physique du document XS
▪ xsi:noNamespaceSchemaLocation identifie
la localisation physique du document XS
(Absence de namespace)
43
XSD Structure : élément
▪ La définition d’éléments se fait dans une balise <element>.
▪ Définir le type de données à l’intérieur de l’élément.
44
XSD Structure : attribut
▪ La définition d’attributs associés à un élément se fait dans par la balise
<attribute>
▪ name : nom de l’attribut
▪ type : type de l’attribut, ne peut être qu’un type simple.
▪ use : permet de préciser si l’attribut est obligatoire, optionnel ou interdit. Valeurs possibles
▪ required : obligatoire
▪ optional : optionnel
▪ prohibited : interdite
▪ fixed : valeur fixe, ne change pas
▪ default : valeur par défaut
45
XSD: Types de données
▪ Plus de 40 types de données,
▪ string, integer, date, year, CDATA, float, double, binary, ENTITIES, token, byte, etc.
▪ Il est possible d’utiliser les types prédéfinis ou d’en dériver de nouveaux à partir
de types déjà existant.
▪ Exemple
48
XSD: Type Simple
▪ Les éléments simples peuvent avoir:
▪ Valeurs par défaut: Une valeur par défaut est automatiquement attribuée à l'élément
lorsqu'aucune autre valeur n'est spécifiée.
▪ Valeurs fixes: Une valeur fixe est également automatiquement affectée à l'élément
cependant on peut pas spécifier une autre valeur.
49
XSD: Type Simple Restriction
▪ La création de nouveaux types simples est réalisée au travers de la balise
<simpleType>
▪ Les restrictions sur les types simples permettent de dériver de nouveaux types
à partir de types existants et de définir des contraintes sur le nouveau type à
créer
▪ La restriction est exprimée par la balise <restriction>
51
XSD: Type Simple Restriction
Contraintes Descriptions
maxExclusive limite supérieure (exclue)
minExclusive limite inférieur (exclue)
length nombre de caractères ou d’élément d’une listeautorisé
minLength nombre minimum de caractères ou d’élément d’une liste
whiteSpace politique de gestion des espaces blancs (tab, retour ligne, fin de
ligne, …)
54
XSD: Type complexe
▪ Type avec ou sans attributs et un contenu de type simple
▪ La balise <simpleContent> doit être ajouté autour du contenu.
▪ Avec l’utilisation d’un contenu simple, une extension OU une restriction dans l'élément
simpleContent doit être ajouté
56
XSD: Type complexe
▪ Trois balises indicateurs d’ordre peuvent être utilisé pour indiquer la logique de
placements des sous éléments dans le document XML:
▪ <all> : les sous éléments sont placés quelque soit l’ordre
▪ <sequence> : les sous éléments doivent respectés l’ordre de déclaration dans le type
58
XSD: Type complexe
▪ Il est possible de définir un nouveau type complexe sur la base d'un type
complexe existant
▪ Étendre le type existant en y ajoutant des attributs est des sous éléments <extension>
▪ Restreindre le type existant en limitant les valeurs possibles des attributs et sous
éléments existants <restriction>
59
XSD: Visibilité des Types
▪ Un type est visible par tous les descendants du nœud dans lequel il a été
déclaré.
▪ Un type déclaré sous le nœud principal (root) <schema> est visible dans tout le
document XSD.
▪ Un type déclaré sous un nœud autre que le root, n’est visible que dans ce nœud
60
Exercice d’application 1: Schéma XML
61
Exercice d’application 2: Schéma XML
62
Exercice d’application 3: Schéma XML
Donner le schéma xml approprié à ce document XML et essayer de le tester
63
Exercice d’application 4: Schéma XML
Donner le schéma xml approprié à ce document XML et essayer de le tester
64
3. XSL
3.1. XPath
3.2. XSLT
3.3. XQuery
65
3. XSL
3.1. XPath
3.2. XSLT
3.3. XQuery
66
XSL: eXtensible Stylesheet Langage
▪ C’est plus qu’un langage de style
67
XPath (XML Path Langage)
▪ C’est un standard XML qui définit des règles grammaticales pour identifier des
nœuds ou des ensembles de nœuds dans des documents XML.
▪ C’est un standard W3C
▪ XPath se représente le document XML en tant qu’arbre:
root
▪ dont la racine est l’élément racine du document XML
▪ les noeuds sont les différents éléments et attributs du XML element processing-instruction
element
attribute
text
namespace
comment
68
XPath : Terminologies
▪ Les relations entre nœuds :
▪ Parent (parent) : l’élément contenant
▪ Chaque élément et attribut a un parent.
▪ Les éléments title, author, year et price sont tous des fils de l'élément book
70
XPath: Syntaxe
▪ Une expression XPath décrit l'emplacement d'éléments et d'attributs XML
comme un chemin similaire à des URL.
▪ Une expression XPath est composée de segments séparés par « / ».
▪ Exemple : l’expression /bookstore/book/price permet de sélectionner le nœud
price du fragment XML ci-dessous
71
XPath: Syntaxe
Expression Description Exemples Résultats
d ’expression
Path
Nom_du_nœ Sélectionner tous les bookstore Sélectionne tous les nœuds avec
ud nœuds avec le nom le nom bookstore
Nom_du_nœud
/ Sélectionner à partir de la /bookstore Sélectionne l’élément racine du
racine du document document
//node Sélectionner tous les //price Sélectionne tous les nœuds à
nœuds à partir du nœud partir du nœud price, peu
actuel qui correspondent à importe ou il se trouve dans le
la sélection document
@ Sélectionner les attributs //@lang Sélectionne tous les attributs
nommés lang
72
XPath: Syntaxe
▪ Dans une expression Xpath, on peut utiliser le caractère * pour sélectionner
des nœuds XML inconnus.
76
XPath: Chemin de localisation
▪ La syntaxe non abrégé écrit chaque étape sous la forme : axe::test[prédicat]
▪ Elle permet plus de possibilité de sélection (voisins, commentaire, processing-
instruction, …)
▪ axe : spécifie la relation d'arborescence entre le nœud de contexte et les nœuds que
l'étape de localisation doit sélectionner : parents, fils, ancêtres, voisin...
▪ exemple :Child, parent, ancestor, self....
▪ test : indique parmi tous les nœuds de l'axe spécifié, celui ou ceux à considérer comme
des candidats, Il suit l'axe et doit être précédé de :: .
▪ exemple : parent::*, child::comment(), child::A ...
▪ Prédicat (optionnel) : il consiste en des conditions sur les nœuds parcourus. Il est
encadré par [ ]
77
XPath: Exercice d’application
▪ Soit le document XML suivant, donner les chemins de
localisation adéquat pour:
▪ sélectionner tous les éléments title
▪ /bookstore/book/title
▪ sélectionner l’élément title du premier élément book qui est
un sous élément de l’élément bookstore
▪ /bookstore/book[1]/title
▪ sélectionner tous les éléments price
▪ /bookstore/book/price
▪ sélectionner tous les éléments price avec un prix supérieur à
35
▪ /bookstore/book[price>35]/price
▪ sélectionner tous les éléments title avec un prix supérieur à
35
▪ /bookstore/book[price>35]/title
78
XPath: Exercice d’application 2
▪ Soit le document XML suivant, donner les chemins
de localisation adéquat pour:
▪ sélectionner la ville de la bouteille ayant un ph>7.4
▪ /cave/bouteille[ph>7.4]/source/ville
▪ sélectionner le département et la ville de la bouteille
ayant une contenance > 50 cl
▪ /cave/bouteille[contenance>50]/source
▪ sélectionner le code à barre de la bouteille ayant le fer
dans sa composition
▪ /cave/bouteille[composition/autre="fer"]/code_barre
79
XSLT (eXtensible Stylesheet Language Transformation)
▪ C’est un langage de programmation qui sert à transformer le contenu d'un
document XML source en un autre document dont le format et la structure
diffère:
▪ XML
▪ HTML, XHTML
▪ Texte (C++, php, java, csv, …)
▪ C’est un standard de la W3C
▪ XSLT utilise XPath pour rechercher des informations dans un document XML.
▪ XPath : sert pour naviguer à travers les éléments et les attributs dans les documents XML
▪ Un document XSLT est exprimée comme un document XML, pouvant aussi bien
contenir des éléments définis par XSLT que d'autres éléments non définis par
XSLT. 80
XSLT : Premier Exemple
Résultat de la transformation du
document XML en un document
XHTML
document XML 81
XSLT : Premier Exemple
▪ La feuille de style utilisée est
présentée dans la figure suivante
▪ L’extension du fichier est: .xsl
82
XSLT: Lien avec le document XML
▪ Il faut associer la feuille du style avec le document XML pour assurer la
transformation
▪ En ajoutant la référence de feuille de style XSL au document XML
83
XSLT: Structure
▪ Pour accéder aux éléments, attributs et fonctionnalités XSLT, Il faut déclarer
l'espace de noms XSLT en haut du document
84
XSLT: Template
▪ Le processeur XSLT fait subir au document XML des transformations selon des
modèles de transformation (template) décrits dans la feuille XSL pour produire
un nouveau document selon le type de sortie souhaité
85
XSLT: Template
▪ La balise <template> définit un modèle de transformation.
▪ match : expression XPath qui permet de sélectionner des éléments du document XML
sur lesquels sera appliqué la transformation
▪ name : nom du modèle, il permet de faire appel au modèle directement sans passer par
l’évaluation des nœuds du document <xsl:call-template>
▪ priority : priorité du modèle, utilisé si le processeur XSLT identifie plusieurs modèles de
transformation pour le même noeud
88
Exercice d’application 1
▪ Soit le document XML suivant, essayez de donner
la feuille de style XSL pour qu’il aura l’affichage
suivant:
▪ Code couleur: #FFB6C1
89
Exercice d’application 2
▪ Mettez à jour la feuille de style XSL de l’exercice précédent afin d’avoir
l’affichage suivant:
▪ Utilisez les balises <choose>, <when> et <otherwise>
▪ Classification sur la base de l’année
▪ Codes couleurs: #FFB6C1 et #00B0C1
90
Exercice d’application 3
▪ Mettez à jour la feuille de style XSL de l’exercice précédent afin d’avoir
l’affichage suivant:
▪ Utilisez les balises <choose>, <when> et <otherwise>
▪ Classification sur la base de la catégorie du livre
▪ Codes couleurs: #FFB6C1 et #00F0C0
91
XQuery (XML Query)
▪ C’est un langage de requête permettant d'extraire des informations d'un
document XML, ou d'une collection de documents XML
▪ XQuery joue par rapport aux données XML un rôle similaire à celui du langage
SQL vis-à-vis des données relationnelles
92
XQuery: Exemples
▪ Nous utilisons le document XML suivant dans les
exemples nommé "books.xml"
▪ Fonctions:
▪ XQuery utilise des fonctions pour extraire des données
de documents XML.
▪ La fonction doc () permet d'ouvrir le fichier "books.xml":
doc ("books.xml")
▪ Expressions de chemin
▪ XQuery utilise XPath expressions pour parcourir le
document XML
▪ L'expression XPath suivante est utilisée pour
sélectionner tous les éléments title dans le fichier
"books.xml" doc ("books.xml") / bookstore/book/title
93
XQuery: Exemples
▪ Prédicats
▪ XQuery utilise des prédicats pour limiter les données extraites des documents XML.
▪ Le prédicat suivant est utilisé pour sélectionner tous les éléments book sous l'élément de
bookstore qui ont un prix avec une valeur inférieure à 30:
doc("books.xml")/bookstore/book[price<30]
94
XQuery: Syntaxe FLWOR
▪ Son nom vient des cinq clauses principales qui la composent:
▪ for: pour sélectionner une séquence de nœuds, chaque élément étant stocké dans la
variable $var
▪ let: pour lier une séquence à une variable (sans itération)
▪ where: pour filtrer les nœuds (prédicats reliés par and/or)
▪ order by: pour trier les nœuds (ascending, descending)
▪ return: pour retourner un résultat par nœud (seule clause obligatoire)
95
XQuery: Syntaxe FLWOR
▪ doc("books.xml")/bookstore/book[price<30]/title
▪ L'expression FLWOR suivante sélectionnera
exactement la même chose que l'expression de
chemin ci-dessus:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title
▪ Le résultat:
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
96
XQuery: Syntaxe FLWOR
▪ Nous pouvons trier le résultat avec le syntax FLWOR
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
▪ Le résultat:
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
97
XQuery : Syntaxe
▪ Quelques règles de syntaxe de base:
▪ XQuery est sensible à la casse
▪ Les éléments, attributs et variables XQuery doivent être des noms XML valides
▪ Une valeur de chaîne XQuery peut être entre guillemets simples ou doubles
▪ Une variable XQuery est définie avec un $ suivi d'un nom, par exemple $bookstore
▪ Les commentaires XQuery sont délimités par (: et :), ex.(: Commentaire XQuery :)
98
XQuery: Expressions conditionnelles
▪ L’expression "If-Then-Else" est possible avec Xquery
for $x in doc("books.xml")/bookstore/book
return if ($x/@category="children")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>
▪ Résultat:
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>
99
Récapitulant
▪ Ce chapitre a permis de vous fournir les concepts de bases des technologies
XML, y compris:
▪ XML
▪ DTD
▪ XSD
▪ XPath
▪ XSLT
▪ XQuery
100