Chapter 97. MSV
MSV Component
The MSV component performs XML validation of the message body using the MSV Library and any of the supported XML schema languages, such as XML Schema or RelaxNG XML Syntax.
Note that the Jing component also supports RelaxNG Compact Syntax
URI format
msv:someLocalOrRemoteResource[?options]
Where someLocalOrRemoteResource is some URL to a local resource on the classpath or a full URL to a remote resource or resource on the file system. For example
msv:org/foo/bar.rng msv:file:../foo/bar.rng msv:http://acme.com/cheese.rng
You can append query options to the URI in the following format,
?option=value&option=value&...
Options
Option | Default | Description |
---|---|---|
useDom
|
true
|
Whether DOMSource/DOMResult or SaxSource/SaxResult should be used by the validator. Note: DOM must be used by the MSV component. |
Example
The following example shows how to configure a route from endpoint direct:start which then goes to one of two endpoints, either mock:valid or mock:invalid based on whether or not the XML matches the given RelaxNG XML Schema (which is supplied on the classpath).
<camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:start"/> <doTry> <to uri="msv:org/apache/camel/component/validator/msv/schema.rng"/> <to uri="mock:valid"/> <doCatch> <exception>org.apache.camel.ValidationException</exception> <to uri="mock:invalid"/> </doCatch> <doFinally> <to uri="mock:finally"/> </doFinally> </doTry> </route> </camelContext>