Data mapping, transformations, and XSLT
Domain 4 - Data mapping, transformations, and XSLT
This domain tests the mapper, XPath expressions, repeating structures, lookups, and custom XSLT. Questions often present a source and target schema and ask which mapping handles optional or repeating data correctly.
Core rules
- A Map activity maps a source schema to a target schema and generates XSLT. You can use the graphical mapper, edit the XSLT directly, or use an XSLT activity for custom transformation.
- XPath is used for selections and conditions. Handle optional nodes with predicates or xsl:if/xsl:choose; map repeating nodes with xsl:for-each or the mapper's for-each support.
- Common functions include concat, substring, string-length, normalize-space, translate, number, and date formatting. Lookup tables map codes to values; the lookup must exist in the target environment.
- Namespaces matter. A target element in a namespace needs the correct prefix or default namespace; a mismatch produces an empty or invalid payload even when the XPath looks correct.
- Keep transformations deterministic and null-safe. Do not rely on extension functions that the runtime XSLT processor does not support.
Worked example
Source has firstName and lastName, target has fullName. Map concat(firstName, ' ', lastName). If middleName is optional, use a choose: when present, concatenate it; otherwise use the two-part name. For repeating order lines, use for-each over /order/line and map each line to /invoice/line. If countryCode must become a country name, use a lookup table, not a long nested if.
Traps
Do not ignore target cardinality: a single target field cannot accept a repeating source without an aggregate. Do not use an XPath 2.0-only function in a 1.0 processor. Do not forget to deploy lookup tables with the integration, and do not map a mandatory target field only inside a conditional branch.