Vendredi 4 avril 2008

	<?IUTprocessus exemple="fig1.xml?>"

cible = chaîne associée

A chaque noeud de l’arborescence XPATH est associée une chaîne de caractères ( String - Value ) et un nom étendu.

Un nom étendu est constitué d’une partie locale et d’une URI (Uniform Resource Identifer) d’espaces de nom.

Recherche dans un document XML

La recherche commence à partir d’un noeud de contexte. tout les résultats d’une recherche sont relatifs à ce noeud.

Un axe indique quel ensemble de noeud, relativement ou noeud de contexte, peut être inclus dans le résultat d’une recherche. Cet axe impose également un ordre sur les noeuds.

Il y a deux types d’axes :

Chemin de localisation

Notation

Axe :: test_de_noeud[prédicat]

Exemples

Combinaison de deux chemins de localisation

Avec le symbole : ‘/’

Exemple

	child :: * / child :: text()

Séléctionne tous les petits - fils de type text du noeud de contexte. La 2ième séléction s’applique sur l’ensemble des noeuds obtenu par la 1ère séléction.

Abréviation

/descendant_of_self :: node() / child :: body

// body : séléctionne tout les éléments body d’un document

	/livres/livre/traduction[. = "japonais"]/../titre

Ce chemin séléctionne les titres de chaque libre ayant une traduction en japonais.

Remarque

[.=“japonais”] compare la chaîne associé du noeud courant à la chaîne “japonais”.

Fonctions et opérateurs d’ensemble de noeuds

head | body : séléctionne tous les noeuds head et body fils du noeud de contexte

last() : renvoie le dernier élément de l’ensemble de noeuds.

Exemples

	head / title[last()]

Séléctionne le dernier élément title

	livre[position()=3]

Séléctionne le 3ième livre, s’écrit aussi livre[3]

Count(*) renvoie le nombre d’éléments fils du noeud de contexte

Les fonctions de chaînes

Elles permettent de manipuler les chaînes associées aux noeuds de l’arborescence.

	concat(chaîne1,chaîne2,chaîne3)
	start_with(chaîne1,chaîne2) vrai si chaîne1 commence par la chaîne2.

XSL : Extensible Stylesheet Language Transformations (XSLT)

Un document XSLT est un document XML avec un élément racine “stylesheet”.

XSLT utilise les expressions Xpath pour localiser les noms dans le document XML.

Dans une transformation XSL il y a deux arbres de noeuds :

Pour générer et sauvegarder le fichier résultat de la transformation XSL il faut utiliser la bibliothèque Xerces/Xalan.

	java org.apache.xalan.xslt.Process -in fichier.xml -xsl fichier.xsl -out nouveaufichier

Les templates

Le template permet de traiter un ensemble d’éléments XML localisés grâce à une expression XPATH :

	<xsl:template match = "expression_xpath">
	</xsl:template>

Un template possède toujours un contenu. Ce contenu est placé dans l’arbre résultat chaque fois qu’un élément correspondant à l’expression Xpath spécifiée sera rencontrée dans l’arbre source.

Appliquer les modèles avec xsl:apply_templates.

Par défaut, un processus XSLT lit le document XML de haut en bas en commençant à l’élement racine et en descendant dans l’arborescence en suivant l’ordre d’apparition des éléments.

Cependant il est possible de modifier cet ordre grâce à xsl:apply_templates. C’est l’attribut select qui indique les éléments à traiter.

	<xsl:template match="nom">
		<xsl:value_of select="nom_famille" />
		<xsl:value_of select="prenom" />
	</xsl:template>
	<xsl:template match="personne">
		<xsl:apply_templates select="nom" />
	<xsl:template>

Itération et tri

Itérations

	<xsl:for_each select="expression_xpath">
	</xsl:for_each>

Effectue une même opération sur tous les éléments d’un ensemble de noeuds renvoyés par l’expression XPATH.

Tri

<xsl:sort select######“expression_path” order"ascending | descending" />