6 Appendix A: XML Schema

The XSD for XML namespace http://schemas.microsoft.com/windows/2007/01/BITS/ContentDiscovery is reproduced as follows:

[XML]

 <?xml version="1.0"?>
 <schema 
   targetNamespace="http://schemas.microsoft.com/windows/2007/01/BITS/ContentDiscovery"
   xmlns="http://www.w3.org/2001/XMLSchema"
   xmlns:cd="http://schemas.microsoft.com/windows/2007/01/BITS/ContentDiscovery"
   elementFormDefault="qualified">
   
   <!-- request types -->
  
   <simpleType name="guid">
     <restriction base="string">
       <pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-
         9a-fA-F]{12}" />
     </restriction>
   </simpleType>
  
   <simpleType name="url">
     <restriction base="string">
       <maxLength value="2200" />
     </restriction>
   </simpleType>
  
   <!-- request format -->
   <complexType name="searchRequest">
     <sequence>
       <element name="OriginUrl" type="cd:url"/>
       <element name="FileModificationTime" type="dateTime" />
       <element name="FileSize" type="unsignedLong"  minOccurs="0"/>
       <element name="FileEtag" type="string" minOccurs="0" />
  
       <element name="MaxRecords" type="positiveInteger" minOccurs="0" default="1" />
  
       <any minOccurs="0" maxOccurs="unbounded" processContents="lax" 
         namespace="##other"/>
  
     </sequence>
   </complexType>
  
   <!-- response types -->
  
   <simpleType name="searchStatus">
     <restriction base="string">
       <enumeration value="Success"/>
       <enumeration value="CertificateNotFound"/>
       <enumeration value="ContentNotFound"/>
       <enumeration value="AccessDenied"/>
       <enumeration value="OutOfResources"/>
       <enumeration value="InvalidSearch"/>
     </restriction>
   </simpleType>
  
   <complexType name="fileRange">
     <sequence>
       <element name="Offset" type="unsignedLong"/>
       <element name="Length" type="unsignedLong"/>
     </sequence>
   </complexType>
  
   <complexType name="cacheRecord">
     <sequence>
       <element name="Id" type="cd:guid"/>
       <element name="CreationTime" type="dateTime"/>
       <element name="ModificationTime" type="dateTime"/>
       <element name="LastAccessTime" type="dateTime"/>
       <element name="OriginUrl" type="cd:url"/>
       <element name="LocalUrl" type="cd:url"/>
       <element name="FileModificationTime" type="dateTime"/>
       <element name="FileSize" type="unsignedLong"/>
       <element name="FileEtag" type="string" minOccurs="0" />
       <element name="ContentRange" type="cd:fileRange" maxOccurs="unbounded"/>
       <any minOccurs="0" maxOccurs="unbounded" processContents="lax" 
         namespace="##other"/>
     </sequence>
   </complexType>
  
   <!-- response format -->
  
   <complexType name="searchResponse">
     <sequence>
       <element name="Status" type="cd:searchStatus" />
       <element name="CacheRecord" type="cd:cacheRecord" minOccurs="0" 
         maxOccurs="unbounded"/>
       <any minOccurs="0" maxOccurs="unbounded" processContents="lax" 
         namespace="##other"/>
     </sequence>
   </complexType>
  
   <element name="SearchRequest" type="cd:searchRequest"/>
   <element name="SearchResults" type="cd:searchResponse"/>
 </schema>