Benutzerdefinierte XPath/XQuery-Funktionen

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

Startseite >  XPath/XQuery: Ausdrücke, Funktionen, Variablen > XPath/XQuery-Ausdrücke und -Funktionen >

Benutzerdefinierte XPath/XQuery-Funktionen

Sie können Ihre eigenen benutzerdefinierten XPath/XQuery-Funktionen für einzelne Projekte erstellen, die Sie anschließend in allen XPath-Ausdrücken im Projekt verwenden können. Dies geschieht über das Dialogfeld "XPath-Funktionen" (Befehl Projekt | XPath/XQuery-Funktionen). Hier können Sie diese benutzerdefinierten Funktionen erstellen und verwalten. Im Dialogfeld "XPath/Funktionen" (Abbildung unten) sind alle benutzerdefinierten XPath-Funktionen im Projekt aufgelistet. Über die entsprechenden Symbolleisten-Schaltflächen im Dialogfeld können Sie Funktionen hinzufügen und löschen. Um die Definition einer Funktion zu bearbeiten, klicken Sie auf die Schaltfläche XPath-Ausdruck bearbeiten.

MTXPathFunctionsDlg

Indem Sie auf die Spaltenüberschrift "Funktionsname" klicken, können Sie die Liste der Funktionen nach Namen ordnen. Mit jedem Klick wechseln Sie der Reihe nach zu den folgenden Ordnungsreihenfolgen: (i) aufsteigend, (ii) absteigend, (iii) Dialogfeldreihenfolge. Die Ordnung im Dialogfeld kann durch Ziehen der Funktionen an eine andere Stelle in der Liste geändert werden. Beachten Sie Folgendes: Wenn Sie die Liste in aufsteigender/absteigender Reihenfolge ordnen und dann eine Funktion an eine andere Stelle in der Liste ziehen, so wird die neu erstellte Reihenfolge zur Dialogfeldreihenfolge.

 

 

Hinzufügen einer neuen benutzerdefinierten XPath-Funktion

Um eine neue benutzerdefinierte Funktion hinzuzufügen, müssen zwei Schritte durchgeführt werden: (i) Deklarieren der Funktion und (ii) Definieren der Funktion.

 

Um eine neue Funktion hinzuzufügen, gehen Sie folgendermaßen vor: Klicken Sie in der Symbolleiste des Dialogfelds auf Hinzufügen (siehe Abbildung unten). Daraufhin wird das Dialogfeld "Neue XPath-Funktion" angezeigt (Abbildung unten).

MTNewXPathFunction

In diesem Dialogfeld können Sie den Namen der Funktion, die Anzahl der Funktionsparameter (Argumente) und ihren Typ sowie den Rückgabetyp der Funktion definieren. In der Abbildung oben wurde eine Funktion zum Konvertieren einer Dezimalzahl von Celsius in Fahrenheit deklariert. Die Funktion hat einen Parameter, nämlich den Celsius-Input-Wert als Dezimalzahl. Das Ergebnis der Funktion ist die Temperatur in Fahrenheit als Dezimalzahl. Im nächsten Schritt wird definiert, was die Funktion tun soll. Klicken Sie, nachdem Sie die Funktion deklariert haben (Abbildung oben), auf OK. Daraufhin wird das Dialogfeld "Funktion bearbeiten" (Abbildung unten) angezeigt. Es enthält die Vorlage der neu deklarierten Funktion, in der Sie nun die Funktion definieren können.

MTEditFunctionDlg

Geben Sie die Funktionsdefinition innerhalb der geschweiften Klammern ein. In der Definition in der Abbildung oben ist $a der Input-Parameter. Klicken Sie auf OK, wenn Sie fertig sind. Die Funktion wird daraufhin im Dialogfeld "XPath-Funktionen" zur Liste der benutzerdefinierten Funktionen hinzugefügt und kann nun in allen XPath-Ausdrücken im Projekt verwendet werden.

 

Anmerkung:Benutzerdefinierte XPath-Funktionen müssen nicht in einen separaten Namespace platziert werden, daher wird beim Definieren oder Aufrufen einer benutzerdefinierten Funktion auch kein Namespace-Präfix benötigt. Für alle XPath/XQuery-Funktionen einschließlich der Erweiterungsfunktionen und der benutzerdefinierten Funktionen wird der XPath-Standard-Namespace verwendet. Um die Funktionen eindeutig von den vordefinierten Funktionen unterscheiden zu können, empfehlen wir, benutzerdefinierte Funktionen mit Großbuchstaben zu schreiben.

 


© 2019 Altova GmbH