Those who follow me may already know my BizTalk Pipeline Components Extensions Utility Pack project that is available on GitHub. The project is a set of custom pipeline components (libraries) with several custom pipeline components that can be used in receive and sent pipelines. Those pipeline components provide extensions of BizTalk’s out-of-the-box pipeline capabilities.
This month my team and I updated this project with a new component: XML Complete Validator Pipeline Component.
The XML Complete Validator Pipeline Component is a component to be used on the Validate stage of a pipeline and to be used as a substitution for the out-of-the-box XML validator component. The default component stops validating the XML message after encountering an error. It doesn’t continue through the rest of the validation and provide a complete detailed list of all errors. That means that if you have several errors, you probably will test it several times and fix one issue at a time. This component will suppress this limitation/behaviour. Instead of throwing an exception the moment the first error occurs, it will validate the entire message and then provide a complete list of the errors found.
If we use this component to validate an invalid message against a Schema or DTD we will get an error similar to this one:
There was a failure executing the receive pipeline: “XMLValidator.ReceivePipeline1, XMLValidator, Version=18.104.22.168, Culture=neutral, PublicKeyToken=8373f64902689e37” Source: “Pipeline ” Receive Port: “ReceivePort2” URI: “C:\Users\saspereira\source\repos\XMLValidatorTest\Receive\*.xml” Reason: Error: The ‘nome’ attribute is not declared.
Error: The ‘nop’ attribute is not declared.
Where we see that we have two errors on that specific message instance:
THIS COMPONENT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND.
You can download XML Complete Validator Pipeline Component from GitHub here: