Variablen und Aktionsgruppenergebnisse
Sie können eine Aktionsgruppe definieren, die einen Wert, nämlich das Aktionsgruppenergebnis zurückgibt. (In der Abbildung unten haben wir zwei Parameter deklariert und diese in einer Rückgabewert-Aktion miteinander multipliziert, um das Aktionsgruppenergebnis zu erzeugen.) Wenn eine Let-Aktion definiert wird, können wir das Aktionsgruppenergebnis einer Variablen zuweisen und die Variablen in Child-Aktionen der Let-Aktion verwenden.
Anmerkung: | Wenn eine Variable ein Nodeset enthält und das Nodeset während der Verarbeitung geändert wird, wird die Variable ungültig und kann nicht mehr weiterverwendet werden. Dies gilt jedoch nicht, wenn nur die Werte der Variablen in einem Nodeset geändert wurden. |
Gehen Sie dazu folgendermaßen vor:
1.Deklarieren Sie in der Aktionsgruppe alle Parameter, die zum Generieren des erforderlichen Ergebnisses benötigt werden. Klicken Sie dazu auf das Symbol Parameter hinzufügen (siehe Abbildung oben). Doppelklicken Sie, nachdem ein neuer Parameter hinzugefügt wurde, an die Stelle rechts vom $-Symbol des Parameters und geben Sie den Namen des Parameters ein. In der Abbildung oben sehen Sie eine Aktionsgruppe namens RectangleArea, in der wir zwei Parameter namens $length und $width definiert haben. Beachten Sie, dass (i) die Parameter deklariert, aber keine Werte dafür definiert wurden und (ii)dass sich die Parameter nur innerhalb der Aktionsgruppe im Geltungsbereich befinden und nicht außerhalb der Gruppe verwendet werden können. Wenn ein Parameter als optional definiert ist, wird kein Fehler ausgegeben, wenn er in der Definition der Variablen nicht verwendet wird (siehe Schritt 3 weiter unten).
2.Fügen Sie eine Rückgabewert-Aktion hinzu. Definieren Sie mit Hilfe eines XPath-Ausdrucks den gewünschten Rückgabewert. Dieses Ergebnis ist das Aktionsgruppenergebnis, das in der Let-Aktion verwendet werden kann. In der Abbildung oben wurde ein Ausdruck definiert, der die Werte der Parameter $length und $width miteinander multipliziert. Beachten Sie, dass sich die Rückgabewert-Aktion innerhalb der Aktionsgruppe befindet. Folglich sind die Parameter im Geltungsbereich.
3.Um zu deklarieren, dass eine durch eine Let-Aktion definierte Variable den Wert eines Aktionsgruppenergebnisses hat, definieren Sie die Let-Aktion wie folgt (siehe unten): (i) Doppelklicken Sie auf die Stelle rechts vom $-Symbol der Variablen und geben Sie den Namen der Variablen ein; (ii) Aktivieren Sie das Optionsfeld "Aktionsgruppenergebnis" (in der Abbildung unten blau umrandet); (iii) Wählen Sie in der Auswahlliste ganz oben (rot umrandet) die Aktionsgruppe, die als Wert der Variablen verwendet werden soll; (iv) Die Parameter der ausgewählten Aktionsgruppe werden aufgelistet (rot, wenn sie obligatorisch sind und schwarz, wenn sie optional sind); geben Sie die XPath-Ausdrücke zur Erzeugung der Parameterwerte ein. Zur Laufzeit werden diese Werte zur Berechnung des Aktionsgruppenergebnisses an die Parameter der Aktionsgruppe übergeben.
In der Abbildung oben haben wir der Variablen in der Let-Aktion den Namen $area gegeben und als Wert der Variablen die Aktionsgruppe RectangleArea ausgewählt. Wir haben für die Parameterwerte zwei XML-Struktur-Nodes zur Bereitstellung der Werte der (in der Aktionsgruppe RectangleArea deklarierten) Parameter $length und $width ausgewählt. Wenn die Let-Aktion ausgeführt wird, werden die Parameterwerte an die Aktionsgruppe übergeben, wo die Rückgabewert-Aktion die Werte in ihrer Berechnung verwendet. Das Ergebnis wird als Wert der in der Let-Aktion definierten Variablen verwendet. In unserem Beispiel oben werden die Werte der Parameter $length und $width an die Aktionsgruppe RectangleArea übergeben, die diese miteinander multipliziert und das Ergebnis an die Variable $area der Let-Aktion zurückgibt.
4.Die in der Let-Aktion definierte Variable kann nun in Child-Aktionen der Let-Aktion verwendet werden. So haben wir etwa in der Abbildung oben den Node Box/Area mit Hilfe der Variablen $area aktualisiert.
Nähere Informationen dazu finden Sie in der Beschreibung der Let-Aktion.