<!-- 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. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:sts="http://xml.apache.org/xmlbeans/2004/02/xmlbean/internal/soap-test-script"
  targetNamespace="http://xml.apache.org/xmlbeans/2004/02/xmlbean/internal/soap-test-script"
  elementFormDefault="qualified"
  blockDefault="#all">
  

<xs:element name="soap-test-script">
  <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="request" type="sts:requestSpec"/>
        <xs:element name="event" type="sts:eventSpec"/>
        <xs:element name="all" type="sts:setOfEvents"/>
      </xs:choice>
      <xs:attribute name="timeout" type="xs:int"/>
  </xs:complexType>
</xs:element>

<xs:complexType name="setOfEvents">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element name="event" type="sts:eventSpec"/>
  </xs:choice>
</xs:complexType>

<xs:complexType name="requestSpec">
  <xs:sequence>
    <xs:element name="url" type="xs:anyURI"/>
    <xs:choice minOccurs="0">
      <xs:element name="start" type="xs:string"/>
      <xs:element name="continue" type="xs:string"/>
    </xs:choice>
    <xs:element name="send" type="xs:string"/>
    <xs:element name="expect" type="xs:string" minOccurs="0"/>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="eventSpec">
  <xs:sequence>
    <xs:choice>
      <xs:element name="continue" type="xs:string"/>
      <xs:element name="finish" type="xs:string"/>
    </xs:choice>
    <xs:element name="expect" type="xs:string" minOccurs="0"/>
    <xs:element name="send" type="xs:string" minOccurs="0"/>
  </xs:sequence>
</xs:complexType>


</xs:schema>