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.
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
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