- From: John Stracke <francis@ecal.com>
- Date: Wed, 11 Aug 1999 13:46:22 -0400
- To: WebDAV WG <w3c-dist-auth@w3.org>
- Message-ID: <37B1B6EE.E6CCB844@ecal.com>
I'm working on a WebDAV-based app (it's not a normal content management scenario, but DAV functionality turned out to be useful), and I encountered a case where I needed to extend PROPFIND so that it could list all the properties in a given namespace or namespaces. It occurred to me that such a mechanism might be more generally applicable, so I've written up a Draft (attached; also available at <http://barrayar.ecal.com/ietf/dav/>) proposing it. I'd appreciate any comments. (I'm afraid I can't talk about why I needed this just yet, but I did include a couple of other scenarios in the Draft.) -- /=============================================================\ |John Stracke | My opinions are my own | S/MIME & HTML OK | |francis@ecal.com|============================================| |Chief Scientist | NT's lack of reliability is only surpassed | |eCal Corp. | by its lack of scalability. -- John Kirch | \=============================================================/
Network Working Group J. Stracke, eCal Corp. INTERNET DRAFT <draft-stracke-webdav-propfind-space-00> 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> which provides a list of namespaces to search. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALLNOT", "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]
Received on Wednesday, 11 August 1999 13:46:40 UTC