Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
les DTD ne sont pas au format XML. Nous avons dû apprendre un nouveau langage avec sa propre syntaxe et ses
propres règles.
Le second défaut que l'on retiendra dans ce cours est que les DTD ne permettent pas de typer des données. Comme vous avez
pu le voir, on se contente d'indiquer qu'une balise contient des données, mais impossible de préciser si l'on souhaite que ça
soit
un nombre entier, un nombre décimal, une date, une chaîne de caractères, etc
C'est pour pallier les défauts des DTD que les Schémas XML ont été créés
Le référencement d'un schéma XML se fait au niveau de l'élément racine du fichier XML grâce à l'utilisation de 2 attributs.
Default value
Constant
Au cours des chapitres précédents, nous avons vu ensemble ce qu'est un élément simple, à savoir un élément qui ne contient
qu'une valeur dont le type est dit simple. Un élément simple ne contient pas d'autres éléments ni aucun attribut.
Un élément complexe est un élément qui contient d'autres éléments ou des attributs.
Une séquence est utilisée lorsque l'on souhaite spécifier que les éléments contenus dans un type complexe doivent apparaître
dans un ordre précis.
Le choix
Cet extrait signifie donc que la balise <personne /> contient soit la balise <nom />, soit <prenom />
XPath est une technologie qui permet d'extraire des informations (éléments, attributs, commentaires, etc...) d'un document
XML
via l'écriture d'expressions dont la syntaxe rappelle les expressions rationnelles utilisées dans d'autres langages.
Si XPath n'est pas un langage de programmation en soit, cette technologie fournit tout un vocabulaire pour écrire des
expressions permettant d'accéder directement auxinformations souhaitées sans avoir à parcourir tout l'arbre XML.
Si je veuxrécupérer par exemple le numéro de fixe voici le chemin à parcourir :
Etape 1 : nœud "repertoire".
Etape 2 : descendre au nœud enfant "personne".
Etape 3 : descendre au nœud enfant "telephones".
Etape 4 : descendre au nœud enfant "telephone" dont l'attribut est "fixe".
Sans rentrer dans les détails, l'expression XPath correspondante ressemblera à quelque chose comme ça :
/étape1/étape2/étape3/étape4
/étape1/étape2/étape3
Les chemins relatifs
Si un chemin absolu est un chemin dont le nœud de départ est toujours la racine de l'arbre XML, un chemin relatif accepte
quant à lui n'importe quel nœud de l'arbre XML comme point de départ.
Une expression XPath utilisant un chemin relatif est facilement identifiable car elle ne commence pas par le caractère "/"
étape1/étape2/étape3
la syntaxe nous permettant de les ordonner et ainsi de pouvoir écrire une étape compatible avec XPath :
axe::nœud[predicat][predicat]...[predicat]
L'axe
L'axe va nous permettre de définir le sens de la recherche. Par exemple, si l'on souhaite se diriger vers un nœud enfant ou au
contraire remonter vers un nœud parent voir un ancêtre
<repertoire>
<!-- John DOE -->
<personne sexe="masculin">
<nom>DOE</nom>
<prenom>John</prenom>
<adresse>
<numero>7</numero>
<voie type="impasse">impasse du chemin</voie>
<codePostal>75015</codePostal>
<ville>PARIS</ville>
<pays>FRANCE</pays>
</adresse>
<telephones>
<telephone type="fixe">01 02 03 04 05</telephone>
<telephone type="portable">06 07 08 09 10</telephone>
</telephones>
/repertoire/personne/telephones/telephone[@type="fixe"]
type!="fixe"
Voici donc la liste des expressions XPath à écrire :
-Sélectionner tous les nœuds descendants du deuxième nœud "personne".
-Sélectionner le nœud "personne" correspondant au individu ayant au moins 2 numéros de téléphone.
-Sélectionner tous les nœuds "personne".
-Sélectionner le deuxième nœud "personne" dont le pays de domiciliation est la France .
-Sélectionner tous les nœuds "personne" de sexe masculin le pays de domiciliation est les Etats-Unis
/repertoire/personne[position()=2]/descendant::*
/repertoire/personne[count(telephones/telephone) > 1]
/repertoire/personne[adresse/pays="FRANCE"][position()=2]
/repertoire/personne[@sexe="masculin"][adresse/pays="USA"]
XSLT ou eXtensible Stylesheet Language Transformations est une technologie qui permet de transformer les
informations
d'un document XML vers un autre type de document comme un autre document XML ou encore une page web.
Comment ça marche ?
Le principe de fonctionnement est assez simple : un document XSLT est associé à un document XML afin de créer un
nouveau
document d'une nature différente ou identique
la première ligne d'un document XSLT est :
<?xml version="1.0" encoding="UTF-8" ?>
Le référencement d'un document XSLT se fait au niveau du document XML dont les informations seront utilisées au cours
de la
transformation.
Un template est défini par la balise <xsl:template /> à laquelle plusieurs attributs peuvent être associés.
L'attribut match permet de renseigner une expression XPath. Cette expression XPath permet alors de sélectionner les
informations du documents XML auxquelles le template s'applique.
L'attribut name est le nom donné au template, permettant de l'identifier de manière unique. Cet attribut est important
puisque nous verrons par la suite qu'il n'ai pas rare qu'un template en appelle un autre.
Lorsque nous écrirons nos templates, il est important de renseigner l'un ou l'autre des 2 attributs match et name, jamais
les deux en même temps