[Whoa! Just noticed the date. Six years ago, I was on the Colorado River in the Grand Canyon. We had a small memorial service for the victims of a year earlier]
Creating the Canonical–
A canonical schema is actually several schemas that are imported into a ‘master’ schema. This example is for a Real Estate Management Company, which manages several varieties of real estate – single family & duplexes, multifamily apartments, office buildings and warehouse facilities. If you try to construct a single schema that will handle each of these situations, the schema will be unwieldy and cumbersome to maintain. Instead we will create a separate schema for each. A schema for the single family and duplexes; a schema for the office buildings; and a schema for the warehouses. This will make it much easier to design and maintain the schemas to be specific to the purpose and to modify when situations arise to do so.
First, create a schema for each of our situations.

But create them in a folder within the project.
Next, create the master schema that is to hold the other schemas. It is not in that folder. Then add a child record to the root node for each schema as created in the first step.
Then go to the properties for the schema node in the master schema and click the ellipsis at the Imports property in the Advanced Group.

This brings up the Imports Dialog. Click on the Add Button, which brings up the BizTalk Type Picker that will list the schemas you’ve created.
From this type picker select the schemas that are to be folded into the master schema (allowed one at a time).

Once all have been selected and imported the Imports Dialog will look something like this.
Now highlight each of the blank records that you added to your master schema and click on the dropdown for the Data Structure Type property. The reference schemas are displayed.
For that ‘Record’ make its Data Structure Type one of these schemas. If you have everything right, your new canonical schema will look something like this.
I do hope that this helps in creating a canonical schema. Next post will be about why you would wish to use a canonical.





