| draft-ietf-webdav-ordering-protocol-04.txt | draft-ietf-webdav-ordering-protocol-05.txt | |||
|---|---|---|---|---|
| Network Working Group J. Slein | Network Working Group J. Slein | |||
| Internet Draft Xerox | Internet Draft Xerox | |||
| Expires: July 2003 J. Whitehead | Expires: August 2003 J. Whitehead | |||
| U.C. Santa Cruz | U.C. Santa Cruz | |||
| J. Crawford | J. Crawford | |||
| IBM | IBM | |||
| J. F. Reschke | J. F. Reschke | |||
| greenbytes | greenbytes | |||
| January 2003 | February 2003 | |||
| WebDAV Ordered Collections Protocol | WebDAV Ordered Collections Protocol | |||
| draft-ietf-webdav-ordering-protocol-04 | draft-ietf-webdav-ordering-protocol-05 | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026. Internet-Drafts are working | all provisions of Section 10 of RFC2026. Internet-Drafts are working | |||
| documents of the Internet Engineering Task Force (IETF), its areas, | documents of the Internet Engineering Task Force (IETF), its areas, | |||
| and its working groups. Note that other groups may also distribute | and its working groups. Note that other groups may also distribute | |||
| working documents as Internet-Drafts. | working documents as Internet-Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress". | material or to cite them other than as "work in progress". | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire in July 2003. | This Internet-Draft will expire in August 2003. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2003). All Rights Reserved. | |||
| Abstract | Abstract | |||
| This specification extends the WebDAV Distributed Authoring Protocol | This specification extends the WebDAV Distributed Authoring Protocol | |||
| to support server-side ordering of collection members. Of particular | to support server-side ordering of collection members. Of particular | |||
| interest are orderings that are not based on property values, and so | interest are orderings that are not based on property values, and so | |||
| skipping to change at page 3, line 14 ¶ | skipping to change at page 3, line 14 ¶ | |||
| Table of Contents | Table of Contents | |||
| Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 | Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 | |||
| Table of Contents . . . . . . . . . . . . . . . . . . . . . . 3 | Table of Contents . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1 Notational Conventions . . . . . . . . . . . . . . . . . . . 4 | 1 Notational Conventions . . . . . . . . . . . . . . . . . . . 4 | |||
| 2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4 Overview of Ordered Collections . . . . . . . . . . . . . . 7 | 4 Overview of Ordered Collections . . . . . . . . . . . . . . 7 | |||
| 4.1 Additional Collection properties . . . . . . . . . . . . 7 | 4.1 Additional Collection properties . . . . . . . . . . . . 7 | |||
| 4.1.1 DAV:orderingtype (protected) . . . . . . . . . . . . 8 | 4.1.1 DAV:ordering-type (protected) . . . . . . . . . . . 8 | |||
| 5 Creating an Ordered Collection . . . . . . . . . . . . . . . 9 | 5 Creating an Ordered Collection . . . . . . . . . . . . . . . 9 | |||
| 5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.2 Example: Creating an Ordered Collection . . . . . . . . 10 | 5.2 Example: Creating an Ordered Collection . . . . . . . . 10 | |||
| 6 Setting the Position of a Collection Member . . . . . . . . 11 | 6 Setting the Position of a Collection Member . . . . . . . . 11 | |||
| 6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . 11 | 6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6.2 Examples: Setting the Position of a Collection Member . 12 | 6.2 Examples: Setting the Position of a Collection Member . 12 | |||
| 7 Changing a Collection Ordering: ORDERPATCH method . . . . . 14 | 7 Changing a Collection Ordering: ORDERPATCH method . . . . . 14 | |||
| 7.1 Example: Changing a Collection Ordering . . . . . . . . 16 | 7.1 Example: Changing a Collection Ordering . . . . . . . . 16 | |||
| 7.2 Example: Failure of an ORDERPATCH Request . . . . . . . 18 | 7.2 Example: Failure of an ORDERPATCH Request . . . . . . . 17 | |||
| 8 Listing the Members of an Ordered Collection . . . . . . . . 20 | 8 Listing the Members of an Ordered Collection . . . . . . . . 20 | |||
| 8.1 Example: PROPFIND on an Ordered Collection . . . . . . . 20 | 8.1 Example: PROPFIND on an Ordered Collection . . . . . . . 20 | |||
| 9 Relationship to versioned collections . . . . . . . . . . . 24 | 9 Relationship to versioned collections . . . . . . . . . . . 24 | |||
| 9.1 Additional semantics for collection version properties . 24 | 9.1 Additional semantics for collection version properties . 24 | |||
| 10 Capability Discovery . . . . . . . . . . . . . . . . . . . 25 | 10 Capability Discovery . . . . . . . . . . . . . . . . . . . 25 | |||
| 10.1 Example: Using OPTIONS for the Discovery of Support for | 10.1 Example: Using OPTIONS for the Discovery of Support for | |||
| Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 10.2 Example: Using Live Properties for the Discovery of | 10.2 Example: Using Live Properties for the Discovery of | |||
| Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 11 Security Considerations . . . . . . . . . . . . . . . . . . 28 | 11 Security Considerations . . . . . . . . . . . . . . . . . . 28 | |||
| 11.1 Denial of Service and DAV:orderingtype . . . . . . . . 28 | 11.1 Denial of Service and DAV:ordering-type . . . . . . . . 28 | |||
| 12 Internationalization Considerations . . . . . . . . . . . . 29 | 12 Internationalization Considerations . . . . . . . . . . . . 29 | |||
| 13 IANA Considerations . . . . . . . . . . . . . . . . . . . . 30 | 13 IANA Considerations . . . . . . . . . . . . . . . . . . . . 30 | |||
| 14 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . 31 | 14 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 15 Intellectual Property . . . . . . . . . . . . . . . . . . . 32 | 15 Intellectual Property . . . . . . . . . . . . . . . . . . . 32 | |||
| 16 Acknowledgements . . . . . . . . . . . . . . . . . . . . . 33 | 16 Acknowledgements . . . . . . . . . . . . . . . . . . . . . 33 | |||
| Normative References . . . . . . . . . . . . . . . . . . . . . 34 | Normative References . . . . . . . . . . . . . . . . . . . . . 34 | |||
| Author's Addresses . . . . . . . . . . . . . . . . . . . . . . 34 | Author's Addresses . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| A Extensions to the WebDAV Document Type Definition . . . . . 36 | A Extensions to the WebDAV Document Type Definition . . . . . 36 | |||
| B Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 37 | B Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| B.1 Since draft-ietf-webdav-ordering-protocol dated December | B.1 Since draft-ietf-webdav-ordering-protocol dated December | |||
| 1999 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 | 1999 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| B.2 Since draft-ietf-webdav-ordering-protocol-02 . . . . . . 37 | B.2 Since draft-ietf-webdav-ordering-protocol-02 . . . . . . 37 | |||
| B.3 Since draft-ietf-webdav-ordering-protocol-03 . . . . . . 37 | B.3 Since draft-ietf-webdav-ordering-protocol-03 . . . . . . 37 | |||
| Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | B.4 Since draft-ietf-webdav-ordering-protocol-04 . . . . . . 38 | |||
| Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
| 1 Notational Conventions | 1 Notational Conventions | |||
| Since this document describes a set of extensions to the WebDAV | Since this document describes a set of extensions to the WebDAV | |||
| Distributed Authoring Protocol [RFC2518], itself an extension to the | Distributed Authoring Protocol [RFC2518], itself an extension to the | |||
| HTTP/1.1 protocol, the augmented BNF used here to describe protocol | HTTP/1.1 protocol, the augmented BNF used here to describe protocol | |||
| elements is exactly the same as described in Section 2.1 of HTTP | elements is exactly the same as described in Section 2.1 of HTTP | |||
| [RFC2616]. Since this augmented BNF uses the basic production rules | [RFC2616]. Since this augmented BNF uses the basic production rules | |||
| provided in Section 2.2 of HTTP, these rules apply to this document | provided in Section 2.2 of HTTP, these rules apply to this document | |||
| as well. | as well. | |||
| skipping to change at page 5, line 40 ¶ | skipping to change at page 5, line 40 ¶ | |||
| designed to allow support to be added in the future for orderings | designed to allow support to be added in the future for orderings | |||
| that are maintained automatically by the server. | that are maintained automatically by the server. | |||
| The remainder of this document is structured as follows: section 3 | The remainder of this document is structured as follows: section 3 | |||
| defines terminology that will be used throughout the specification. | defines terminology that will be used throughout the specification. | |||
| Section 4 provides an overview of ordered collections. Section 5 | Section 4 provides an overview of ordered collections. Section 5 | |||
| describes how to create an ordered collection, and section 6 | describes how to create an ordered collection, and section 6 | |||
| discusses how to set a member's position in the ordering of a | discusses how to set a member's position in the ordering of a | |||
| collection. Section 7 explains how to change a collection ordering. | collection. Section 7 explains how to change a collection ordering. | |||
| Section 8 discusses listing the members of an ordered collection. | Section 8 discusses listing the members of an ordered collection. | |||
| section 9 discusses the impact on version-controlled collections (as | Section 9 discusses the impact on version-controlled collections (as | |||
| defined in [RFC3253]. Section 10 describes capability discovery. | defined in [RFC3253]. Section 10 describes capability discovery. | |||
| Section 11 through section 13 discuss security, internationalization, | Section 11 through section 13 discuss security, internationalization, | |||
| and IANA considerations. The remaining sections provide supporting | and IANA considerations. The remaining sections provide supporting | |||
| information. | information. | |||
| 3 Terminology | 3 Terminology | |||
| The terminology used here follows that in [RFC2518]and [RFC3253]. | The terminology used here follows that in [RFC2518] and [RFC3253]. | |||
| Definitions of the terms resource, Uniform Resource Identifier (URI), | Definitions of the terms resource, Uniform Resource Identifier (URI), | |||
| and Uniform Resource Locator (URL) are provided in [RFC2396]. | and Uniform Resource Locator (URL) are provided in [RFC2396]. | |||
| Ordered Collection | Ordered Collection | |||
| A collection for which the results from a PROPFIND request are | A collection for which the results from a PROPFIND request are | |||
| guaranteed to be in the order specified for that collection | guaranteed to be in the order specified for that collection | |||
| Unordered Collection | Unordered Collection | |||
| skipping to change at page 8, line 5 ¶ | skipping to change at page 8, line 5 ¶ | |||
| An ordering is considered to be part of the state of a collection | An ordering is considered to be part of the state of a collection | |||
| resource. Consequently, the ordering is the same no matter which URI | resource. Consequently, the ordering is the same no matter which URI | |||
| is used to access the collection and is protected by locks or access | is used to access the collection and is protected by locks or access | |||
| control constraints on the collection. | control constraints on the collection. | |||
| 4.1 Additional Collection properties | 4.1 Additional Collection properties | |||
| A DAV:allprop PROPFIND request SHOULD NOT return any of the | A DAV:allprop PROPFIND request SHOULD NOT return any of the | |||
| properties defined in this document. | properties defined in this document. | |||
| 4.1.1 DAV:orderingtype (protected) | 4.1.1 DAV:ordering-type (protected) | |||
| Indicates whether the collection is ordered and, if so, uniquely | Indicates whether the collection is ordered and, if so, uniquely | |||
| identifies the semantics of the ordering being used. May also point | identifies the semantics of the ordering being used. May also point | |||
| to an explanation of the semantics in human and / or machine-readable | to an explanation of the semantics in human and / or machine-readable | |||
| form. At a minimum, this allows human users who add members to the | form. At a minimum, this allows human users who add members to the | |||
| collection to understand where to position them in the ordering. This | collection to understand where to position them in the ordering. This | |||
| property cannot be set using PROPPATCH. Its value can only be set by | property cannot be set using PROPPATCH. Its value can only be set by | |||
| including the Ordered header with a MKCOL request or by submitting an | including the Ordering-Type header with a MKCOL request or by | |||
| ORDERPATCH request. | submitting an ORDERPATCH request. | |||
| The value DAV:unordered indicates that the collection is not ordered. | ||||
| That is, the client cannot depend on the repeatability of the | ||||
| ordering of results from a PROPFIND request. | ||||
| The value DAV:custom indicates that the collection is ordered, but | Ordering types are identified by URIs that uniquely identify the | |||
| the semantics governing the ordering are not being advertised. | semantics of the collection's ordering. Two following two URIs are | |||
| predefined: | ||||
| If the value is a DAV:href element, it contains a URI that uniquely | DAV:custom The value DAV:custom indicates that the collection is | |||
| identifies the semantics of the collection's ordering. | ordered, but the semantics governing the ordering are | |||
| not being advertised. | ||||
| DAV:unordered The value DAV:unordered indicates that the collection | ||||
| is not ordered. That is, the client cannot depend on | ||||
| the repeatability of the ordering of results from a | ||||
| PROPFIND request. | ||||
| An ordering-aware client interacting with an ordering-unaware server | An ordering-aware client interacting with an ordering-unaware server | |||
| (e.g., one that is implemented only according to [RFC2518]) SHOULD | (e.g., one that is implemented only according to [RFC2518]) SHOULD | |||
| assume that if a collection does not have the DAV:orderingtype | assume that if a collection does not have the DAV:ordering-type | |||
| property, the collection is unordered. | property, the collection is unordered. | |||
| <!ELEMENT orderingtype (unordered | custom | href) > | <!ELEMENT ordering-type (href) > | |||
| <!ELEMENT custom EMPTY > | ||||
| <!ELEMENT unordered EMPTY > | ||||
| 5 Creating an Ordered Collection | 5 Creating an Ordered Collection | |||
| 5.1 Overview | 5.1 Overview | |||
| When a collection is created, the client MAY request that it be | When a collection is created, the client MAY request that it be | |||
| ordered and specify the semantics of the ordering by using the new | ordered and specify the semantics of the ordering by using the new | |||
| Ordered header (defined below) with a MKCOL request. | Ordering-Type header (defined below) with a MKCOL request. | |||
| For collections that are ordered, the client SHOULD identify the | For collections that are ordered, the client SHOULD identify the | |||
| semantics of the ordering with a URI in the Ordered header, although | semantics of the ordering with a URI in the Ordering-Type header, | |||
| the client MAY simply set the header value to DAV:custom to indicate | although the client MAY simply set the header value to DAV:custom to | |||
| that the collection is ordered but the semantics of the ordering are | indicate that the collection is ordered but the semantics of the | |||
| not being advertised. Setting the value to a URI that identifies the | ordering are not being advertised. Setting the value to a URI that | |||
| ordering semantics provides the information a human user or software | identifies the ordering semantics provides the information a human | |||
| package needs to insert new collection members into the ordering | user or software package needs to insert new collection members into | |||
| intelligently. Although the URI in the Ordered header MAY point to a | the ordering intelligently. Although the URI in the Ordering-Type | |||
| resource that contains a definition of the semantics of the ordering, | header MAY point to a resource that contains a definition of the | |||
| clients SHOULD NOT access that resource, in order to avoid | semantics of the ordering, clients SHOULD NOT access that resource, | |||
| overburdening its server. A value of DAV:unordered in the Ordering | in order to avoid overburdening its server. A value of DAV:unordered | |||
| header indicates that the client wants the collection to be | in the Ordering-Type header indicates that the client wants the | |||
| unordered. If the Ordered header is not present, the collection will | collection to be unordered. If the Ordering-Type header is not | |||
| be unordered. | present, the collection will be unordered. | |||
| Additional Marshalling: | Additional Marshalling: | |||
| Ordered = "Ordered" ":" ("DAV:unordered" | "DAV:custom" | Coded-url) | Ordering-Type = "Ordering-Type" ":" absoluteURI | |||
| ; absoluteURI: see RFC2396, section 3 | ||||
| A value of "DAV:unordered" indicates that the collection is not | The URI "DAV:unordered" indicates that the collection is not | |||
| ordered. A value of "DAV:custom" indicates that the collection is | ordered, while "DAV:custom" indicates that the collection is to be | |||
| to be ordered, but the semantics of the ordering is not being | ordered, but the semantics of the ordering is not being | |||
| advertised. Any other Coded-url value indicates that the | advertised. Any other URI value indicates that the collection is | |||
| collection is ordered, and identifies the semantics of the | ordered, and identifies the semantics of the ordering. | |||
| ordering. | ||||
| Additional Preconditions: | Additional Preconditions: | |||
| (DAV:ordered-collections-supported): the server must support | (DAV:ordered-collections-supported): the server must support | |||
| ordered collections where the new collection is to be created. | ordered collections where the new collection is to be created. | |||
| Additional Postconditions: | Additional Postconditions: | |||
| (DAV:orderdingtype-set): the collection was created with the | (DAV:ordering-type-set): the collection was created with the | |||
| specified ordering semantics. | specified ordering semantics. | |||
| 5.2 Example: Creating an Ordered Collection | 5.2 Example: Creating an Ordered Collection | |||
| >> Request: | >> Request: | |||
| MKCOL /theNorth/ HTTP/1.1 | MKCOL /theNorth/ HTTP/1.1 | |||
| Host: example.org | Host: example.org | |||
| Ordered: <http://example.org/orderings/compass.html> | Ordering-Type: http://example.org/orderings/compass.html | |||
| >> Response: | >> Response: | |||
| HTTP/1.1 201 Created | HTTP/1.1 201 Created | |||
| In this example a new, ordered collection was created. Its | In this example a new, ordered collection was created. Its | |||
| DAV:orderingtype property has as its value the URI from the Ordered | DAV:ordering-type property has as its value the URI from the | |||
| header, http://example.org/orderings/compass.html. In this case, the | Ordering-Type header, http://example.org/orderings/compass.html. In | |||
| URI identifies the semantics governing a client-maintained ordering. | this case, the URI identifies the semantics governing a client- | |||
| As new members are added to the collection, clients or end users can | maintained ordering. As new members are added to the collection, | |||
| use the semantics to determine where to position the new members in | clients or end users can use the semantics to determine where to | |||
| the ordering. | position the new members in the ordering. | |||
| 6 Setting the Position of a Collection Member | 6 Setting the Position of a Collection Member | |||
| 6.1 Overview | 6.1 Overview | |||
| When a new member is added to a collection with a client-maintained | When a new member is added to a collection with a client-maintained | |||
| ordering (for example, with PUT, COPY, or MKCOL), its position in the | ordering (for example, with PUT, COPY, or MKCOL), its position in the | |||
| ordering can be set with the new Position header. The Position header | ordering can be set with the new Position header. The Position header | |||
| allows the client to specify that an internal member URI should be | allows the client to specify that an internal member URI should be | |||
| first in the collection's ordering, last in the collection's | first in the collection's ordering, last in the collection's | |||
| skipping to change at page 11, line 30 ¶ | skipping to change at page 11, line 30 ¶ | |||
| o If the request is replacing an existing resource, the server MUST | o If the request is replacing an existing resource, the server MUST | |||
| preserve the present ordering. | preserve the present ordering. | |||
| o If the request is adding a new internal member URI to the | o If the request is adding a new internal member URI to the | |||
| collection, the server MUST append the new member to the end of | collection, the server MUST append the new member to the end of | |||
| the ordering. | the ordering. | |||
| Additional Marshalling: | Additional Marshalling: | |||
| Position = "Position" ":" ("first" | "last" | | Position = "Position" ":" ("first" | "last" | | |||
| (("before" | "after") segment)) | (("before" | "after") segment)) | |||
| segment is defined in Section 3.3 of [RFC2396]. | segment is defined in Section 3.3 of [RFC2396]. | |||
| The segment is interpreted relative to the collection to which the | The segment is interpreted relative to the collection to which the | |||
| new member is being added. | new member is being added. | |||
| The server MUST insert the new member into the ordering at the | The server MUST insert the new member into the ordering at the | |||
| location specified in the Position header, if one is present (and | location specified in the Position header, if one is present (and | |||
| if the collection is ordered). | if the collection is ordered). | |||
| skipping to change at page 14, line 33 ¶ | skipping to change at page 14, line 33 ¶ | |||
| server assigned positions. | server assigned positions. | |||
| If an ORDERPATCH request does not change the ordering semantics, any | If an ORDERPATCH request does not change the ordering semantics, any | |||
| member positions not specified in the request MUST remain unchanged. | member positions not specified in the request MUST remain unchanged. | |||
| A request to reposition a collection member at the same place in the | A request to reposition a collection member at the same place in the | |||
| ordering is not an error. | ordering is not an error. | |||
| Additional Marshalling: | Additional Marshalling: | |||
| The request body MUST be DAV:order element. | The request body MUST be DAV:orderpatch element. | |||
| <!ELEMENT order (orderingtype?, ordermember*) > | <!ELEMENT orderpatch (ordering-type?, ordermember*) > | |||
| <!ELEMENT ordermember (href, position) > | <!ELEMENT ordermember (segment, position) > | |||
| <!ELEMENT position (first | last | before | after)> | <!ELEMENT position (first | last | before | after)> | |||
| <!ELEMENT first EMPTY > | <!ELEMENT segment (#PCDATA)> | |||
| <!ELEMENT last EMPTY > | <!ELEMENT first EMPTY > | |||
| <!ELEMENT before segment > | <!ELEMENT last EMPTY > | |||
| <!ELEMENT after segment > | <!ELEMENT before segment > | |||
| <!ELEMENT segment (#PCDATA)> | <!ELEMENT after segment > | |||
| PCDATA value: segment, as defined in section 3.3 of [RFC2396]. | PCDATA value: segment, as defined in section 3.3 of [RFC2396]. | |||
| DAV:href value: segment part of collection member. | The DAV:ordering-type property is modified according to the | |||
| DAV:ordering-type element. | ||||
| The DAV:orderingtype property is modified according to the | ||||
| DAV:orderingtype element. | ||||
| The ordering of internal member URIs in the collection identified | The ordering of internal member URIs in the collection identified | |||
| by the Request-URI is changed based on instructions in the | by the Request-URI is changed based on instructions in the | |||
| ordermember XML elements. The ordermember XML elements identify | ordermember XML elements. The ordermember XML elements identify | |||
| the internal member URIs whose positions are to be changed, and | the internal member URIs whose positions are to be changed, and | |||
| describe their new positions in the ordering. Each new position | describe their new positions in the ordering. Each new position | |||
| can be specified as first in the ordering, last in the ordering, | can be specified as first in the ordering, last in the ordering, | |||
| immediately before some other internal member URI, or immediately | immediately before some other internal member URI, or immediately | |||
| after some other internal member URI. | after some other internal member URI. | |||
| skipping to change at page 15, line 32 ¶ | skipping to change at page 15, line 32 ¶ | |||
| the DAV:orderpatch-response element is defined to ensure | the DAV:orderpatch-response element is defined to ensure | |||
| interoperability between future extensions that do define elements | interoperability between future extensions that do define elements | |||
| for the ORDERPATCH response body. | for the ORDERPATCH response body. | |||
| <!ELEMENT orderpatch-response ANY> | <!ELEMENT orderpatch-response ANY> | |||
| Since multiple changes can be requested in a single ORDERPATCH | Since multiple changes can be requested in a single ORDERPATCH | |||
| request, if any problems are encountered, the server MUST return a | request, if any problems are encountered, the server MUST return a | |||
| 207 (Multi-Status) response (defined in [RFC2518]), containing | 207 (Multi-Status) response (defined in [RFC2518]), containing | |||
| DAV:response elements for either the request-URI (when the | DAV:response elements for either the request-URI (when the | |||
| DAV:orderingtype could not be modified) or URIs of collection | DAV:ordering-type could not be modified) or URIs of collection | |||
| members to be repositioned (when an invidual positioning request | members to be repositioned (when an individual positioning request | |||
| expressed as DAV:ordermember could not be fulfilled). | expressed as DAV:ordermember could not be fulfilled). | |||
| Preconditions: | Preconditions: | |||
| (DAV:collection-must-be-ordered): see section 6.1. | (DAV:collection-must-be-ordered): see section 6.1. | |||
| (DAV:segment-must-identify-member): see section 6.1. | (DAV:segment-must-identify-member): see section 6.1. | |||
| Postconditions: | Postconditions: | |||
| (DAV:orderdingtype-set): if the request body contained a | (DAV:orderding-type-set): if the request body contained a | |||
| DAV:orderingtype element, the DAV:orderingtype property (see | DAV:ordering-type element, the DAV:ordering-type property (see | |||
| section 4.1.1) of the collection identified by the request-URI was | section 4.1.1) of the collection identified by the request-URI was | |||
| set accordingly. | set accordingly. | |||
| (DAV:orderding-modified): if the request body contained | (DAV:orderding-modified): if the request body contained | |||
| DAV:ordermember elements, the ordering of internal member URIs in | DAV:ordermember elements, the ordering of internal member URIs in | |||
| the collection identified by the request-URI has been changed | the collection identified by the request-URI has been changed | |||
| based on instructions in the DAV:ordermember elements. | based on instructions in the DAV:ordermember elements. | |||
| 7.1 Example: Changing a Collection Ordering | 7.1 Example: Changing a Collection Ordering | |||
| Consider a collection /coll-1/ whose DAV:orderingtype is DAV:whim, | Consider a collection /coll-1/ whose DAV:ordering-type is DAV:whim, | |||
| with bindings ordered as follows: | with bindings ordered as follows: | |||
| three.html | three.html | |||
| four.html | four.html | |||
| one.html | one.html | |||
| two.html | two.html | |||
| >> Request: | >> Request: | |||
| ORDERPATCH /coll-1/ HTTP/1.1 | ORDERPATCH /coll-1/ HTTP/1.1 | |||
| Host: example.org | Host: example.org | |||
| Content-Type: text/xml; charset="utf-8" | Content-Type: text/xml; charset="utf-8" | |||
| Content-Length: xxx | Content-Length: xxx | |||
| <?xml version="1.0" ?> | <?xml version="1.0" ?> | |||
| <d:order xmlns:d="DAV:"> | <d:orderpatch xmlns:d="DAV:"> | |||
| <d:orderingtype> | <d:ordering-type> | |||
| <d:href>http://example.org/inorder.ord</d:href> | <d:href>http://example.org/inorder.ord</d:href> | |||
| </d:orderingtype> | </d:ordering-type> | |||
| <d:ordermember> | <d:ordermember> | |||
| <d:href>two.html</d:href> | <d:segment>two.html</d:segment> | |||
| <d:position> | <d:position><d:first/></d:position> | |||
| <d:first/> | ||||
| </d:position> | ||||
| </d:ordermember> | </d:ordermember> | |||
| <d:ordermember> | <d:ordermember> | |||
| <d:href>one.html</d:href> | <d:segment>one.html</d:segment> | |||
| <d:position> | <d:position><d:first/></d:position> | |||
| <d:first/> | ||||
| </d:position> | ||||
| </d:ordermember> | </d:ordermember> | |||
| <d:ordermember> | <d:ordermember> | |||
| <d:href>three.html</d:href> | <d:segment>three.html</d:segment> | |||
| <d:position> | <d:position><d:last/></d:position> | |||
| <d:last/> | ||||
| </d:position> | ||||
| </d:ordermember> | </d:ordermember> | |||
| <d:ordermember> | <d:ordermember> | |||
| <d:href>four.html</d:href> | <d:segment>four.html</d:segment> | |||
| <d:position> | <d:position><d:last/></d:position> | |||
| <d:last/> | ||||
| </d:position> | ||||
| </d:ordermember> | </d:ordermember> | |||
| </d:order> | </d:orderpatch> | |||
| >> Response: | >> Response: | |||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| In this example, after the request has been processed, the | In this example, after the request has been processed, the | |||
| collection's ordering semantics are identified by the URI | collection's ordering semantics are identified by the URI | |||
| http://example.org/inorder.ord. The value of the collection's | http://example.org/inorder.ord. The value of the collection's | |||
| DAV:orderingtype property has been set to this URI. The request also | DAV:ordering-type property has been set to this URI. The request also | |||
| contains instructions for changing the positions of the collection's | contains instructions for changing the positions of the collection's | |||
| internal member URIs in the ordering to comply with the new ordering | internal member URIs in the ordering to comply with the new ordering | |||
| semantics. If href elements are relative URIs, as in this example, | semantics. If href elements are relative URIs, as in this example, | |||
| they are interpreted relative to the collection whose ordering is | they are interpreted relative to the collection whose ordering is | |||
| being modified. The DAV:ordermember elements are required to be | being modified. The DAV:ordermember elements are required to be | |||
| processed in the order they appear in the request. Consequently, | processed in the order they appear in the request. Consequently, | |||
| two.html is moved to the beginning of the ordering, and then one.html | two.html is moved to the beginning of the ordering, and then one.html | |||
| is moved to the beginning of the ordering. Then three.html is moved | is moved to the beginning of the ordering. Then three.html is moved | |||
| to the end of the ordering, and finally four.html is moved to the end | to the end of the ordering, and finally four.html is moved to the end | |||
| of the ordering. After the request has been processed, the | of the ordering. After the request has been processed, the | |||
| skipping to change at page 18, line 27 ¶ | skipping to change at page 18, line 23 ¶ | |||
| iqaluit.desc | iqaluit.desc | |||
| >> Request: | >> Request: | |||
| ORDERPATCH /coll-1/ HTTP/1.1 | ORDERPATCH /coll-1/ HTTP/1.1 | |||
| Host: www.nunanet.com | Host: www.nunanet.com | |||
| Content-Type: text/xml; charset="utf-8" | Content-Type: text/xml; charset="utf-8" | |||
| Content-Length: xxx | Content-Length: xxx | |||
| <?xml version="1.0" ?> | <?xml version="1.0" ?> | |||
| <d:order xmlns:d="DAV:"> | <d:orderpatch xmlns:d="DAV:"> | |||
| <d:ordermember> | <d:ordermember> | |||
| <d:href>nunavut.desc</d:href> | <d:segment>nunavut.desc</d:segment> | |||
| <d:position> | <d:position> | |||
| <d:after> | <d:after> | |||
| <d:segment>nunavut.map</d:segment> | <d:segment>nunavut.map</d:segment> | |||
| </d:after> | </d:after> | |||
| </d:position> | </d:position> | |||
| </d:ordermember> | </d:ordermember> | |||
| <d:ordermember> | <d:ordermember> | |||
| <d:href>iqaluit.map</d:href> | <d:segment>iqaluit.map</d:segment> | |||
| <d:position> | <d:position> | |||
| <d:after> | <d:after> | |||
| <d:segment>pangnirtung.img</d:segment> | <d:segment>pangnirtung.img</d:segment> | |||
| </d:after> | </d:after> | |||
| </d:position> | </d:position> | |||
| </d:ordermember> | </d:ordermember> | |||
| </d:order> | </d:orderpatch> | |||
| >> Response: | >> Response: | |||
| HTTP/1.1 207 Multi-Status | HTTP/1.1 207 Multi-Status | |||
| Content-Type: text/xml; charset="utf-8" | Content-Type: text/xml; charset="utf-8" | |||
| Content-Length: xxx | Content-Length: xxx | |||
| <?xml version="1.0" ?> | <?xml version="1.0" ?> | |||
| <d:multistatus xmlns:d="DAV:"> | <d:multistatus xmlns:d="DAV:"> | |||
| <d:response> | <d:response> | |||
| <d:href>http://www.nunanet.com/coll-1/iqaluit.map</d:href> | <d:href>http://www.nunanet.com/coll-1/iqaluit.map</d:href> | |||
| <d:status>HTTP/1.1 403 Forbidden</d:status> | <d:status>HTTP/1.1 403 Forbidden</d:status> | |||
| <d:responsedescription> | <d:responsedescription> | |||
| <d:error><d:segment-must-identify-member/></d:error> | <d:error><d:segment-must-identify-member/></d:error> | |||
| pangnirtung.img is not a collection member. | pangnirtung.img is not a collection member. | |||
| </d:responsedescription> | </d:responsedescription> | |||
| </d:response> | </d:response> | |||
| skipping to change at page 21, line 22 ¶ | skipping to change at page 21, line 22 ¶ | |||
| PROPFIND /MyColl/ HTTP/1.1 | PROPFIND /MyColl/ HTTP/1.1 | |||
| Host: example.org | Host: example.org | |||
| Depth: 1 | Depth: 1 | |||
| Content-Type: text/xml; charset="utf-8" | Content-Type: text/xml; charset="utf-8" | |||
| Content-Length: xxxx | Content-Length: xxxx | |||
| <?xml version="1.0" ?> | <?xml version="1.0" ?> | |||
| <D:propfind xmlns:D="DAV:"> | <D:propfind xmlns:D="DAV:"> | |||
| <D:prop xmlns:J="http://example.org/jsprops/"> | <D:prop xmlns:J="http://example.org/jsprops/"> | |||
| <D:orderingtype/> | <D:ordering-type/> | |||
| <D:resourcetype/> | <D:resourcetype/> | |||
| <J:latitude/> | <J:latitude/> | |||
| </D:prop> | </D:prop> | |||
| </D:propfind> | </D:propfind> | |||
| >> Response: | >> Response: | |||
| HTTP/1.1 207 Multi-Status | HTTP/1.1 207 Multi-Status | |||
| Content-Type: text/xml; charset="utf-8" | Content-Type: text/xml; charset="utf-8" | |||
| Content-Length: xxxx | Content-Length: xxxx | |||
| <?xml version="1.0" ?> | <?xml version="1.0" ?> | |||
| <D:multistatus xmlns:D="DAV:" | <D:multistatus xmlns:D="DAV:" | |||
| xmlns:J="http://example.org/jsprops/"> | xmlns:J="http://example.org/jsprops/"> | |||
| <D:response> | <D:response> | |||
| <D:href>http://example.org/MyColl/</D:href> | <D:href>http://example.org/MyColl/</D:href> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:orderingtype><D:custom/></D:orderingtype> | <D:ordering-type> | |||
| <D:href>DAV:custom</D:href> | ||||
| </D:ordering-type> | ||||
| <D:resourcetype><D:collection/></D:resourcetype> | <D:resourcetype><D:collection/></D:resourcetype> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <J:latitude/> | <J:latitude/> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 404 Not Found</D:status> | <D:status>HTTP/1.1 404 Not Found</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| <D:response> | <D:response> | |||
| <D:href>http://example.org/MyColl/lakehazen.html</D:href> | <D:href>http://example.org/MyColl/lakehazen.html</D:href> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:resourcetype/> | <D:resourcetype/> | |||
| <J:latitude>82N</J:latitude> | <J:latitude>82N</J:latitude> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:orderingtype/> | <D:ordering-type/> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 404 Not Found</D:status> | <D:status>HTTP/1.1 404 Not Found</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| <D:response> | <D:response> | |||
| <D:href | <D:href | |||
| >http://example.org/MyColl/siorapaluk.html</D:href> | >http://example.org/MyColl/siorapaluk.html</D:href> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:resourcetype/> | <D:resourcetype/> | |||
| <J:latitude>78N</J:latitude> | <J:latitude>78N</J:latitude> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:orderingtype/> | <D:ordering-type/> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 404 Not Found</D:status> | <D:status>HTTP/1.1 404 Not Found</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| <D:response> | <D:response> | |||
| <D:href>http://example.org/MyColl/iqaluit.html</D:href> | <D:href>http://example.org/MyColl/iqaluit.html</D:href> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:resourcetype/> | <D:resourcetype/> | |||
| <J:latitude>62N</J:latitude> | <J:latitude>62N</J:latitude> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:orderingtype/> | <D:ordering-type/> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 404 Not Found</D:status> | <D:status>HTTP/1.1 404 Not Found</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| <D:response> | <D:response> | |||
| <D:href>http://example.org/MyColl/newyork.html</D:href> | <D:href>http://example.org/MyColl/newyork.html</D:href> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:resourcetype/> | <D:resourcetype/> | |||
| <J:latitude>45N</J:latitude> | <J:latitude>45N</J:latitude> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 200 OK</D:status> | <D:status>HTTP/1.1 200 OK</D:status> | |||
| <D:propstat> | <D:propstat> | |||
| <D:prop> | <D:prop> | |||
| <D:orderingtype/> | <D:ordering-type/> | |||
| </D:prop> | </D:prop> | |||
| <D:status>HTTP/1.1 404 Not Found</D:status> | <D:status>HTTP/1.1 404 Not Found</D:status> | |||
| </D:propstat> | </D:propstat> | |||
| </D:propstat> | </D:propstat> | |||
| </D:response> | </D:response> | |||
| </D:multistatus> | </D:multistatus> | |||
| In this example, the server responded with a list of the collection | In this example, the server responded with a list of the collection | |||
| members in the order defined for the collection. | members in the order defined for the collection. | |||
| 9 Relationship to versioned collections | 9 Relationship to versioned collections | |||
| The Versioning Extensions to WebDAV [RFC3253] introduce the concept | The Versioning Extensions to WebDAV [RFC3253] introduce the concept | |||
| of versioned collections, recording both the dead properties and the | of versioned collections, recording both the dead properties and the | |||
| set of internal version-controlled bindings. This section defines how | set of internal version-controlled bindings. This section defines how | |||
| this feature interacts with ordered collections. | this feature interacts with ordered collections. | |||
| This specification considers both the ordering type (DAV:orderingtype | This specification considers both the ordering type (DAV:ordering- | |||
| property) and the ordering of collection members to be part of the | type property) and the ordering of collection members to be part of | |||
| state of a collection. Therefore both MUST be recorded upon CHECKIN | the state of a collection. Therefore both MUST be recorded upon | |||
| or VERSION-CONTROL, and both MUST be restored upon CHECKOUT, | CHECKIN or VERSION-CONTROL, and both MUST be restored upon CHECKOUT, | |||
| UNCHECKOUT or UPDATE (where for compatibility with RFC3253, only the | UNCHECKOUT or UPDATE (where for compatibility with RFC3253, only the | |||
| ordering of version-controlled members needs to be maintained). | ordering of version-controlled members needs to be maintained). | |||
| 9.1 Additional semantics for collection version properties | 9.1 Additional semantics for collection version properties | |||
| Although this specification defines the property DAV:orderingtype to | Although this specification defines the property DAV:ordering-type to | |||
| be protected, it MUST be recorded in a collection version. | be protected, it MUST be recorded in a collection version. | |||
| The property DAV:version-controlled-binding-set ([RFC3253], section | The property DAV:version-controlled-binding-set ([RFC3253], section | |||
| 14.2.1) records the set of version-controlled bindings in the | 14.2.1) records the set of version-controlled bindings in the | |||
| collection. For ordered collections, the DAV:version-controlled- | collection. For ordered collections, the DAV:version-controlled- | |||
| binding elements MUST appear in the ordering defined for the checked- | binding elements MUST appear in the ordering defined for the checked- | |||
| in ordered collection. | in ordered collection. | |||
| 10 Capability Discovery | 10 Capability Discovery | |||
| Sections 9.1 and 15 of [RFC2518] describe the use of compliance | Sections 9.1 and 15 of [RFC2518] describe the use of compliance | |||
| classes with the DAV header in responses to OPTIONS, to indicate | classes with the DAV header in responses to OPTIONS, to indicate | |||
| which parts of the Web Distributed Authoring protocols the resource | which parts of the Web Distributed Authoring protocols the resource | |||
| supports. This specification defines an OPTIONAL extension to | supports. This specification defines an OPTIONAL extension to | |||
| [RFC2518]. It defines a new compliance class, called orderedcoll, for | [RFC2518]. It defines a new compliance class, called ordered- | |||
| use with the DAV header in responses to OPTIONS requests. If a | collections, for use with the DAV header in responses to OPTIONS | |||
| collection resource does support ordering, its response to an OPTIONS | requests. If a collection resource does support ordering, its | |||
| request may indicate that it does, by listing the new ORDERPATCH | response to an OPTIONS request may indicate that it does, by listing | |||
| method as one it supports, and by listing the new orderedcoll | the new ORDERPATCH method as one it supports, and by listing the new | |||
| compliance class in the DAV header. | ordered-collections compliance class in the DAV header. | |||
| When responding to an OPTIONS request, only a collection or a null | When responding to an OPTIONS request, only a collection or a null | |||
| resource can include orderedcoll in the value of the DAV header. By | resource can include ordered-collections in the value of the DAV | |||
| including orderedcoll, the resource indicates that its internal | header. By including ordered-collections, the resource indicates that | |||
| member URIs can be ordered. It implies nothing about whether any | its internal member URIs can be ordered. It implies nothing about | |||
| collections identified by its internal member URIs can be ordered. | whether any collections identified by its internal member URIs can be | |||
| ordered. | ||||
| Furthermore, RFC 3253 [RFC3253] introduces the live properties | Furthermore, RFC 3253 [RFC3253] introduces the live properties | |||
| DAV:supported-method-set (section 3.1.3) and DAV:supported-live- | DAV:supported-method-set (section 3.1.3) and DAV:supported-live- | |||
| property-set (section 3.1.4). Servers MUST support these properties | property-set (section 3.1.4). Servers MUST support these properties | |||
| as defined in RFC 3253. | as defined in RFC 3253. | |||
| 10.1 Example: Using OPTIONS for the Discovery of Support for Ordering | 10.1 Example: Using OPTIONS for the Discovery of Support for Ordering | |||
| >> Request: | >> Request: | |||
| OPTIONS /somecollection/ HTTP/1.1 | OPTIONS /somecollection/ HTTP/1.1 | |||
| Host: example.org | Host: example.org | |||
| >> Response: | >> Response: | |||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE | Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE | |||
| Allow: MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, ORDERPATCH | Allow: MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, ORDERPATCH | |||
| DAV: 1, 2, orderedcoll | DAV: 1, 2, ordered-collections | |||
| The DAV header in the response indicates that the resource | The DAV header in the response indicates that the resource | |||
| /somecollection/ is level 1 and level 2 compliant, as defined in | /somecollection/ is level 1 and level 2 compliant, as defined in | |||
| [RFC2518]. In addition, /somecollection/ supports ordering. The Allow | [RFC2518]. In addition, /somecollection/ supports ordering. The Allow | |||
| header indicates that ORDERPATCH requests can be submitted to | header indicates that ORDERPATCH requests can be submitted to | |||
| /somecollection/. | /somecollection/. | |||
| 10.2 Example: Using Live Properties for the Discovery of Ordering | 10.2 Example: Using Live Properties for the Discovery of Ordering | |||
| >> Request: | >> Request: | |||
| PROPFIND /somecollection HTTP/1.1 | PROPFIND /somecollection HTTP/1.1 | |||
| Depth: 0 | Depth: 0 | |||
| skipping to change at page 26, line 38 ¶ | skipping to change at page 26, line 40 ¶ | |||
| Content-Length: xxx | Content-Length: xxx | |||
| <?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | |||
| <multistatus xmlns="DAV:"> | <multistatus xmlns="DAV:"> | |||
| <response> | <response> | |||
| <href>http://example.org/somecollection</href> | <href>http://example.org/somecollection</href> | |||
| <propstat> | <propstat> | |||
| <prop> | <prop> | |||
| <supported-live-property-set> | <supported-live-property-set> | |||
| <supported-live-property> | <supported-live-property> | |||
| <prop><orderingtype/></prop> | <prop><ordering-type/></prop> | |||
| </supported-live-property> | </supported-live-property> | |||
| ... other live properties omitted for brevity ... | <!-- ... other live properties omitted for brevity ... --> | |||
| </supported-live-property-set> | </supported-live-property-set> | |||
| <supported-method-set> | <supported-method-set> | |||
| <supported-method name="COPY" /> | <supported-method name="COPY" /> | |||
| <supported-method name="DELETE" /> | <supported-method name="DELETE" /> | |||
| <supported-method name="GET" /> | <supported-method name="GET" /> | |||
| <supported-method name="HEAD" /> | <supported-method name="HEAD" /> | |||
| <supported-method name="LOCK" /> | <supported-method name="LOCK" /> | |||
| <supported-method name="MKCOL" /> | <supported-method name="MKCOL" /> | |||
| <supported-method name="MOVE" /> | <supported-method name="MOVE" /> | |||
| <supported-method name="OPTIONS" /> | <supported-method name="OPTIONS" /> | |||
| skipping to change at page 28, line 15 ¶ | skipping to change at page 28, line 15 ¶ | |||
| 11 Security Considerations | 11 Security Considerations | |||
| This section is provided to make WebDAV applications aware of the | This section is provided to make WebDAV applications aware of the | |||
| security implications of this protocol. | security implications of this protocol. | |||
| All of the security considerations of HTTP/1.1 and the WebDAV | All of the security considerations of HTTP/1.1 and the WebDAV | |||
| Distributed Authoring Protocol specification also apply to this | Distributed Authoring Protocol specification also apply to this | |||
| protocol specification. In addition, ordered collections introduce a | protocol specification. In addition, ordered collections introduce a | |||
| new security concern. This issue is detailed here. | new security concern. This issue is detailed here. | |||
| 11.1 Denial of Service and DAV:orderingtype | 11.1 Denial of Service and DAV:ordering-type | |||
| There may be some risk of denial of service at sites that are | There may be some risk of denial of service at sites that are | |||
| advertised in the DAV:orderingtype property of collections. However, | advertised in the DAV:ordering-type property of collections. However, | |||
| it is anticipated that widely-deployed applications will use hard- | it is anticipated that widely-deployed applications will use hard- | |||
| coded values for frequently-used ordering semantics rather than | coded values for frequently-used ordering semantics rather than | |||
| looking up the semantics at the location specified by | looking up the semantics at the location specified by DAV:ordering- | |||
| DAV:orderingtype. This risk will be further reduced if clients | type. This risk will be further reduced if clients observe the | |||
| observe the recommendation of section 5.1 that they not send requests | recommendation of section 5.1 that they not send requests to the URI | |||
| to the URI in DAV:orderingtype. | in DAV:ordering-type. | |||
| 12 Internationalization Considerations | 12 Internationalization Considerations | |||
| This specification follows the practices of [RFC2518] in encoding all | This specification follows the practices of [RFC2518] in encoding all | |||
| human-readable content using [XML] and in the treatment of names. | human-readable content using [XML] and in the treatment of names. | |||
| Consequently, this specification complies with the IETF Character Set | Consequently, this specification complies with the IETF Character Set | |||
| Policy [RFC2277]. | Policy [RFC2277]. | |||
| WebDAV applications MUST support the character set tagging, character | WebDAV applications MUST support the character set tagging, character | |||
| set encoding, and the language tagging functionality of the XML | set encoding, and the language tagging functionality of the XML | |||
| skipping to change at page 34, line 29 ¶ | skipping to change at page 34, line 29 ¶ | |||
| WEBDAV", RFC 2518, February 1999. | WEBDAV", RFC 2518, February 1999. | |||
| [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
| Masinter, L., Leach, P. and Berners-Lee, T., "Hypertext | Masinter, L., Leach, P. and Berners-Lee, T., "Hypertext | |||
| Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | |||
| [RFC3253] Clemm, G., Amsden, J., Ellison, T., Kaler, C. and | [RFC3253] Clemm, G., Amsden, J., Ellison, T., Kaler, C. and | |||
| Whitehead, J., "Versioning Extensions to WebDAV", RFC | Whitehead, J., "Versioning Extensions to WebDAV", RFC | |||
| 3253, March 2002. | 3253, March 2002. | |||
| [XML] World Wide Web Consortium, "Extensible Markup Language | [XML] Bray, T., Paoli, J., Sperberg-McQueen, C.M. and Maler, E., | |||
| (XML) 1.0", W3C XML, February 1998. | "Extensible Markup Language (XML) 1.0 (2nd ed)", W3C REC- | |||
| xml, October 2000. | ||||
| Author's Addresses | Author's Addresses | |||
| Judith Slein | Judith Slein | |||
| Xerox Corporation | Xerox Corporation | |||
| 800 Phillips Road, 105-50C | 800 Phillips Road, 105-50C | |||
| Webster, NY 14580 | Webster, NY 14580 | |||
| EMail: jslein@crt.xerox.com | EMail: jslein@crt.xerox.com | |||
| skipping to change at page 36, line 7 ¶ | skipping to change at page 36, line 7 ¶ | |||
| Muenster, NW 48159 | Muenster, NW 48159 | |||
| Germany | Germany | |||
| Phone: +49 251 2807760 | Phone: +49 251 2807760 | |||
| Fax: +49 251 2807761 | Fax: +49 251 2807761 | |||
| EMail: julian.reschke@greenbytes.de | EMail: julian.reschke@greenbytes.de | |||
| URI: http://greenbytes.de/tech/webdav/ | URI: http://greenbytes.de/tech/webdav/ | |||
| A Extensions to the WebDAV Document Type Definition | A Extensions to the WebDAV Document Type Definition | |||
| <!--============= XML Elements from Section 11 ================--> | <!ELEMENT orderpatch (ordering-type?, ordermember*) > | |||
| <!ELEMENT unordered EMPTY > | <!ELEMENT ordermember (segment, position) > | |||
| <!ELEMENT custom EMPTY > | <!ELEMENT ordering-type (href) > | |||
| <!ELEMENT order (orderingtype?, ordermember*) > | ||||
| <!ELEMENT ordermember (href, position) > | ||||
| <!ELEMENT position (first | last | before | after)> | <!ELEMENT position (first | last | before | after)> | |||
| <!ELEMENT first EMPTY > | <!ELEMENT first EMPTY > | |||
| <!ELEMENT last EMPTY > | <!ELEMENT last EMPTY > | |||
| <!ELEMENT before segment > | <!ELEMENT before segment > | |||
| <!ELEMENT after segment > | <!ELEMENT after segment > | |||
| <!ELEMENT segment (#PCDATA)> | <!ELEMENT segment (#PCDATA)> | |||
| <!--============= Property Elements from Section 10 =============--> | ||||
| <!ELEMENT orderingtype (unordered | custom | href) > | ||||
| B Change Log | B Change Log | |||
| B.1 Since draft-ietf-webdav-ordering-protocol dated December 1999 | B.1 Since draft-ietf-webdav-ordering-protocol dated December 1999 | |||
| Updated contact information for all previous authors. | Updated contact information for all previous authors. | |||
| Specify charset when using text/xml media type. | Specify charset when using text/xml media type. | |||
| Made sure artwork fits into 72 columns. | Made sure artwork fits into 72 columns. | |||
| Removed "Public" header from OPTIONS example. | Removed "Public" header from OPTIONS example. | |||
| Added Julian Reschke to list of authors. | Added Julian Reschke to list of authors. | |||
| skipping to change at page 37, line 47 ¶ | skipping to change at page 37, line 47 ¶ | |||
| Removed Jim Davis and Chuck Fay from the author list (and added them | Removed Jim Davis and Chuck Fay from the author list (and added them | |||
| to the Acknowledgements section). | to the Acknowledgements section). | |||
| Updated section on setting the position when adding new members, | Updated section on setting the position when adding new members, | |||
| removed old section on Position header. | removed old section on Position header. | |||
| Started work on Index section. | Started work on Index section. | |||
| Changed structure for section 7 (no change tracking). | Changed structure for section 7 (no change tracking). | |||
| Removed header and XML elements section (contents moved to other | Removed header and XML elements section (contents moved to other | |||
| sections). | sections). | |||
| Started new section on relation to versioned collections as per | Started new section on relation to versioned collections as per | |||
| RFC3253. | RFC3253. | |||
| Do not return 424's for in ODERPATCH multistatus (it's atomic | Do not return 424's for in ORDERPATCH multistatus (it's atomic | |||
| anyway). | anyway). | |||
| B.4 Since draft-ietf-webdav-ordering-protocol-04 | ||||
| Added proper reference to definition of "Coded-URL". | ||||
| Closed issue ordering-type-values (content model simplified and XML | ||||
| element / DAV property renamed) and updated examples. | ||||
| Renamed precondition DAV:orderingtype-set to DAV:ordering-type-set | ||||
| (no change tracking). | ||||
| Closed issue ordered-header-name (header name changed to "ordering- | ||||
| type", contents matches live property). | ||||
| Closed issue ordermember-format (now takes segment instead of href). | ||||
| Renamed compliance class to "ordered-collections" for consistency | ||||
| with newer specs, and to allow detection of compliance to final | ||||
| version of spec. | ||||
| Updated reference to XML spec to 1.0, 2nd edition. | ||||
| Index | Index | |||
| C O | C | |||
| Client-Maintained Ordering Ordered Collection | Client-Maintained Ordering | |||
| 3 3 | 3 | |||
| Ordered header | ||||
| 5.1 | ||||
| ORDERPATCH method | ||||
| D 7 | ||||
| DAV:collection-must-be-ordered | D | |||
| precondition P | ||||
| DAV:collection-must-be-ordered precondition | ||||
| 6.1 | 6.1 | |||
| DAV:custom ordering type | DAV:custom ordering type | |||
| 4.1.1 Postconditions | 4.1.1 | |||
| DAV:ordered-collections- DAV:orderingtype-set 5.1,7 | DAV:ordered-collections-supported precondition | |||
| supported precondition DAV:position-set 6.1 | 5.1 | |||
| 5.1 DAV:orderingtype-set 5.1,7 | DAV:ordering-modified postcondition | |||
| DAV:ordering-modified DAV:ordering-modified 7 | 7 | |||
| postcondition | DAV:ordering-type property | |||
| 7 Preconditions | 4.1.1 | |||
| DAV:orderingtype property DAV:ordered-collections- | DAV:ordering-type-set postcondition | |||
| 4.1.1 supported 5.1 | 5.1, 7 | |||
| DAV:orderingtype-set DAV:collection-must-be- | DAV:position-set postcondition | |||
| postcondition ordered 6.1 | ||||
| 5.1,7 DAV:segment-must-identify- | ||||
| DAV:position-set postcondition member 6.1 | ||||
| 6.1 | 6.1 | |||
| DAV:segment-must-identify- Protected properties | DAV:segment-must-identify-member precondition | |||
| member precondition DAV:orderingtype 4.1.1 | ||||
| 6.1 | 6.1 | |||
| DAV:unordered ordering type | DAV:unordered ordering type | |||
| 4.1.1 | 4.1.1 | |||
| S | ||||
| H | H | |||
| Server-Maintained Ordering | ||||
| 3 | ||||
| Headers | Headers | |||
| Ordered 5.1 | Ordering-Type 5.1 | |||
| O | ||||
| Ordered Collection | ||||
| 3 | ||||
| Ordering-Type header | ||||
| 5.1 | ||||
| ORDERPATCH method | ||||
| 7 | ||||
| P | ||||
| Postconditions | ||||
| DAV:ordering-type-set 5.1, 7 | ||||
| DAV:position-set 6.1 | ||||
| DAV:ordering-type-set 5.1, 7 | ||||
| DAV:ordering-modified 7 | ||||
| Preconditions | ||||
| DAV:ordered-collections-supported 5.1 | ||||
| DAV:collection-must-be-ordered 6.1 | ||||
| DAV:segment-must-identify-member 6.1 | ||||
| Protected properties | ||||
| DAV:ordering-type 4.1.1 | ||||
| S | ||||
| Server-Maintained Ordering | ||||
| 3 | ||||
| U | U | |||
| Unordered Collection | Unordered Collection | |||
| 3 | 3 | |||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2003). All Rights Reserved. | |||
| End of changes. 75 change blocks. | ||||
| 170 lines changed or deleted | 197 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||