<!--
  ~ 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.
  -->

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
        xmlns:axis2="http://ws.apache.org/namespaces/axis2">
    <soapenv:Header xmlns:fabrikam="http://example.com/fabrikam">
        <wsa:MessageID>invalid-notinrole</wsa:MessageID>
        <wsa:To>soapenv:mustUnderstand="0">invalid-notinrole</wsa:To>
        <wsa:From>
            <wsa:Address>invalid-notinrole</wsa:Address>
        </wsa:From>
        <wsa:Action>invalid-notinrole</wsa:Action>
        <wsa:ReplyTo>
            <wsa:Address>invalid-notinrole</wsa:Address>
        </wsa:ReplyTo>
        <wsa:FaultTo>
            <wsa:Address>invalid-notinrole</wsa:Address>
        </wsa:FaultTo>
        <wsa:RelatesTo>invalid-notinrole</wsa:RelatesTo>
        <wsa:RelatesTo RelationshipType="http://some.custom.relationship">invalid-notinrole</wsa:RelatesTo>
    
        <wsa:MessageID axis2:AttrExt="123456789" soapenv:mustUnderstand="0" soapenv:actor="http://my/custom/role">
            uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
        <wsa:To axis2:AttrExt="123456789" soapenv:mustUnderstand="0" soapenv:actor="http://my/custom/role">http://localhost:8081/axis/services/BankPort</wsa:To>
        <wsa:From axis2:AttrExt="123456789" soapenv:mustUnderstand="0" soapenv:actor="http://my/custom/role">
            <wsa:Address>
                http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
            <wsa:ReferenceParameters>
                <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
            </wsa:ReferenceParameters>
            <wsa:ReferenceProperties>
                <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
            </wsa:ReferenceProperties>
            <axis2:EPRExt axis2:AttrExt="123456789">123456789</axis2:EPRExt>
        </wsa:From>
        <wsa:Action axis2:AttrExt="123456789" soapenv:actor="http://my/custom/role">http://ws.apache.org/tests/action</wsa:Action>
        <wsa:ReplyTo axis2:AttrExt="123456789" soapenv:actor="http://my/custom/role">
            <wsa:Address>http://example.com/fabrikam/acct</wsa:Address>
            <wsa:ReferenceParameters>
                <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
            </wsa:ReferenceParameters>
            <wsa:ReferenceProperties>
                <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
            </wsa:ReferenceProperties>
            <axis2:EPRExt axis2:AttrExt="123456789">123456789</axis2:EPRExt>
        </wsa:ReplyTo>

        <wsa:FaultTo axis2:AttrExt="123456789" soapenv:actor="http://my/custom/role">
            <wsa:Address>http://example.com/fabrikam/fault</wsa:Address>
            <wsa:ReferenceParameters>
                <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
            </wsa:ReferenceParameters>
            <wsa:ReferenceProperties>
                <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
            </wsa:ReferenceProperties>
            <axis2:EPRExt axis2:AttrExt="123456789">123456789</axis2:EPRExt>
        </wsa:FaultTo>
        <wsa:RelatesTo axis2:AttrExt="123456789" soapenv:actor="http://my/custom/role">http://some.previous.message</wsa:RelatesTo>
        <wsa:RelatesTo RelationshipType="axis2:some.custom.relationship" soapenv:actor="http://my/custom/role">http://identifier.of.other.message/</wsa:RelatesTo>

    </soapenv:Header>
    <soapenv:Body>
        <ns1:getBalance soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                xmlns:ns1="http://localhost:8081/axis/services/BankPort">
            <accountNo href="#id0"/>
        </ns1:getBalance>
        <multiRef id="id0" soapenc:root="0"
                soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
            1001</multiRef>
    </soapenv:Body>
</soapenv:Envelope>