Property Names and WebDAV
Topic Last Modified: 2006-06-12
When you access item properties using the WebDAV protocol, the property names are represented as namespace-scoped XML elements complying with the Namespaces in XML Recommendation. For example, a property accessible through the Exchange OLE DB (ExOLEDB) provider with the name "DAV:contentclass" is represented through WebDAV as:
<a:contentclass xmlns:a="DAV:">[value]</a:contentclass>
The prefix "a" in this example acts only as a placeholder for the Uniform Resource Identifier (URI) "DAV:" and is not part of the property name.
The following is a typical response to a WebDAV PROPFIND Method request:
PROPFIND /path/resource.eml HTTP/1.1
Content-Type: text/xml
Content-Length: XXX
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
 <d:prop><d:displayname/></d:prop>
 <d:prop><d:getcontentlength/></d:prop>
 <d:prop><d:resourcetype/></d:prop>
 <d:prop><d:iscollection/></d:prop>
</d:propfind>
might look like the following:
<?xml version='1.0'?>
<a:multistatus
  xmlns:a="DAV:"
  xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/"
>
<a:response>
<a:href>http://example.com/path/resource.eml</a:href>
<a:propstat>
  <a:status>HTTP/1.1 OK</a:status>
  <a:prop>
    <a:displayname>resource.eml</a:displayname>
    <a:getcontentlength>367</a:getcontentlength>
    <a:resourcetype><a:collection/></a:resourcetype>
    <a:iscollection b:dt="boolean">0</a:iscollection>
  </a:prop>
</a:propstat>
In this example, displayname Field, getcontentlength Field, resourcetype Field, and iscollection Field were requested for the item at the URL "http://example.com/path/resource.eml". Note that the prefixes ("a" and "d") used as placeholders for the "DAV:" URI are different in the two XML strings. The following table shows full names and example-scoped XML elements side by side.
Note
The prefix used as a placeholder for the namespace URI is random and always refers to a namespace URI.
| Full name | Example-scoped XML element | 
|---|---|
| DAV:resourcetype | <a:resourcetype xmlns:a="DAV:"/> | 
| DAV:iscollection | <b:iscollection xmlns:b="DAV:"/> | 
| DAV:getcontentlength | <c:getcontentlength xmlns:c:="DAV:"/> | 
| DAV:iscollection | <d:iscollection xmlns:d="DAV:"/> |