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 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 referenceXSLT 2.0 Function referenceXSLT/XPath Operators