XSLT Transform Engine (Grid Property)
Starting with BizTalk Server 2020, user can choose Saxon:registered: as XSLT transform engine. It is also possible to plug-in your own XSLT transform engine. Use XSLT Transform Engine property to specify the XSLT transform engine you wish to use.
BizTalk's default XSL transform engine implementation is based on .Net Framework XSLT Transformations. This support is limited to XSLT 1.0. Use this property to configure other XSL transform engines at map level. This makes it possible for BizTalk server maps to support newer versions of XSLT. Using Saxon:registered: one can readily use XSLT3.0.
|Undefined||Use global XSLT transform engine setting. No map specific override is applied.|
|.Net Framework||Use ".Net Framework" XSLT transform engine for this map. Property "Use XSL Transform" will be applied in this case.|
|Saxon 9 HE||Use "Saxon-HE 9" XSLT transform engine. Visit www.saxonica.com for more information.|
|Other custom XSLT transform||Use custom XSLT transform engine. More information on how to implement and use custom XSLT transform engine follows.|
Create custom XSLT transform
Steps for plugging in a custom XSL transform engine:
- Implement abstract class
Microsoft.XLANGs.BaseTypes.ITransform2in your code. For a sample implementation, please see Custom XSLT transform implementation
- Copy the compiled DLL file to the "Transform Components" folder (e.g. "\Program Files (x86)\Microsoft BizTalk Server\Transform Components") on every BizTalk runtime machine.
- Optional. To use this custom transform engine in the Visual Studio developer tools, update the "CustomTransform.xml" file in the "Developer Tools" folder (e.g. "\Program Files (x86)\Microsoft BizTalk Server\Developer Tools\CustomTransform.xml") as below, and restart Visual Studio:
- Add a new "Transform" node
- Add sub node "DisplayName" with text to be displayed in the drop-down list for "XSLT transform engine" property
- Add sub node "TypeAssemblyQualifiedName" with details of class that implements your custom transform engine For example:
<Transform DisplayName="Saxon 9 HE" TypeAssemblyQualifiedName="Microsoft.XLANGs.BaseTypes.SaxonHEXsltTransform, Microsoft.XLANGs.BaseTypes, Version=22.214.171.124, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
Your custom transform engine will show up in the XSLT transform engine drop-down list after Visual Studio restart.
Global XSLT transform engine
When the map-level XSLT tranform engine is set to "Undefined", the global XSLT transform engine is used.
By default BizTalk uses ".Net Framework" as the global engine. To override this value, specify the AssemblyQualifiedName of the class implementing the transformation engine as a string value "XsltEngine" in the BizTalk Server registry:
- 64 bit host instances:
- 32 bit host instances:
Saxon:registered: 9 transform engine
Saxon:registered: 9 doesn't support embedded scripting . As a result, functoids shipped as part of BizTalk may not function well with Saxon 9.
You must refer to Saxon:registered: documentation for scope of XSLT and Xpath support. If you wish to use other editions, create custom XSLT transform based on these editions.
Custom Extension XML is still a supported way for creating your custom extension for Saxon 9 HE transform engine. Create custom .Net extension functions by implementing interface
ExtensionFunctionDefinition, and add your implementations into Custom Extension XML. Saxon 9 HE transform engine will register extension functions defined in Custom Extension XML, and transform processor can then recognize and invoke any call from XSLT.
You cannot undo or redo the XSLT transform engine property.