<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://webservices.groove.net/Groove/1.0/Files/" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:tns="http://webservices.groove.net/Groove/1.0/Files/" 
           xmlns:e="http://webservices.groove.net/Groove/1.0/Events/"
           xmlns:c="http://webservices.groove.net/Groove/1.0/Core"
           elementFormDefault="qualified" 
           version="1.0">

   <xs:complexType name="FileDescriptor">
      <xs:sequence>
         <xs:element name="ID" type="xs:string" />
         <xs:element name="URI" type="xs:anyURI" />
         <xs:element name="CreatedBy" type="xs:anyURI" />
         <xs:element name="ModifiedBy" type="xs:anyURI" />
         <xs:element name="Created" type="xs:dateTime" />
         <xs:element name="Modified" type="xs:dateTime" />
         <xs:element name="FolderID" type="xs:string" />
         <xs:element name="Unread" type="xs:boolean" />
         <xs:element name="Name" type="xs:string" />
         <xs:element name="DisplayName" type="xs:string" />
         <xs:element name="Type" type="xs:string" />
         <xs:element name="Size" type="xs:int" />
      </xs:sequence>
   </xs:complexType>

	<xs:complexType name="FileDescriptorList">
		<xs:sequence>
			<xs:element name="FileDescriptor" type="tns:FileDescriptor" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>

   <xs:complexType name="FileAddEventData">
      <xs:complexContent>
         <xs:extension base="e:EventData">
            <xs:sequence>
               <xs:element name="FileDescriptor" type="tns:FileDescriptor"/>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="FileUpdateEventData">
      <xs:complexContent>
         <xs:extension base="e:EventData">
            <xs:sequence>
               <xs:element name="FileDescriptor" type="tns:FileDescriptor"/>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="FileDeleteEventData">
      <xs:complexContent>
         <xs:extension base="e:EventData">
            <xs:sequence>
               <xs:element name="FileID" type="xs:string"/>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:complexType name="FileRenameEventData">
      <xs:complexContent>
         <xs:extension base="e:EventData">
            <xs:sequence>
               <xs:element name="FileDescriptor" type="tns:FileDescriptor"/>
            </xs:sequence>
         </xs:extension>
      </xs:complexContent>
   </xs:complexType>

   <xs:element name="CreateResponse">
	   <xs:complexType>
		   <xs:sequence>
			   <xs:element name="CreateResult" type="xs:anyURI" />
		   </xs:sequence>
	   </xs:complexType>
	</xs:element>

	<xs:element name="Read">
		<xs:complexType>
         <xs:sequence>
            <xs:element name="Recursive" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
      </xs:complexType>
	</xs:element>

	<xs:element name="ReadResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ReadResult" type="tns:FileDescriptorList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

   <xs:element name="ReadFile">
      <xs:complexType/>
   </xs:element>

   <xs:element name="UpdateFileResponse">
      <xs:complexType />
   </xs:element>

   <xs:element name="DeleteFile">
		<xs:complexType>
         <xs:sequence>
            <xs:element name="Recursive" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
         </xs:sequence>
      </xs:complexType>
   </xs:element>

   <xs:element name="DeleteFileResponse">
      <xs:complexType />
   </xs:element>

</xs:schema>


