This mediator is used for schema validation of messages.
The portion of the message that needs to be validated is chooses by evaluating the XPath expression. Then this message is validated against the schema spcecified. User can specify a sequence to be executed in case of a validation failure. This mediator provide an extension point by providing properties to configure the underline validation engine.
<validate [source="xpath"]> <property name="validation-feature-id" value="true|false"/>* <schema key="string"/>+ <on-fail> mediator+ </on-fail> </validate>
The validate mediator validates the result of the evaluation of the source xpath expression, against the schema specified. If the source attribute is not specified, the validation is performed against the first child of the SOAP body of the current message. If the validation fails, the on-fail sequence of mediators is executed. Properties could be used to turn on/off some of the underlying features of the validator (See http://xerces.apache.org/xerces2-j/features.html)
Schema location
XPath expression to extract the XML that need to be validated. If not specified validation is performed against the first child of the SOAP body
Various features of the validator, http://xerces.apache.org/xerces2-j/features.html
Please refer the Target documentation
<validate> <schema key="schema\sample.xsd"/> <on-fail> <makefault> <code value="tns:Receiver" xmlns:tns="http://www.w3.org/2003/05/soap-envelope"/> <reason value="Invalid Request!!!"/> </makefault> <property name="RESPONSE" value="true"/> <header name="To" expression="get-property('ReplyTo')"/> </on-fail> </validate>In the above validate mediator configuration, the required schema for validating message going through the validate mediator has been given as a registry key, schema\sample.xsd. In this sample configuration, there is no source attribute. Therefore, in this case, validate mediator takes source as the first child of SOAP Body. Within on-fail, it is possible to specify mediation logic that should to be happened if the validation is failed. In the above configuration, it creates a SOAP fault using makefault mediator and send back that to requested party.