Altova MapForce 2025 Professional Edition

In MapForce haben Sie die Möglichkeit, die XSLT 1.0-, XSLT 2.0-, und XSLT 3.0-Funktionsbibliothek durch Ihre eigenen benutzerdefinierten Funktionen zu ergänzen, vorausgesetzt, das Ergebnis Ihrer benutzerdefinierten Funktionen sind simpleTypes.

 

Es werden nur benutzerdefinierte Funktionen unterstützt, deren Ergebnis einfache Datentypen (z.B. Strings) sind.

So importieren Sie Funktionen aus einer XSLT-Datei:

1.Klicken Sie im unteren Bereich des Fensters Bibliotheken auf die Schaltfläche Bibliotheken hinzufügen/entfernen. Daraufhin wird das Fenster Bibliotheken verwalten geöffnet (siehe Abbildung unten).

mf_manage_libraries_window_empty

2.Um Funktionen als lokale Bibliothek (nur im Geltungsbereich des aktuellen Dokuments) zu importieren, klicken Sie auf die Schaltfläche Hinzufügen unterhalb des aktuellen Mapping-Namens. Um Funktionen als globale Bibliothek (auf Programmebene zu importieren, klicken Sie auf die Schaltfläche Hinzufügen neben Globale Bibliotheksimporte. Wenn Sie eine Bibliothek lokal importieren, können Sie den Pfad zur Bibliotheksdatei als relativ zur Mapping-Datei definieren. Bei gobal importierten Bibliotheken ist der Pfad zur importierten Bibliothek immer absolut.

 

3.Navigieren Sie zur .xsl-Datei, die die Funktionen enthält und klicken Sie auf Öffnen. Daraufhin wird ein Meldungsfeld, in dem Sie informiert werden, dass eine neue Bibliothek hinzugefügt wurde, angezeigt.

 

Importierte XSLT-Dateien werden im Fenster "Bibliotheken" als Bibliotheken angezeigt. Unterhalb des Bibliotheksnamens werden alle Named Templates als Funktionen angezeigt. Wenn Sie die importierte Bibliothek nicht sehen, stellen Sie sicher, dass Sie XSLT als Transformationssprache ausgewählt haben. Siehe Verwalten von Funktionsbibliotheken.

 

Beachten Sie dazu Folgendes:

 

Funktionen müssen als Named Templates deklariert werden, die der XSLT-Spezifikation in der XSLT-Datei entsprechen, damit die Funktionen in MapForce importiert werden können. Sie können auch Funktionen, die in einem XSLT 2.0-Dokument in der Form <xsl:function name="MyFunction"> vorkommen, importieren. Wenn die importierte XSLT-Datei andere XSLT-Dateien importiert oder beinhaltet, so werden auch diese XSLT-Dateien und Funktionen importiert.

Die mapbaren Input-Konnektoren von importierten benutzerdefinierten Funktionen hängen von der Anzahl der Parameter ab, die im Template Call verwendet werden; auch optionale Parameter werden unterstützt.

Namespaces werden unterstützt.

Wenn Sie Änderungen an XSLT-Dateien, die bereits in MapForce importiert wurden, vornehmen, so werden die Änderungen automatisch erkannt und MapForce fragt Sie, ob die Dateien neu geladen werden sollen.

Stellen Sie beim Erstellen von Named Templates sicher, dass die im Template verwendeten XPath-Anweisungen an den/die richtigen Namespace(s) gebunden sind. Um die Namespace Bindings des Mappings zu sehen, zeigen Sie eine Vorschau des generierten XSLT-Codes an.

 

Datentypen in XPath 2.0

Wenn Ihr XML-Dokument ein XML-Schema referenziert und gemäß diesem Schema gültig ist, müssen Sie Datentypen, die nicht durch eine Operation implizit in den benötigten Datentyp konvertiert werden, explizit konstruieren oder konvertieren.

 

Im XPath 2.0 Datenmodell, das vom Altova XSLT 2.0-Prozessor verwendet wird, wird allen atomized Nodewerten aus dem XML-Dokument der Datentyp xs:untypedAtomic zugewiesen. Der Typ xs:untypedAtomic funktioniert gut mit impliziten Typkonvertierungen.

 

Beispiel:

 

Der Ausdruck xs:untypedAtomic("1") + 1 hat als Ergebnis den Wert 2, da der Wert xdt:untypedAtomic implizit vom Plus-Zeichen in xs:double geändert wird.

Arithmetische Operatoren konvertieren Operanden implizit in xs:double.

Operatoren zum Vergleich von Werten konvertieren Operanden vor dem Vergleich in xs:string.

 

Siehe auch:

Beispiel: Hinzufügen benutzerdefinierter XSLT-Funktionen

Beispiel: Summieren von Node-Werten

Implementierung des XSLT 1.0-Prozessors

Implementierung des XSLT 2.0-Prozessors

© 2018-2024 Altova GmbH