Benutzerdefinierte XPath-Funktionen

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  SPS-Datei: Zusätzliche Funktionen >

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.

 

XPFxOviewDesTree

 

Um eine benutzerdefinierte XPath-Funktion zu erstellen, klicken Sie auf das Symbol Plus 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.

 

XPFxDlg01

 

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 http://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).

 

UserDefXPFxEnabling(((((

 

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.

 


© 2019 Altova GmbH