<!--
  ~ 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.
  -->

<module name="metadataExchange" class="org.apache.axis2.mex.MetadataExchangeModule">
   <operation name="getMetadata" mep="http://www.w3.org/ns/wsdl/in-out">
         <messageReceiver class="org.apache.axis2.mex.MexMessageReceiver"/>

        <!-- namespaces for the 2004-09 spec -->
        
         <actionMapping>http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Request</actionMapping>
         <outputActionMapping>http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response</outputActionMapping>
       
        </operation>

</module>
