Importieren benutzerdefinierter Java- und .NET-Bibliotheken

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

Startseite >  Funktionen >

Importieren benutzerdefinierter Java- und .NET-Bibliotheken

Sie können kompilierte Java-Klassendateien sowie .NET DLL-Assembly-Dateien (einschließlich .NET 4.0 Assemblies) in MapForce importieren. Wenn die importierten Bibliotheken Funktionen enthalten, die Basisdatentypen wie Parameter verwenden und simpleTypes zurückgeben, so werden solche Funktionen im Fenster "Bibliotheken" angezeigt und können wie jede andere Funktion in MapForce Mappings verwendet werden. Eine Vorschau der Mapping-Ausgabe der importierten Java- und .NET-Funktionen kann im Ausgabefenster angezeigt werden. Außerdem stehen die Funktionen im generierten Code zur Verfügung.

 

Anmerkungen:

 

Um benutzerdefinierte Java- oder .NET-Funktionen zu importieren, benötigen Sie kompilierte Java-Klassen (.class) oder .NET.dll-Assembly-Dateien. Der Import von Java .jar-Dateien oder .dll-Dateien, bei denen es sich nicht um eine .NET-Assembly handelt, wird nicht unterstützt.
Kompilierte Java-Klassendateien (.class-Dateien) werden unterstützt, wenn als Mapping-Sprache Java eingestellt ist. Auf Ihrem Rechner muss Java Runtime Environment 7 oder höher installiert sein. Es werden nur bestimmte Typen und Member unterstützt (siehe Unterstützung von Java-Funktionen).
.NET Assembly-Dateien werden unterstützt, wenn als Mapping-Sprache C# eingestellt ist. Die .NET Assemblies können in .NET-Sprachen mit Ausnahme von C# geschrieben sein (z.B. C++.NET oder VB.NET), vorausgesetzt sie verwenden als Parameter und Rückgabetypen nur die Basisdatentypen aus der System Assembly (siehe auch Unterstützung von .NET-Funktionen).
Die Verwendung von C++ als Mapping-Sprache wird nicht unterstützt, wenn im Mapping importierte Java.class- oder .NET DLL-Assemblies verwendet werden.
Der Import von Funktionen aus nativen C++ DLLs ist eingeschränkt. Es ist dafür eine eigene Methode erforderlich. Nähere Informationen finden Sie unter Manuelles Referenzieren von Java, C# und C++-Bibliotheken.
Die Verwendung von XSLT als Mapping-Sprache wird nicht unterstützt, wenn im Mapping importierte Java.class- oder .NET DLL-Assemblies verwendet werden (es müsste eine benutzerdefinierte XSLT-Funktion geschrieben werden, die als Adapter fungiert).
Alle von einem MapForce Mapping aus aufgerufenen Funktionen sollten "idempotent" sein (d.h. sie sollten jedes Mal, wenn die Funktion mit denselben Input-Parametern aufgerufen wird, denselben Wert zurückgeben). Die genaue Reihenfolge und wie oft eine Funktion von MapForce aufgerufen wird, ist nicht definiert.
Im Fall von Java müssen die importierten Klassendateien nicht zur CLASSPATH-Variablen hinzugefügt werden, da der Built-In-Ausführungsprozessor - genau wie der generierte Java-Code - importierte Pakete automatisch zum Classpath bzw. zum ANT des Java-Prozessors hinzufügt. Abhängigkeiten der importierten Klassendateien und Pakete werden jedoch nicht automatisch behandelt. Wenn importierte Java-Klassendateien daher von anderen Klassendateien abhängig sind, stellen Sie sicher, dass auch die übergeordneten Verzeichnisse aller abhängigen Pakete zur CLASSPATH-Umgebungsvariable hinzugefügt werden.

 

Unterstützung von Java-Funktionen

Klassen der obersten Ebene, statische Member-Klassen und nicht statische Member-Klassen werden unterstützt:

 

new <classname>(<arg1>, <arg2>, ...)
<object>.new <member-class>(<arg1>, <arg2>, ...)

 

 

Member-Funktionen und statische Funktionen werden unterstützt:

 

<function>(<arg1>, <arg2>, ...)
<object>.<method>(<arg1>, ...)

 

Unterstützte Verbindungen zwischen XML-Schema- und Java-Typen:

 

Schema-Typ

Java-Typ

xs:string

String

xs:byte

byte

xs:short

short

xs:int

int

xs:long

long

xs:boolean

boolean

xs:float

float

xs:double

double

xs:decimal

java.math.BigDecimal

xs:integer

java.math.BigInteger

 

Verbindungen können in beide Richtungen hergestellt werden. Andere Java-Typen (einschließlich Array-Typen) werden nicht unterstützt. Methoden, die solche Parameter oder Rückgabewerte verwenden, werden ignoriert.

 

Object-Typen werden durch Aufruf ihres Konstruktors oder als Rückgabewert einer Methode unterstützt. Sie können auf andere Java-Methoden gemappt werden. Eine Bearbeitung des Objekts mit Hilfe von MapForce ist nicht möglich.

 

Unterstützung von .NET-Funktionen

Klassen der obersten Ebene werden unterstützt:

 

new <classname>(<arg1>, <arg2>, ...)

 

Member-Funktionen und statische Funktionen werden unterstützt:

 

<function>(<arg1>, <arg2>, ...)
<object>.<method>(<arg1>, ...)

 

Unterstützte Verbindungen zwischen XML-Schema- und .NET/C#-Typen:

 

Schema-Typ

.NET-Typ

C#-Typ

xs:string

System.String

string

xs:byte

System.SByte

sbyte

xs:short

System.Int16

short

xs:int

System.Int32

int

xs:long

System.Int64

long

xs:unsignedByte

System.Byte

byte

xs:unsignedShort

System.UInt16

ushort

xs:unsignedInt

System.UInt32

uint

xs:unsignedLong

System.UInt64

ulong

xs:boolean

System.Boolean

bool

xs:float

System.Single

float

xs:double

System.Double

double

xs:decimal

System.Decimal

decimal

 

Verbindungen können in beide Richtungen hergestellt werden. Andere .NET/C#-Typen werden nicht unterstützt. Methoden, die solche Parameter oder Rückgabewerte verwenden, werden ignoriert.

 

Object-Typen werden durch Aufruf ihres Konstruktors oder als Rückgabewert einer Methode unterstützt. Sie können auf andere .NET-Methoden gemappt werden. Eine Bearbeitung des Objekts mit Hilfe von MapForce ist nicht möglich.


© 2019 Altova GmbH