Network Working Group                             J. Stracke, eCal Corp.
INTERNET DRAFT
<draft-ietf-webdav-propfind-space-00.txt>
Expires April, 2000                                      August 10, 1999

          WebDAV PROPFIND Extension To List Specified Namespaces

1 Status of this Document

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as ``work in progress.''

   The list of current Internet-Drafts can be accessed at
   <http://www.ietf.org/ietf/1id-abstracts.txt>

   The list of Internet-Draft Shadow Directories can be accessed at
   <http://www.ietf.org/shadow.html>

   Distribution of this document is unlimited. Please send comments to
   francis@ecal.com or to the w3c-dist-auth@w3.org discussion list.

2 Abstract

   This document specifies an extension to the [WEBDAV] PROPFIND method
   to permit a WebDAV client to request all properties which belong to a
   specified namespace or namespaces.

3 Introduction

   This document specifies an extension to the [WEBDAV] PROPFIND method
   to permit a WebDAV client to request all properties which belong to a
   specified namespace or namespaces.

   A WebDAV application using a custom namespace for
   application-specific data may occasionally need to use PROPFIND to
   list all a resource's properties from that namespace. (Similarly, a
   WebDAV client might need to know all DAV: properties, but not care
   about non-standard properties.) In such a case, the client must
   choose between the <allprop> element, which will retrieve all
   properties on the resource, and the <prop> element, which will
   retrieve specified properties only. The problem with <allprop> is
   that the resource may have many properties from other namespaces, in
   which the application is not interested. The problem with <prop> is
   that the client may not know all the property names which may be
   present (for example, if the client is too general-purpose to permit
   it to be configured with the list of property names, or if property
   name munging is being used). A third choice would be to use

Stracke                                                       [Page 1]


INTERNET-DRAFT       WebDAV PROPFIND Namespace List      August 10, 1999

   <propname> to list all the resource's properties without their
   contents, then use <prop> with just the properties in the desired
   namespace; the problem with this approach is that it requires an
   extra HTTP request.

   This document proposes a middle ground, an extension to <allprop> and
   <propname> which provides a list of namespaces to search.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [MUSTS] .

4 Extension definition

   Two new XML elements are proposed, <namespace> and <namespaces>. In
   the idiom of [WEBDAV]:

4.1 namespaces XML Element

   Name: namespaces

   Namespace: DAV:

   Purpose: The namespaces XML element specifies that the enclosing
   allprop or propname element applies only to properties belonging to
   the namespaces listed in the enclosed namespace elements.

4.2 namespace XML Element

   Name: namespace

   Namespace: DAV:

   Purpose: The namespace XML element specifies a namespace in the
   namespaces list. <namespace> appears inside <namespaces>, and has a
   single attribute, uri, the URI of the namespace.

5 Examples

5.1 Fetching all DAV: properties

   Request:
         PROPFIND /index.html HTTP/1.1
         Host: www.example.com
         Content-Length: xxxx
         Content-Type: text/xml

         <D:propfind xmlns:D="DAV:">
         <D:allprop>
         <D:namespaces>
         <D:namespace uri="DAV:"/>
         </D:namespaces>
         </D:allprop>

Stracke                                                 [Page 2]


INTERNET-DRAFT       WebDAV PROPFIND Namespace List      August 10, 1999

         </D:propfind>


   Response:
         HTTP/1.1 200 OK
         Content-Type: text/xml
         Content-Length: xxxx

         <D:prop xmlns:D="DAV:">
         <D:lockentry>
         <D:lockscope><D:exclusive/></D:lockscope>
         <D:locktype><D:write/></D:locktype>
         </D:lockentry>

         <D:lockentry>
         <D:lockscope><D:shared/></D:lockscope>
         <D:locktype><D:write/></D:locktype>
         </D:lockentry>

         <D:creationdate>1999-08-11T12:12:12Z</D:creationdate>
         <D:displayname>Example.com, The Fictious Site!</D:displayname>
         <D:getcontentlength>17</D:getcontentlength>
         <D:getcontenttype>text/html</D:getcontenttype>
         <D:getetag>xyzzy</D:getetag>
         <D:getlastmodified>1999-08-11T12:12:14Z</D:getlastmodified>
         <D:resourcetype></D:resourcetype>

         </D:supportedlock>

         </D:prop>


