<?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. -->

<xsd:schema targetNamespace="http://jira/xmlbeans_105"
            elementFormDefault="qualified"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:wsnt="http://jira/xmlbeans_105"
            xmlns:wsbf="http://jira/xmlbeans_105">

   <xsd:import namespace="http://jira/xmlbeans_105"
               schemaLocation="xmlbeans_105a.xsd" />

   <xsd:complexType name="ResourceUnknownFaultType">
      <xsd:complexContent>
         <xsd:extension base="wsbf:BaseFaultType"/>
      </xsd:complexContent>
   </xsd:complexType>

   <xsd:element name="ResourceUnknownFault"
                type="wsnt:ResourceUnknownFaultType"/>

</xsd:schema>
