blob: b52bd72937f9dc43dad647750f96c62c81b9425a [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<synapse xmlns="http://ws.apache.org/ns/synapse">
<!-- introduction of static inline XML properties and the validation mediator -->
<definitions>
<!-- define a static property for an XSD schema resource as an inline XML fragment -->
<set-property name="validate_schema">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.apache-synapse.org/test" elementFormDefault="qualified"
attributeFormDefault="unqualified"
targetNamespace="http://services.samples/xsd">
<xs:element name="getQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element name="stocksymbol" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</set-property>
<endpoint name="stockquote"
address="http://localhost:9000/axis2/services/SimpleStockQuoteService"/>
<sequence name="customrequest">
<!-- is this a valid custom request ? -->
<validate>
<schema key="validate_schema"/>
<on-fail>
<!-- if the request does not validate againt schema throw a fault -->
<makefault>
<code value="tns:Receiver"
xmlns:tns="http://www.w3.org/2003/05/soap-envelope"/>
<reason value="Invalid custom quote request"/>
</makefault>
<!-- send the fault and stop processing -->
<send/>
</on-fail>
</validate>
<!-- send message to real endpoint referenced by name "stockquote" and stop -->
<send>
<endpoint ref="stockquote"/>
</send>
</sequence>
</definitions>
<rules>
<in>
<!-- is this a custom stock quote message? -->
<filter xpath="//m0:getQuote" xmlns:m0="http://services.samples/xsd">
<sequence ref="customrequest"/>
</filter>
</in>
<!-- just let the message flow through -->
<send/>
</rules>
</synapse>