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:"/>