Sélection des données du graphique : Simple
Dans le panneau de Sélecteur de données graphiques dans le dialogue de Configuration graphique, l'option Simple permet de visualiser la sélection des données en tant que table. Nous utilisons le document XML ci-dessous pour expliquer la visualisation.
<?xml version="1.0" encoding="UTF-8"?> <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="YearlySales.xsd"> <ChartType>Pie Chart 2D</ChartType> <Region id="Americas"> <Year id="2005">30000</Year> <Year id="2006">90000</Year> <Year id="2007">120000</Year> <Year id="2008">180000</Year> <Year id="2009">140000</Year> <Year id="2010">100000</Year> </Region> <Region id="Europe"> <Year id="2005">50000</Year> <Year id="2006">60000</Year> <Year id="2007">80000</Year> <Year id="2008">100000</Year> <Year id="2009">95000</Year> <Year id="2010">80000</Year> </Region> <Region id="Asia"> <Year id="2005">10000</Year> <Year id="2006">25000</Year> <Year id="2007">70000</Year> <Year id="2008">110000</Year> <Year id="2009">125000</Year> <Year id="2010">150000</Year> </Region> </Data> |
Dans le design SPS, nous insérons un graphique à l’intérieur du nœud Données. Dans le panneau de Sélecteur de données graphiques (capture d'écran ci-dessous) nous procédons à la sélection des données telle que montrée dans la capture d'écran. Puisque le graphique a été inséré dans le cadre du nœud Data, le nœud contextuel pour l'expression For-Each est le nœud Data.

La table de données de graphique peut être visualisée dans la table ci-dessous. Pour chaque élément Region[1]/Year, une ligne est créée et les expressions XPath de l'axe X et de l'axe Y sont évaluées dans le cadre du contexte de l'élément respectif Region[1]/Year.
XPath For-Each | Axe X | Axe Y pour les Séries | ||
Amériques | Europe | Asie | ||
Region[1]/Year[1] | @id | text() | XPath-1 | XPath-2 |
Region[1]/Year[2] | @id | text() | XPath-1 | XPath-2 |
Region[1]/Year[3] | @id | text() | XPath-1 | XPath-2 |
Region[1]/Year[4] | @id | text() | XPath-1 | XPath-2 |
Region[1]/Year[5] | @id | text() | XPath-1 | XPath-2 |
Region[1]/Year[6] | @id | text() | XPath-1 | XPath-2 |
•L'expression For-Each Region[1]/Year retourne six nœuds (qui deviennent les lignes de la table). Le nombre des objets dans la séquence retournée par l'expression For-Each détermine le nombre de graduations sur l'axe X.
•L'expression XPath pour l'axe X retourne la valeur d'attribut @id de chaque élément Region[1]/Year. Ces valeurs seront les libellés des graduations de l'axe X. S'il y a plus de libellés que de graduations, des graduations supplémentaires seront générées pour que tous les libellés soient représentés. S'il y a moins de libellés que de graduations, les dernières graduations (pour lesquelles aucun libellé correspondant n'existe) ne seront pas libellées. L'option Auto-énuméré génère une séquence d'entiers commençant avec 1 et attribue chaque entier séquentiellement à une graduation sur l'axe X .
•L'expression XPath pour la série Americas (text()) retourne le contenu de chaque élément Region[1]/Year. Cette expression pourrait aussi avoir été semblable à celle des séries Europe et Asia (expliqué ci-dessous)—tant qu'il retourne efficacement les valeurs que nous souhaitons.
•L'expression XPath pour la série Europe est : for $i in @id return //Region[2]/Year[@id=$i]. Cette expression fonctionne de la manière suivante : (i) consulte la valeur d'attribut actuelle Region[1]/Year/@id, (ii) retourne le contenu de l'élément Region[2]/Year qui a la même valeur @id que la valeur @id de l'élément Region[1]/Year actuel.
•L'expression XPath pour la série Asia fonctionne de manière semblable à l'expression XPath pour la série Europe.
Le graphique à barres généré avec cette sélection de données pourrait ressembler à :

et le graphique à lignes pour cette sélection de données pourrait ressembler à :

La sélection de données décrite ci-dessus est celle pour un des graphiques à lignes contenu dans l’exemple du fichier SPS YearlySales.sps. Le design SPS est basé sur le schéma XML YearlySales.xsd et il utilise YearlySales.xml (capture d’écran ci-dessous) comme son fichier de travail XML. Tous les trois fichiers sont situés dans le dossier (Mes) Documents, C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2025\StyleVisionExamples/Tutorial/Charts.
Si l'expression For-Each retourne des objets qui ne sont pas des nœuds
Puisque le nombre de graduations de l'axe X dépend principalement du nombre des objets retournés par l'expression XPath For-Each, l'expression XPath dans la capture d'écran ci-dessous (distinct-values(//Year/@id)), qui retourne les valeurs des six années uniques, générera aussi six graduations sur l'axe X. Néanmoins, les objets retournés par la séquence sont des valeurs atomiques, pas des nœuds. Par conséquence, bien qu'ils puissent être utilisés en tant qu'objets contextuels, ils ne peuvent pas être utilisés en tant que nœuds contextuels pour localiser des nœuds dans l'arborescence XML. En revanche, ils peuvent être utilisés pour localiser des nœuds sur la base de l'égalité des valeurs, et c'est de cette manière dont nous allons nous en servir. Dans la sélection de données indiquées dans la capture d'écran ci-dessus, veuillez noter les éléments suivants :

Dans la sélection de données affichées dans la capture d'écran ci-dessus, veuillez noter :
•Les sélections de données de l'axe X et de l'axe Y utilisent les valeurs atomiques retournées par l'expression For-Each, respectivement en tant que sortie directe et en tant que valeurs de test de filtre.
•Les étapes de localisation dans les expressions XPath commencent au nœud du document ($XML dans $XML//Region...). Cela est nécessaire parce que les valeurs atomiques ne fournissent pas de contexte de localisation.
La table des données de graphique évaluerait comme suit :
XPath For-Each | Axe X | Axe Y pour les Séries | ||
Amériques | Europe | Asie | ||
2005 | 2005 | XPath-1 | XPath-2 | XPath-3 |
2006 | 2006 | XPath-1 | XPath-2 | XPath-3 |
2007 | 2007 | XPath-1 | XPath-2 | XPath-3 |
2008 | 2008 | XPath-1 | XPath-2 | XPath-3 |
2009 | 2009 | XPath-1 | XPath-2 | XPath-3 |
2010 | 2010 | XPath-1 | XPath-2 | XPath-3 |