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

<xs:schema targetNamespace="http://xmlobjecttest/soapfaults"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://xmlobjecttest/soapfaults" elementFormDefault="qualified"
    attributeFormDefault="unqualified">

    <xs:element name="first-fault" type="first-fault-type">
        <xs:annotation>
            <xs:documentation>Comment describing your root element</xs:documentation>
        </xs:annotation>
    </xs:element>

    <xs:element name="second-fault" type="second-fault-type"/>

    <xs:complexType name="first-fault-type">
        <xs:sequence>
            <xs:element name="a-string" type="xs:string"/>
            <xs:element name="a-int" type="xs:int"/>
            <xs:element name="a-date" type="xs:date"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="second-fault-type">
        <xs:sequence>
            <xs:element name="a-fault-item" type="xs:string" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

