A canonical schema is a design pattern, which is applied within a service-oriented paradigm, and within the BizTalk Server context to establish loose coupling between systems. Through performing transformation of messages from one system to a canonical schema and from a canonical schema to a message of another system, systems have no direct relationship with each other. A canonical schema can also be viewed as an internal schema in BizTalk and aid you in structuring your solution through the best practice of creating separate projects for maps, orchestrations, internal and external schemas.
Another advantage of using a canonical schema is that it reduces the number of transformations you need. If you need to map a few types of inbound messages coming from different parties to a few outbound messages, you can create a map to your canonical schema for each inbound schema and then a map from your canonical schema to each outbound schema. For example, if you have three...