Map and Transform XML Data
- Drag-and-drop mapping between components
- Supports XML Schema and DTD content models
- Generates XML Schema from instance document
- XSLT 1.0/2.0 Libraries and data processing functions
- XML Digital Signature support
- Support for XML wildcards (xs:any and xs:anyAttribute)
- Support for comments and processing instructions
- Generates XSLT 1.0/2.0 stylesheets or source code
Creating an XML Mapping
MapForce supports XML mappings based on XML Schema or DTD content models. To develop an XML mapping, simply load two or more schemas into MapForce and drag connecting lines between the nodes of the source and target. Mixed content support even enables you to map text data that is interspersed with XML.
If you do not have an associated schema for an XML instance document, MapForce automatically generates an XML Schema from an XML instance document.
MapForce supports advanced XML transformations between multiple input and multiple output schemas, multiple source and/or target files, or advanced multi-pass data transformations (from schema, to schema, to schema, etc.)
Once you have finished defining your XML mapping and data processing rules, you can load a source file, and the MapForce Built-In Execution Engine will instantly convert the data into the new format.
MapForce also autogenerates XSLT 1.0 or 2.0 stylesheets for use in transforming data in multiple XML documents based on the source schema to conform to the target XML Schema.
In addition to XML mapping, MapForce supports mapping any combination of XML, database, EDI, XBRL, flat file, Excel, JSON, and/or Web service data to build data integration or Web services applications.
Viewing XML Mapping Output
As you design an XML mapping project, the built-in MapForce Engine allows you to view and save the autogenerated XSLT 1.0/2.0 or XQuery code with one click. You can also click the Output tab to view the actual output generated by your XML mapping.
The screenshot below shows the XML output and the generated XSLT 2.0 style sheet for the XML mapping illustrated above.
XML Mapping with Digital Signatures
Digital signatures are a W3C specification to digitally sign an XML document with an encrypted code that can be used to verify that the XML document has not been altered. The XML Signature feature in MapForce supports only certificates of type RSA-SHA1 and DSA-SHA1.
MapForce supports creating XML digital signatures for XML and XBRL output files. A signature is created for the generated result file when the output button is pressed, and the result file with the signature may be saved.
Digital signatures can be embedded as the last element of the output document or stored in a separate signature file.
- If "Enveloped" is selected, then the signature is the last child element below the root element of the XML file.
- If "Detached" is selected, then the signature file is generated as a separate document.
The image at the right shows a digital signature at the end of the result file, generated using the enveloped option.
XML document validity
If an XML signature is embedded in the XML document, a Signature element in the namespace http://www.w3.org/2000/09/xmldsig# is added to the XML document. In order for the document to remain valid according to a schema, the schema must contain the appropriate element declarations. If you do not wish to modify the schema of the XML document, the XML signature can be created in an external file using the "Detached" option.
Support for XML Wildcards
The <xs:any> element and <xs:anyAttribute> in an XML Schema design allow any new element or attribute to be placed at the corresponding location in an XML instance document, even though the new element or attribute is not defined in the XML Schema. This is known as an XML wildcard and it is a popular mechanism used to allow a degree of customization in many XML Schemas that support industry standards across a wide variety of businesses.
MapForce supports <xs:any> and <xs:anyAttribute> for mapping to output in XML or any other output format. A selection button next to <xs:any> or <xs:anyAttribute> in an XML mapping input component opens a wildcard selection dialog.
The <xs:any> element, as well as <xs:anyAttribute>, are commonly used in XML Schema design and support in MapForce has been a frequent user request.
XML Mapping to and from Databases
MapForce includes powerful support for database mapping, including mapping between any of database data and XML, flat files, EDI, Excel (OOXML), XBRL, Web services, and even other database formats.
When you load a database structure in the design window, MapForce automatically interprets the database schema, lets you pick available database tables and views, and recognizes table relationships.
Once you have loaded all of the XML and other content models required for your database mapping, complete the mapping by simply dragging connecting lines between the source and target structures.
- Firebird 2.5
- IBM DB2 for iSeries® v6.1, 7.1
- IBM DB2® 8, 9.1, 9.5, 9.7, 10.1, 10.5
- Informix® 11.70
- Microsoft Access™ 2003, 2007, 2010, 2013
- Microsoft® Azure SQL
- Microsoft® SQL Server® 2005, 2008, 2012, 2014, 2016
- MySQL® 5, 5.1, 5.5, 5.6, 5.7
- Oracle® 9i, 10g, 11g, 12c
- PostgreSQL 8, 9.0.10, 9.1.6, 9.2.1, 9.4, 9.6
- Progress OpenEdge 11.6
- SQLite 3.x
- Sybase® ASE 15, 16
MapForce supports all major relational databases, empowering you to create graphical database mapping designs between database source data, data processing functions and filters, and other data structures of various types.
Database Mapping Features:
- Database queries on all major databases
- Mapping data from any supported database type to any other
- Specify database key settings
- Define database table actions
- Query databases directly
- Connect to and map XML in database fields
- Sort database input components
Filtering and Processing Database Data
Many database mappings require manipulation of data between the source and target based on Boolean conditions or SQL and SQL/XML statements. You may need to perform logical comparisons, mathematical computations, or string operations, check for database data of a particular value, and make other modifications to the data. In screenshot above, data processing functions appear as the boxes between the lines joining the source and the target data model.
Data processing functions enable you perform advanced database mappings on-the-fly for a multitude of real-world transformation requirements. You can, for example, construct database mappings that use XML or EDI messages to extract database rows based on filter criteria from the XML or EDI elements.
Database-to-XML mappings produce an XML output document, database mappings to flat files have output in CSV or fixed-length text files, mappings of databases to EDI can produce EDIFACT, X12, or HL7 messages, database mappings to Excel produce Office Open XML (OOXML) markup, and mappings to XBRL produce XBRL financial reports.
XML mappings into a database produces output in the form of SQL scripts (e.g., SELECT, INSERT, UPDATE, and DELETE statements) that are run against your target database directly from within MapForce.
XBRL Data Mapping
Extensible Business Reporting Language (XBRL) is an XML-based markup language for electronic transmission of business and financial data.
MapForce supports the use of XBRL taxonomies as the source or target of any mapping, enabling you to graphically transform backend accounting data into a compliant format without any risk to its semantic or structural integrity and/or integrate reporting data for financial analysis.
Support for mapping execution files and code generation in Java, C#, or C++ means that you can also automate the conversion of financial data based on the graphical mapping design. This makes public financial data submission a repeatable and highly manageable process, allowing you to produce valid XBRL reports as required based on the variable data stored in accounting system fields.
Developing XBRL Mappings
To develop an XBRL mapping based on an existing taxonomy, simply insert your taxonomy structure in the MapForce design pane. MapForce will display a graphical representation of the file structure, depicting taxonomy concepts, hypercubes, abstract elements, periods, identifiers, etc. with intuitive icons.
The XBRL component takes structural and semantic information from the associated linkbases and is presented in a hierarchy that can be easily interpreted, expanded or contracted as needed.
Filtering and Processing XBRL Data
MapForce provides flexible support for filtering and processing data via advanced processing functions based on Boolean conditions or manipulating data as it’s converted from source to target format.
For example, because XBRL data is essentially flat, it is often necessary to apply grouping functions that combine source data into groups and then further process those groups to transform the data into a hierarchical structure. This is facilitated by grouping functions in the MapForce function library.
Any-to-Many and Chained Data Mappings
MapForce is an extremely flexible XML mapping tool for complex data integration and conversion projects. The input and destination of a data mapping can be mixed formats, including any combination of XML, databases, flat files, EDI, Excel, XBRL, and Web services. A data mapping can have one input mapped to one output, one input to many outputs, many sources to one destination, or many sources to many destinations, all in different data formats.
MapForce lets you integrate data from multiple files and data sources or split data from one source into many outputs. Multiple files can be specified through support for wildcard characters (e.g., ? or *) in filenames, a database table, auto-number sequences, or other methods. This feature is very useful in a wide variety of data integration scenarios; for example, it may be necessary to integrate data from a file collection or to generate individual XML files for each main table record in a large database.
MapForce also allows you to use file names as parameters in your data integration projects. This lets you create dynamic mappings in which specific file names are defined at run-time.
Chained Data Mapping
Chained transformations empower you to create complex mappings in which the output of one mapping becomes the input of another. This powerful feature adds to MapForce's ability to execute fully automated transformations. Each chained component becomes a modular entity in an interdependent transformation sequence, allowing for conversions to be made on-the-fly.
Chained transformations can be created using any number of mapping components connected to a final target component. Preview and code generation features can be displayed/generated for intermediate components, as well as for the final mapping result.
Automate XML Mapping Execution with MapForce Server
Altova MapForce Server includes the built-in data transformation engine developed for MapForce and is greatly enhanced to operate in server environments. MapForce Server performs data transformations for any combination of XML, database, EDI, XBRL, flat file, Excel, JSON, and/or Web service using preprocessed and optimized data mappings stored in execution files based on data mappings defined in MapForce. MapForce Server takes data transformation to the next level with server capabilities including parallel processing and multi-threading, bulk SQL merge, cross-platform support, and more.
Preprocessing enables faster performance and reduced memory footprint for most data mappings. MapForce Server operates under the management of FlowForce Server, in a standalone configuration executed from a command line, or programmatically via an API.
After a MapForce XML mapping is designed and tested, it can be executed by MapForce Server to automate business processes that require repetitive data transformations.
MapForce pre-processes and optimizes XML data mappings, stores them in MapForce Server Execution files for command-line execution by MapForce Server, and uploads them for use in FlowForce Server jobs.
When MapForce Server operates under the management of FlowForce Server, data mappings are executed as FlowForce Server job steps, based on triggers defined as part of the FlowForce Server job. For example, a new XML instance document lands in a directory, which triggers a multi-step FlowForce Server job to first validate the file using RaptorXML+XBRL Server, then execute MapForce Server to extract certain data from the XML and insert it into a database.