This whole series of posts started because I wanted to show what XSLT was emitted when using the default functoids provided by Microsoft.
Specifically, I wanted to show the XSLT emitted by the Advanced Functoids. Understanding
this XSLT can help in understanding how to use the functoids.
For some reason (as seems to happen with me) the post expanded into a whole series
on the Mapper every time I explain one thing, I seem to want to explain all the things
that the first thing is based on oops.
Anyway, suffice to say that the next 9 posts will cover the code emitted by all of
the default functoids provided with BizTalk 2004 / 2006 / 2006 R2.
This is the second in a series of 13 posts about the BizTalk Mapper.
The other posts in this series are (links will become active as the posts become active):
Understanding
the BizTalk Mapper: Part 1 – Introduction
Understanding the BizTalk Mapper: Part 2 – Functoids Overview
Understanding the BizTalk Mapper: Part 3 – String Functoids
Understanding the BizTalk Mapper: Part 4 – Mathematical Functoids
Understanding the BizTalk Mapper: Part 5 – Logical Functoids
Understanding the BizTalk Mapper: Part 6 – Date/Time Functoids
Understanding the BizTalk Mapper: Part 7 – Conversion Functoids
Understanding the BizTalk Mapper: Part 8 – Scientific Functoids
Understanding the BizTalk Mapper: Part 9 – Cumulative Functoids
Understanding the BizTalk Mapper: Part 10 – Database Functoids
Understanding the BizTalk Mapper: Part 11 – Advanced Functoids
Understanding the BizTalk Mapper: Part 12 – Performance and Maintainability
Understanding the BizTalk Mapper: Part 13 – Is the Mapper the best choice for Transformation
in BizTalk? When all of the above have been posted, the entire series will
be downloadable as a single Microsoft Word document, or Adobe PDF file.
One thing to realise is that the majority of the default functoids emit inline C#
code – which is odd as quite a lot of the functionality can be performed using pure
XSLT.
So for each functoid I’ve shown:
- Whether XSLT or C# is emitted
- Whether an XSLT equivalent exists
- The XSLT or C# emitted by the functoid
-
Where C# is emitted, the equivalent XSLT to achieve the same functionality (in both
XSLT v1.0 and v2.0)
For the Advanced Functoids knowing what the functoids emit can be useful in understanding
how to use them.
For the other functoids, knowing the equivalent XSLT to use is useful if you want
a map which performs better as (generally speaking) using native XSLT will be faster
than the equivalent C# for simple operations.
Some useful references when reading these sections are:
XSLT 1.0 Function
reference
XSLT 2.0
Function reference
XSLT/XPath
Operators