5.2 Listing names of properties in two namespaces

   Request:
         PROPFIND /index.html HTTP/1.1
         Host: www.example.com
         Content-Length: xxxx
         Content-Type: text/xml

         <D:propfind xmlns:D="DAV:">
         <D:propname>
         <D:namespaces>
         <D:namespace uri="http://foo.example.com"/>
         <D:namespace uri="mailto:fred@example.com"/>
         </D:namespaces>
         </D:propfind>
         </D:propname>


   Response:
         <D:prop xmlns:D="DAV:"
         xmlns:F="http://foo.example.com"

Stracke                                                 [Page 3]


INTERNET-DRAFT       WebDAV PROPFIND Namespace List      August 10, 1999

         xmlns:M="mailto:fred@example.com">
         <F:bar/>
         <M:fred/>
         </D:prop>


6 Compatibility Considerations

   Section 14 of [WEBDAV] specifies:

         "All DAV compliant resources MUST ignore any unknown XML
         element and all its children encountered while processing a DAV
         method that uses XML as its command language."

   As a result, a client which uses <D:namespaces> on a server which
   does not support it will get the base-level DAV behavior (listing all
   properties), exactly as if it had issued a base-level DAV request.
   Therefore, a client which sends PROPFIND requests using
   <D:namespaces> MUST accept responses which include properties not in
   the listed namespace(s).

   Of course, it is always risky assuming that all implementations of a
   young standard adhere to all points of the standard. In this case,
   the risk is mitigated by the fact that section 23.3.2.2 of [WEBDAV]
   presents a (hypothetical) similar extension, <E:leave-out>, and
   states:

         "If the previous example were submitted to a server unfamiliar
         with leave-out, the only result would be that the leave-out
         element would be ignored and a propname would be executed."

   Nevertheless, since there may be some servers which, for whatever
   reason, violate this prescription (say, if they attempt to validate
   the XML request against the DTD in section 23.2 of [WEBDAV] ), a
   client which uses <D:namespaces> SHOULD be aware that it may receive
   a 400 Bad Request from such a server, and SHOULD be able to retry the
   request without using <D:namespaces>.

7 Internationalization Considerations

   This proposal builds on [WEBDAV], and inherits its
   internationalizability.

8 IANA Considerations

   This proposal does not introduce any new IANA considerations, since
   it does not specify any new namespaces (in the general sense), but
   merely uses existing ones.

9 Security Considerations

   For a server, this proposal does not introduce any new security
   considerations over those of [WEBDAV], since the information which is

Stracke                                                       [Page 4]


INTERNET-DRAFT       WebDAV PROPFIND Namespace List      August 10, 1999

   exposed is already available. There might be privacy considerations
   for a client, since telling the server which namespaces one wishes to
   search does reveal some information. Implementors must balance this
   concern against the efficiency gains this proposal offers.

10 Copyright

   The following copyright notice is copied from RFC 2026 [Bradner,
   1996], section 10.4, and describes the applicable copyright for this
   document.

   Copyright (C) The Internet Society April 5, 1998. All Rights
   Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

11 Intellectual Property

   The following notice is copied from RFC 2026 [Bradner, 1996], section
   10.4, and describes the position of the IETF concerning intellectual
   property claims made against this document.

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use other technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights. Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11. Copies of
   claims of rights made available for publication and any assurances of

Stracke                                                       [Page 5]


INTERNET-DRAFT       WebDAV PROPFIND Namespace List      August 10, 1999

   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard. Please address the information to the IETF Executive
   Director.

12 Acknowledgements

   Some of the PROPFIND syntax in the examples was copied from examples
   in [WEBDAV].

13 References

   [WEBDAV] Y. Y. Goland, E. J. Whitehead, Jr., A. Faizi, S. R. Carter,
   D. Jensen, "Extensions for Distributed Authoring on the World Wide
   Web - WebDAV." RFC 2518. Microsoft, U.C. Irvine, Netscape, Novell.
   April, 1998.

   [MUSTS] Bradner, S., "Key words for use in RFCs to Indicate
   Requirement Levels," BCP 14, RFC 2119, Harvard University, March
   1997.

14 Author's Address

   J. Stracke
   eCal Corp.
   234 N. Columbus Blvd., 2nd Floor
   francis@ecal.com




















Stracke                                                          [Page 6]