Altova MobileTogether Designer

Cette section :

 

Introduction

Le nœud contextuel

Sélection des données pour les axes X et Y

Si l'expression For-Each retourne des objets qui ne sont pas des nœuds

 

Introduction

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 qui est recensé ci-dessous pour la visualisation.

 

 

Le nœud contextuel

Dans le design, glisser un nœud XML depuis le Volet de sources de page pour faire de ce nœud le nœud contextuel des expressions XPath du graphique. Vous pouvez changer le nœud contextuel du graphique en glissant un nouveau nœud XML dans le graphique. Il est important de connaître le nœud contextuel du graphique puisque ce nœud contextuel est le point de départ des localisateurs de chemin dans les expressions XPath.

 

Sélectionner des données pour les axes X et Y

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.

ChartDataSelSimple01

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 à :

ChartBar2DSeries

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

ChartDataSelSimple01Chart

 

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 :

ChartDataSelSimple02

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

 

 

© 2017-2023 Altova GmbH