Proposal for narrowing PROPFINDs a bit

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月11日T12: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月11日T12: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

AltStyle によって変換されたページ (->オリジナル) /