Did you know that XMLReceivePipeline by default does not validate the contents / structure of the message?
The XMLReceivePipeline, based on the MessageType of the input message, will try to lookup a document specification (schema) and if it finds one, will do all the required property promotions / distinguish fields as specified in the schema and also promote the MessageType. If there is no schema deployed in BizTalk that match the MessageType of the input message, it simply throws an error as shown below.
Finding the document specification by message type <MessageType of the input message> failed. Verify the schema deployed properly.
On the other hand, if you are using a custom pipeline with “XML disassembler” component and you have added your schema in the document schemas collection, it will check to see if the MessageType of the input message match any of the schemas specified in the Document schemas collection ONLY, if not, it will throw an error a shown below.
No Disassemble stage components can recognize the data.
Note that, this error occurs even if you have a schema deployed in BizTalk that matches the MessageType of the input message, but is not available in the Document schemas collection of the custom pipeline.
To validate the input message including its contents and structure, you need to create a custom receive pipeline and add both the XmlDisassembler and XmlValidator components. On the XmlDisassembler you set the “Validate document structure” to true. XmlValidator will validate the contents as specified in the schema.