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