Friday, March 03, 2006

BizTalk Pipelines Factoid

I'm sitting in the BizTalk 2006 Deep Dive training in Redmond right now, and the instructor told me some stuff that I don't remember seeing elsewhere. So I'm going to document this for myself and others.

The provided XMLTransmit pipeline will ensure that an incoming document is well formed XML, but it won't validate the document against a schema. In order to validate against a schema, you need to create a pipeline and do one of two things:

  • Drop an XML disassembler component into the pipeline, set the "Validate document structure" property to false, and then drop an XML validator component as well. This will validate the XML document against any schema that is deployed to your host.
  • Drop only an XML disassembler into the pipeline, set the "Validate document structure" property to true, and then add one or more schemas to the "Document schemas" property.

Note that if you use the XML validator component as desribed above, you don't have to specify a schema. However, if you do specify a schema (or schemas) in this component, the pipeline will then validate only against that specific schema (or schemas).

If you do choose to use a port to validate according to a schema, BizTalk 2006 will make it easier. In BTS 2006, pipelines support parameters, and you can override the schema(s) that are used.

BTW, I'm using the word "factoid" in the title because I figure if functoid is a word, than factoid must also be.