Diagrammdatenauswahl: Einfach
Im Dialogfeld "Diagrammkonfiguration" können Sie im Bereich "Diagrammdatenauswahl" mit der Option "Einfach" die ausgewählten Daten als Tabelle darstellen. Zur Veranschaulichung haben wir das unten gezeigte XML-Dokument verwendet.
<?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>
Wir fügen im SPS-Design ein Diagramm in den Node Data ein. Im Bereich "Diagrammdatenauswahl" (Abbildung unten) wählen wir die Daten wie in der Abbildung unten gezeigt aus. Da das Diagramm in den Node Data eingefügt wurde, ist der Kontext-Node für den For-Each-Ausdruck der Node Data.
Die Diagrammdatentabelle kann wie in der Tabelle unten visualisiert werden. Dabei wird für jedes Region[1]/Year Element eine Zeile erstellt. Die X-Path-Ausdrücke für die X- und die Y-Achse werden innerhalb des entsprechenden Region[1]/Year Elementkontexts ausgewertet.
For-Each XPath | X-Axis | Y-Axis for Series | ||
Americas | Europe | Asia | ||
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 |
•Der For-Each-Ausdruck Region[1]/Year gibt sechs Nodes zurück (die in der Tabelle in Form von Zeilen angezeigt werden). Die Anzahl der Elemente in der vom For-Each-Ausdruck zurückgegebenen Sequenz bestimmt die Anzahl der Skalenstriche auf der X-Achse.
•Der XPath-Ausdruck für die X-Achse gibt den @id Attributwert der einzelnen Region[1]/Year Elemente zurück. Diese Werte bilden die Beschriftungen für die Skalenstriche der X-Achse. Falls mehr Beschriftungen als Skalenstriche vorhanden sind, so werden zusätzliche Skalenstriche generiert, damit alle Beschriftungen im Diagramm dargestellt werden können. Falls es weniger Beschriftungen als Skalenstriche gibt, so bleiben die Skalenstriche, für die es keine entsprechende Beschriftung gibt, unbeschriftet. Mit der Option "Automatisch enumeriert" wird eine Sequenz von Ganzzahlen generiert, die mit 1 beginnt. Jede dieser Zahlen wird der Reihe nach einem Skalenstrich auf der X-Achse zugewiesen.
•Der XPath-Ausdruck für die Datenreihe Americas (text()) gibt den Inhalt der einzelnen Region[1]/Year Elemente zurück. Dieser Ausdruck hätte auch so wie einer der Ausdrück für die (weiter unten beschriebenen) Datenreihen Europe und Asia aussehen können, solange er die gewünschten Werte zurückgibt.
•Der XPath-Ausdruck für die Datenreihe Europe lautet: for $i in @id return //Region[2]/Year[@id=$i]. Dieser Ausdruck funktioniert folgendermaßen: (i) Er sucht nach dem aktuellen Region[1]/Year/@id Attributwert und (ii) gibt den Inhalt des Region[2]/Year Elements, das denselben @id Wert hat wie der @id Wert des aktuellen Region[1]/Year Elements, zurück.
•Der XPath-Ausdruck für die Datenreihe Asia funktioniert ähnlich wie der XPath-Ausdruck für die Datenreihe Europe.
Das mit dieser Datenauswahl generierte Balkendiagramm sähe etwa folgendermaßen aus:
Das Liniendiagramm für diese Datenauswahl sähe etwa folgendermaßen aus:
Die oben beschriebene Datenauswahl ist die Datenauswahl für eines der Liniendiagramme aus der SPS-Beispieldatei YearlySales.sps. Das SPS-Design basiert auf dem XML-Schema YearlySales.xsd und verwendet YearlySales.xml (Abbildung der XML-Datei oben) als XML-Arbeitsdatei. Alle drei Dateien befinden sich im Ordner (Eigene Dateien) C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2025\StyleVisionExamples/Tutorial/Charts.
Wenn der For-Each-Ausdruck Datenelemente zurückgibt, die keine Nodes sind
Da die Anzahl der Skalenstriche der X-Achse in erster Linie von der Anzahl der Datenelemente abhängt, die vom For-Each XPath-Ausdruck zurückgegeben werden, generiert der XPath-Ausdruck in der Abbildung unten (distinct-values(//Year/@id)), der die sechs eindeutigen year-Werte zurückgibt, ebenfalls sechs Striche auf der X-Achse. Bei den zurückgegebenen Werten handelt es sich allerdings nicht um Nodes, sondern um atomare Werte. Folglich können diese, obwohl sie als Kontext-Elemente verwendet werden können, nicht als Kontext-Nodes zum Auffinden der Nodes in der XML-Struktur verwendet werden. Sie können anhand dieser Werte jedoch Nodes auf Basis gleicher Werte finden - und genau so werden wir diese Werte verwenden.
Beachten Sie bei der in der obigen Abbildung gezeigten Datenauswahl Folgendes:
•In der Datenauswahl für die X- und die Y-Achse werden die vom For-Each-Ausdruck zurückgegebenen atomaren Werte als direkte Ausgabewerte bzw. Filtertestwerte verwendet.
•Die Schritte zur Auswahl des Pfads beginnen in XPath-Ausdrücken im Dokument-Node (dem $XML in $XML//Region...). Dies ist erforderlich, da die atomaren Werte keinen Pfadkontext liefern.
Die Auswertung für die Diagrammdatentabelle hätte folgendes Ergebnis zur Folge:
For-Each XPath | X-Achse | Y-Achse für Datenreihen | ||
Americas | Europe | Asia | ||
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 |