Benutzerdefinierte XPath-Funktionen
Der SPS-Designer kann angepasste XPath 2.0/3.0-Funktionen definieren. Eine benutzerdefinierte XPath-Funktion kann in jeder Design-Komponente , die XPath-Ausdrücke akzeptiert, wiederverwendet werden, zum Beispiel in automatischen Berechnungen, Bedingungen und Auswahllisten.
Definieren und Bearbeiten von benutzerdefinierten XPath-Funktionen
Benutzerdefinierte XPath-Funktionen werden entweder in der Seitenleiste Schema-Struktur oder in der Seitenleiste Design-Struktur (siehe Abbildung unten) erstellt (und in weiterer Folge zum Bearbeiten aufgerufen). Alle benutzerdefinierten XPath-Funktionen in einem SPS sind sowohl in der Seitenleiste Schema-Struktur als auch in der Seitenleiste Design-Struktur unter dem Element "XPath-Funktionen) aufgelistet und können über beide Seitenleisten aufgerufen werden.
Um eine benutzerdefinierte XPath-Funktion zu erstellen, klicken Sie auf das Symbol des Elements "XPath-Funktionen". Dadurch erscheint das Dialogfeld "XPath-Funktionen" (Abbildung unten). Wenn Sie eine Funktion, die bereits erstellt wurde, bearbeiten möchten, doppelklicken Sie den entsprechenden Eintrag in der Liste der XPath-Funktionen. Das Dialogfeld "XPath-Funktionen" (Abbildung unten) erscheint und die Funktionsdefinition kann bearbeitet werden.
Nachdem eine benutzerdefinierte XPath-Funktion erstellt worden ist, kann sie an einer beliebigen Stelle des Designs verwendet werden.
Namespace von benutzerdefinierten XPath-Funktionen
Benutzerdefinierte XPath-Funktionen werden im Namespace https://www.altova.com/StyleVision/user-xpath-functions erstellt. Dieser Namespace ist an den Präfix sps: gebunden, daher müssen benutzerdefinierte SPath-Funktionen müssen unter Verwendung dieses Namespace-Präfix aufgerufen werden. Beispiel: sps:MyFunction().
Aktivieren und Deaktivieren von benutzerdefinierten XPath-Funktionen
Jede benutzerdefinierte XPath-Funktion kann aktiviert oder deaktiviert werden, indem das Kontrollkästchen links neben dem Eintrag der Funktion in der Liste der Benutzerdefinierten XPath-Funktionen aktiviert bzw. deaktiviert wird (siehe Abbildung unten).
Diese Funktion ist nützlich, wenn zwei Funktionen den gleichen Namen haben. Eine solche Situation könnte zum Beispiel entstehen, wenn ein importiertes SPS-Modul eine Funktion mit dem gleichen Namen enthält.
Aufrufen einer benutzerdefinierten XPath-Funktion
Eine benutzerdefinierte XPath-Funktion kann in einem XPath-Ausdruck an jeder beliebigen Stelle im Design aufgerufen werden. Zum Beispiel kann die oben definierte benutzerdefinierte XPath-Funktion sps:MyFunction mit dem folgenden XPath-Ausdruck in einer automatischen Berechnung aufgerufen werden:
sps:MyFunction()/@name.
Dieser XPath-Ausdruck würde wie folgt ausgewertet werden:
1.Die Funktion sps:MyFunction() wird ausgewertet. Angenommen, die Funktion ist wie folgt definiert: $XML/Trades/Stock[@name=$XML/Trades/Selection/Stock]. Wenn die Funktion ausgewertet ist, gibt sie das Element /Trades/Stock zurück, das ein name-Attribut mit einem Wert hat, der dem Inhalt des Elements /Trades/Selection/Stock entspricht.
2.Das Ergebnis von Schritt 1 wird dem XPath-Ausdruck im Funktionsaufruf zurückgegeben. Nun wird das name-Attribut dieses /Trades/Stock-Elements als Wert der automatischen Berechnung zurückgegeben.
Löschen einer Funktion
Um eine Funktion zu löschen, markieren Sie sie in der Liste der XPath-Funktionen in der Seitenleiste Schema-Struktur oder in der Seitenleiste Design-Struktur und klicken Sie dann in der Symbolleiste der Seitenleiste auf das Symbol Objekt entfernen. Alternativ dazu können Sie mit der rechten Maustaste auf die XPath-Funktion klicken und Entfernen aus dem Kontextmenü auswählen.