3.1.4.3.2.4 SPFile

The SPFile element is a change notification about the file (attachment), and has the following schema.

 <s:element name='SPFile'>
   <s:attribute  name='ItemCount' type='s:int' use='required'/>
   <s:attribute  name='Change' type='s:string' use='required'/>
   <s:attribute name="UpdateSecurity" type="tns:TrueFalseType" use="optional" />
   <s:attribute name="ServerUrl" type="s:anyURI" use="optional" />
   <s:attribute name="ParentId" type="s:string"  use="optional" />
   <s:attribute name="InternalUrl" type="s:string" use="optional"/>
   <s:attribute name="Id" type="s:string"  use="optional" />
   <s:attribute name="DisplayUrl" type="s:anyUri"  use="optional" />
   <s:attribute name="CRC" type="s:long" use="optional"/>
   <s:attribute name="SequenceNumber" type="s:string" use="optional"/>
   <s:attribute name="Url" type="s:string" use="optional" />
 </s:element>

Url: store-relative URL of the file (attachment). Url MUST NOT be URL-encoded. The protocol client SHOULD URL-encode [RFC2396] this URL to successfully apply the HTTP GET method. For example, replacing spaces with "%20".

ItemCount: See section 3.1.4.3.5.8. It MUST be zero, as files do not have child elements.

Change: Specifies the change type of this file, see section 3.1.4.3.5.1.<23>

UpdateSecurity: See section 3.1.4.3.5.11.

Id: See section 3.1.4.3.5.6.

ParentId: See section 3.1.4.3.5.9.

InternalUrl: See section 3.1.4.3.5.7.

DisplayUrl: See section 3.1.4.3.5.5.

ServerUrl: See section 3.1.4.3.5.10.

CRC: See section 3.1.4.3.5.4.

SequenceNumber: See section 3.1.4.3.5.13.

Note that attachments to the list items are included into special folders hidden inside of the list, for example, Lists/Actors/Attachments/3/bio.doc. Here, 3 means "attachments to the list item number 3 in the Actors list ", and bio.doc is the file name. The indexing service is supposed to read the file using the HTTP GET method and probably index its content. Attachment folders are not visible to GetListCollection, GetList, and EnumerateFolder operations.