Diagrammdatenauswahl: Einfach
In diesem Abschnitt:
•Datenauswahl für die X- und X-Achse
•Wenn der For-Each-Ausdruck Datenelemente zurückgibt, die keine Nodes sind
Einführung
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> |
Der Kontext-Node
Ziehen Sie einen XML-Node aus dem Fenster "Seitenquellen" in das Diagramm im Design, um diesen XML-Node zum Kontext-Node des XPath-Ausdrucks des Diagramms zu machen. Sie können den Kontext-Node des Diagramms jederzeit ändern, indem Sie einen neuen XML-Node in das Diagramm ziehen. Es ist wichtig zu wissen, welcher Node der Kontext-Node des Diagramms ist, da dieser den Ausgangspunkt für Pfadlokatoren in XPath-Ausdrücken bildet.
Datenauswahl für die X- und X-Achse
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-Achse | Y-Achse für Datenreihe | ||
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:
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 genauso 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 Datenreihe | ||
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 |