<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2004 The Apache Software Foundation

     Licensed 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. -->

<definitions name="olderSchemaVersion"
    targetNamespace="abc"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
        <schema targetNamespace="http://abc"
            xmlns="http://www.w3.org/1999/XMLSchema">
            <element name="Foo">
                <complexType>
                    <sequence>
                        <element name="item1" type="int"/>
                        <element name="item2" type="boolean"/>
                    </sequence>
                </complexType>
            </element>
            <element name="Baz">
                <complexType>
                    <all>
                        <element name="endorsingBoarder" type="string"/>
                    </all>
                </complexType>
            </element>
            <element name="Bar">
                <complexType>
                    <all>
                        <element name="errorMessage" type="float"/>
                    </all>
                </complexType>
            </element>
        </schema>
    </types>
    <message/>
    <binding/>
    <portType/>
    <service/>
</definitions>
