Altova MapForce 2024 Professional Edition

Code Generator

Home Prev Top Next

Code Generator is a MapForce built-in feature which enables you to generate Java, C++ or C# code from mapping files designed with MapForce. You can generate code not only from simple mappings with a single data source and target, but also from mappings with multiple sources and multiple targets. The result is a fully-featured and complete application which performs the mapping operation for you. Once you generate the code, you can execute the mapping by running the application directly as generated. You can also import the generated code into your own application, or extend it with your own functionality.

 

The primary goal of the generated code is to execute a MapForce mapping. If your mapping uses XML schemas or DTDs, you can optionally generate schema wrapper libraries for XML/DTD schemas used by the mapping, which enables you to read or write data to or from XML instances. The schema wrapper libraries enable you to work with XML data programmatically, using types generated from the schema, without too much concern for the underlying XML API. For details, see Generating Code from XML Schemas or DTDs.

 

The generated code is expressed in C++, Java or C# programming languages.

 

Target Language

C++

C#

Java

Development environments

Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022

Microsoft Visual Studio 2013, 2015, 2017, 2019, 2022

 

Target frameworks:

 

.NET Framework

.NET Core 3.1

.NET 5.0

.NET 6.0

Java SE JDK 8, 11, 17, 21 (including OpenJDK)

Eclipse 4.4 or later

Apache Ant (build.xml file)

XML DOM implementations

MSXML 6.0

Apache Xerces 3

System.Xml

JAXP

Database API

ADO

ADO.NET

JDBC

 

 

Note:The MapForce-generated code can be considered thread-safe only if the underlying third-party XML DOM and database API libraries are. Although the thread safety of the generated code cannot be realistically proven or guaranteed, it is likely that multiple concurrent instances of the mapping code will run successfully in most cases.

 

C++

You can configure whether the C++ generated output should use MSXML 6.0 or Apache Xerces 3. MapForce generates complete project (.vcproj) and solution (.sln) files for all supported versions of Visual Studio (see table above). The generated code optionally supports MFC.

 

Prerequisites:

 

1.To compile the generated C++ code, Windows SDK must be installed on your computer.

2.To use Xerces 3 for C++, you will need to install and build it by following instructions from http://xerces.apache.org/xerces-c/. Make sure to add the XERCES3 environment variable that points to the directory where Xerces was installed, for example: C:\xerces-c-3.2.2. Also, the PATH environment variable must include the path where the Xerces binaries are, for example: %XERCES3%\bin.

3.When building C++ code for Visual Studio and using a Xerces library precompiled for Visual C++, a compiler setting has to be changed in all projects of the solution:

 

a)Select all projects in the Solution Explorer.

b)On the Project menu, click Properties.

c)Click Configuration Properties | C/C++ | Language.

d)In the list of configurations, select All Configurations.

e)Change Treat wchar_t as Built-in Type to No (/Zc:wchar_t-).

 

C#

The generated C# code can be used from any .NET capable programming language, such as VB.NET, Managed C++, or J#. Project files can be generated for all supported versions of Visual Studio (see table above).

 

Java

The generated Java output is written against the Java API for XML Processing (JAXP) and includes an Ant build file and project files for supported versions of Java and Eclipse (see table above).

 

Generated output

The designated destination folder will include all the libraries and files required to execute the mapping, namely:

 

A variable number of Altova libraries required by the mapping (for example, Altova function libraries, database libraries)

A complete mapping application. When compiled and run, the application performs the mapping transformation.

 

Code generator templates

The generated code supports customization via a template language called SPL (Spy Programming Language). This can be useful, for example, when you want to customize code according to your company's writing conventions, or replace specific libraries in the generated code.

 

Code generator examples

For code generator examples, see Example: Book Library and Example: Purchase Order.

 

© 2017-2023 Altova GmbH