BizTalk maps are graphical representations of XSLT (Extensible Stylesheet Language Transformation) documents that allow us to perform, in a simple and visual manner, transformations between XML messages.
We can enumerate the following standards used in the BizTalk Mapper:
- XML (Extensible Markup Language) – designed to transport and store data of messages;
- XML Schema (XSD – XML Schema Definition) – describes the structure of an XML document;
- E XSLT (Extensible Stylesheet Language Transformation) – is a style sheet language for XML documents (stands for XSL Transformations), it defines the transformation rules of the messages;
To emphasize, that they all are W3C recommendations. W3C ((Worldwide Web Consortium)) is an international consortium where Member organizations, a full-time staff, and the public work together to develop Web standards.
We can define that there are two types of transformations:
- Syntax Transformations: This type of transformations occurs in the receive or send pipelines and aim to transform a document into another representation, e.g. CSV to XML. Here the document maintains the same data (semantics) but changes the syntax that is represented. I.e. we translate the document, but typically we don’t modify the structure. Normally, this type of transformation is bidirectional, since we still have the same semantic content, we can apply the same transformation logic and obtain the document in its original format.
- Semantic Transformations: This type of transformation usually occurs only in BizTalk maps. Here the document maintains the same syntax that is represented (XML) but changes its semantics (data content). This type of transformation is typically one-way, since that when we added and aggregate small parts of the information, that compose the document into another different document, we may miss important details for its reconstruction.
Note: In this article, we will talk only of semantic transformations, i.e., maps in BizTalk.
Where maps can be used?
Maps can be used for processing messages received at a receive port, inside orchestrations or for processing messages sent to a send port, as the following figure suggests:
The biggest difference between using maps in ports or in orchestrations is that when we use maps inside orchestrations we can have multiple messages inputs (transformations of many documents into one final document – transformations N -> 1) and ports only allows a single input message (transformations 1 -> 1).
Related links
- BizTalk Server: Basics principles of Maps – Introduction (Part 1)
- BizTalk Server: Basics principles of Maps – Introduction to map editor (Part 3)
- BizTalk Server: Basics principles of Maps – Basic maps functionalities (Document mapping) (Part 4)
- BizTalk Server: Basics principles of Maps – Organizing Maps (Part 5)
- BizTalk Server: Basics principles of Maps – Testing and Validation of maps (at design time) (Part 6)
Can i use a map inside another map or use a part of map multiple times in the same map. Just like we can do with functions ?
Hi Aggarwal,
You cannot use a map inside another. at the first glimpse, what I can think is using XSLT Templates