Beispiel: Verwenden von Dateinamen als Mapping-Parameter
In diesem Beispiel wird Schritt für Schritt beschrieben, wie Sie ein Mapping ausführen, das zur Laufzeit Input-Parameter erhält. Sie finden die in diesem Beispiel verwendete Mapping-Design-Datei unter dem Pfad: <Dokumente>\Altova\MapForce2025\MapForceExamples\FileNamesAsParameters.mfd.
In diesem Mapping werden Daten aus einer XML-Quelldatei ausgelesen und in eine XML-Zieldatei geschrieben. Die Daten werden beinahe unverändert in die Zieldatei geschrieben; nur die Attribute PrimaryKey und Name werden mit Konstantenwerten aus dem Mapping befüllt. Hauptaufgabe des Mappings ist, dem Aufrufenden eine Möglichkeit zu geben, die Namen der Input- und Output-Datei zur Mapping-Laufzeit in Form von Mapping-Parametern anzugeben.
Das Mapping hat zu diesem Zweck zwei Input-Komponenten: InputFileName und OutputFileName. Diese Komponenten stellen den Input-Dateinamen (bzw. den Output-Dateinamen) der XML-Quell- und der XML-Zieldatei bereit. Aus diesem Grund wurden Sie mit dem Datenelement Datei:<dynamisch> verbunden. Durch Klicken auf die Schaltfläche Datei ( ) und Auswahl der Option Über das Mapping bereitgestellte dynamische Dateinamen verwenden können Sie eine Komponente in diesen Modus schalten.
FileNamesAsParameters.mfd (MapForce Enterprise Edition)
Wenn Sie auf die Titelleiste einer der Komponenten (InputFileName oder OutputFileName) doppelklicken, sehen Sie deren Eigenschaften. So können Sie etwa den Datentyp des Input-Parameters definieren oder den Namen des Input-Parameters ändern, wie unter Einstellungen für einfache Input-Komponenten beschrieben. In diesem Beispiel sind die Input- und Output-Parameter folgendermaßen konfiguriert:
•Der Parameter InputFileName hat den Typ "string" und hat einen Standardwert, der von einer im selben Mapping definierten Konstante stammt. Die Konstante hat den Typ "string" und den Wert "Altova_Hierarchical.xml". Bei Ausführung dieses Mappings wird daher versucht, Daten aus einer Datei namens "Altova_Hierarchical.xml" zu lesen, vorausgesetzt Sie geben keinen anderen Wert als Parameter an.
•Der Parameter OutputFileName hat den Typ "string" und hat einen Standardwert, der von einer im selben Mapping definierten Konstante stammt. Die Konstante hat den Typ "string" und den Wert "Altova_Hierarchical_output.xml". Das Mapping erstellt daher bei seiner Ausführung eine XML-Ausgabedatei namens "Altova_Hierarchical_output.xml", vorausgesetzt Sie geben keinen anderen Wert als Parameter an.
In den folgenden Abschnitten wird beschrieben, wie Sie das Mapping ausführen und in den folgenden Transformationssprachen Parameter bereitstellen:
•XSLT 2.0 mit Hilfe von RaptorXML Server
XSLT 2.0
Wenn Sie Code in XSLT 1.0, XSLT 2.0 oder XSLT 3.0 generieren, wird im gewählten Zielverzeichnis zusätzlich zur XSLT-Datei die Batch-Datei DoTransform.bat generiert. Mit Hilfe von DoTransform.bat können Sie das Mapping mit RaptorXML Server ausführen, siehe Automatisierung mit RaptorXML Server.
Um eine andere Input (oder Output)-Datei zu verwenden, bearbeiten Sie die Datei DoTransform.bat, damit Sie die erforderlichen Parameter enthält. Gehen Sie dazu folgendermaßen vor:
1.Generieren Sie zuerst den XSLT-Code (Um z.B. XSLT 2.0 zu generieren, klicken Sie im Menü Datei auf Code generieren in | XSLT 2.0).
2.Kopieren Sie die Datei Altova_Hierarchical.xml aus <Dokumente>\Altova\MapForce2025\MapForceExamples\ in das Verzeichnis, in dem Sie XSLT 2.0-Code generiert haben (in diesem Beispiel c:\codegen\examples\xslt2\). Wie zuvor erwähnt, versucht das Mapping diese Datei zu lesen, wenn Sie keinen benutzerdefinierten Wert für den Parameter InputFileName bereitstellen.
3.Bearbeiten Sie DoTransform.bat, sodass diese den benutzerdefinierten Input-Parameter entweder vor oder nach %* enthält. Beachten Sie, dass der Parameterwert innerhalb von einfache Anführungszeichen gesetzt wird. Die verfügbaren Input-Parameter werden im Abschnitt rem (Remark) aufgelistet. Angenommen, Sie möchten eine Output-Datei mit dem Namen output.xml generieren. Ändern Sie dazu die Datei DoTransform.bat folgendermaßen:
@echo off
RaptorXML xslt --xslt-version=2 rem --param=InputFileName: rem --param=OutputFileName: IF ERRORLEVEL 1 EXIT/B %ERRORLEVEL% |
Wenn Sie die Datei DoTransform.bat ausführen, stellt RaptorXML Server die Transformation mit Hilfe von Altova_Hierarchical.xml als Input fertig. Wenn Sie die obige Anleitung befolgt haben, erhält die generierte Ausgabedatei den Namen output.xml.