| < draft-ietf-simple-xcap-diff-10.txt | draft-ietf-simple-xcap-diff-11.txt > | |||
|---|---|---|---|---|
| SIMPLE J. Rosenberg | SIMPLE J. Rosenberg | |||
| Internet-Draft Cisco | Internet-Draft Cisco | |||
| Intended status: Standards Track J. Urpalainen | Intended status: Standards Track J. Urpalainen | |||
| Expires: December 24, 2009 Nokia | Expires: December 26, 2009 Nokia | |||
| June 22, 2009 | June 24, 2009 | |||
| An Extensible Markup Language (XML) Document Format for Indicating A | An Extensible Markup Language (XML) Document Format for Indicating A | |||
| Change in XML Configuration Access Protocol (XCAP) Resources | Change in XML Configuration Access Protocol (XCAP) Resources | |||
| draft-ietf-simple-xcap-diff-10 | draft-ietf-simple-xcap-diff-11 | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
| provisions of BCP 78 and BCP 79. This document may not be modified, | provisions of BCP 78 and BCP 79. This document may contain material | |||
| and derivative works of it may not be created, except to format it | from IETF Documents or IETF Contributions published or made publicly | |||
| for publication as an RFC or to translate it into languages other | available before November 10, 2008. The person(s) controlling the | |||
| than English. | copyright in some of this material may not have granted the IETF | |||
| Trust the right to allow modifications of such material outside the | ||||
| IETF Standards Process. Without obtaining an adequate license from | ||||
| the person(s) controlling the copyright in such materials, this | ||||
| document may not be modified outside the IETF Standards Process, and | ||||
| derivative works of it may not be created outside the IETF Standards | ||||
| Process, except to format it for publication as an RFC or to | ||||
| translate it into languages other than English. | ||||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | 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 on December 24, 2009. | This Internet-Draft will expire on December 26, 2009. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents in effect on the date of | Provisions Relating to IETF Documents in effect on the date of | |||
| publication of this document (http://trustee.ietf.org/license-info). | publication of this document (http://trustee.ietf.org/license-info). | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 20 ¶ | skipping to change at page 3, line 7 ¶ | |||
| (XCAP). This format indicates the document that has changed and its | (XCAP). This format indicates the document that has changed and its | |||
| former and new entity tags. It also can indicate the specific change | former and new entity tags. It also can indicate the specific change | |||
| that was made in the document, using an XML patch format. This | that was made in the document, using an XML patch format. This | |||
| format allows also indications of element and attribute content of an | format allows also indications of element and attribute content of an | |||
| XML document. XCAP diff documents can be delivered to clients using | XML document. XCAP diff documents can be delivered to clients using | |||
| a number of means, including a Session Initiation Protocol (SIP) | a number of means, including a Session Initiation Protocol (SIP) | |||
| event package. | event package. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Structure of an XCAP Diff Document . . . . . . . . . . . . . . 4 | 3. Structure of an XCAP Diff Document . . . . . . . . . . . . . . 5 | |||
| 4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Example Document . . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Example Document . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 7.1. application/xcap-diff+xml MIME Type . . . . . . . . . . . 11 | 7.1. application/xcap-diff+xml MIME Type . . . . . . . . . . . 12 | |||
| 7.2. URN Sub-Namespace Registration for | 7.2. URN Sub-Namespace Registration for | |||
| urn:ietf:params:xml:ns:xcap-diff . . . . . . . . . . . . . 12 | urn:ietf:params:xml:ns:xcap-diff . . . . . . . . . . . . . 13 | |||
| 7.3. Schema Registration . . . . . . . . . . . . . . . . . . . 13 | 7.3. Schema Registration . . . . . . . . . . . . . . . . . . . 14 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . . 13 | 9.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . . 14 | 9.2. Informative References . . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 1. Introduction | 1. Introduction | |||
| The Extensible Markup Language (XML) Configuration Access Protocol | The Extensible Markup Language (XML) Configuration Access Protocol | |||
| (XCAP) [RFC4825] is a protocol that allows clients to manipulate XML | (XCAP) [RFC4825] is a protocol that allows clients to manipulate XML | |||
| documents stored on a server. These XML documents serve as | documents stored on a server. These XML documents serve as | |||
| configuration information for application protocols. As an example, | configuration information for application protocols. As an example, | |||
| resource list [RFC4662] subscriptions (also known as presence lists) | resource list [RFC4662] subscriptions (also known as presence lists) | |||
| allow a client to have a single SIP subscription to a list of users, | allow a client to have a single SIP subscription to a list of users, | |||
| where the list is maintained on a server. The server will obtain | where the list is maintained on a server. The server will obtain | |||
| skipping to change at page 5, line 8 ¶ | skipping to change at page 6, line 8 ¶ | |||
| urn:ietf:params:xml:ns:xcap-diff | urn:ietf:params:xml:ns:xcap-diff | |||
| An XCAP diff document begins with the root element tag <xcap-diff>. | An XCAP diff document begins with the root element tag <xcap-diff>. | |||
| This element has a single mandatory attribute, "xcap-root". The | This element has a single mandatory attribute, "xcap-root". The | |||
| value of this attribute is the XCAP root URI for the documents in | value of this attribute is the XCAP root URI for the documents in | |||
| which the changes have taken place. A single XCAP diff document can | which the changes have taken place. A single XCAP diff document can | |||
| only represent changes in documents within the same XCAP root. The | only represent changes in documents within the same XCAP root. The | |||
| content of the <xcap-diff> element is a sequence of <document>, | content of the <xcap-diff> element is a sequence of <document>, | |||
| <element> and <attribute> elements followed by any number of elements | <element> and <attribute> elements followed by any number of elements | |||
| from other namespaces for the purposes of extensibility. Any such | from other namespaces for the purposes of extensibility. Any such | |||
| unknown elements MUST be ignored by the client. If several | unknown elements MUST be ignored by the client. | |||
| <document> elements with the same "sel" selector value exist in the | ||||
| XCAP diff document, i.e. for example, the full ETag change history is | Each <document> element specifies changes in a specific document | |||
| indicated, the corresponding patches MUST be appliable in the given | within the XCAP root. If several <document> elements pinpoint to the | |||
| document order. Each <document> element specifies changes in a | same specific document, i.e. for example, the full ETag change | |||
| specific document within the XCAP root. It has one mandatory | history is indicated, the corresponding patches MUST be appliable in | |||
| attribute, "sel", and a two optional attributes, "new-etag" and | the given document order. | |||
| "previous-etag". The "sel" attribute of the <document> element | ||||
| identifies the specific document within the XCAP root for which | The <document> element has one mandatory attribute, "sel", and a two | |||
| changes are indicated. Its content MUST be a relative path | optional attributes, "new-etag" and "previous-etag". The "sel" | |||
| reference, with the base URI being equal to the XCAP root URI. The | attribute of the <document> element identifies the specific document | |||
| "new-etag" attribute provides the entity tag (ETag) for the document | within the XCAP root for which changes are indicated. Its content | |||
| after the application of the changes, assuming the document exists | MUST be a relative path reference, with the base URI being equal to | |||
| after those changes. The "previous-etag" attribute provides an | the XCAP root URI. The "new-etag" attribute provides the entity tag | |||
| identifier for the document instance prior to the change. If the | (ETag) for the document after the application of the changes, | |||
| change being reported is the removal of a document, the "previous- | assuming the document exists after those changes. The "previous- | |||
| etag" MUST only be included and the "new-etag" attribute will not be | etag" attribute provides an identifier for the document instance | |||
| present. The "new-etag" attribute MUST only exist alone when the | prior to the change. If the change being reported is the removal of | |||
| document either exists or it was just created (no patch included). | a document, the "previous-etag" MUST only be included and the "new- | |||
| Both attributes are present when a patch (or series of XCAP | etag" attribute will not be present. The "new-etag" attribute MUST | |||
| operations) has been applied to the resource. Also both attributes | only exist alone when the document either exists or it was just | |||
| MAY be used to indicate an ETag change without any document | created (no patch included). Both attributes are present when a | |||
| modifications (patches). | patch (or series of XCAP operations) has been applied to the | |||
| resource. Also both attributes MAY be used to indicate an ETag | ||||
| change without any document modifications (patches). | ||||
| The "previous-etag" and "new-etag" need not have been sequentially | The "previous-etag" and "new-etag" need not have been sequentially | |||
| assigned ETags at the server. An XCAP diff document can indicate | assigned ETags at the server. An XCAP diff document can indicate | |||
| changes that have occurred over a series of XCAP operations. The | changes that have occurred over a series of XCAP operations. The | |||
| only requirement then is that, the sequence of events, when executed | only requirement then is that, the sequence of events, when executed | |||
| serially, will result in the transformation of the document with the | serially, will result in the transformation of the document with the | |||
| ETag "previous-etag" to the one whose ETag is "new-etag". Also the | ETag "previous-etag" to the one whose ETag is "new-etag". Also the | |||
| series of operations do not have to be the same exact series of | series of operations do not have to be the same exact series of | |||
| operations that occurred at the server. | operations that occurred at the server. | |||
| Each <document> element contains either a sequence of patching | Each <document> element contains either a sequence of patching | |||
| instructions or an indication that the body hasn't semantically | instructions or an indication that the body hasn't semantically | |||
| changed. The latter means that the document has been assigned a new | changed. The latter means that the document has been assigned a new | |||
| ETag but its content is unchanged and it is indicated by the <body- | ETag but its content is unchanged and it is indicated by the <body- | |||
| not-changed> element. Patching instructions are described by the | not-changed> element. Patching instructions are described by the | |||
| <add>, <replace> and <remove> elements. These elements use the | <add>, <replace> and <remove> elements. These elements use the | |||
| corresponding add, replace and remove types defined in [RFC5261], and | corresponding add, replace and remove types defined in [RFC5261], and | |||
| define a set of patch operations that can be applied to transform the | define a set of patch operations that can be applied to transform the | |||
| document. See [RFC5261] for instructions on how this transformation | document. See [RFC5261] for instructions on how this transformation | |||
| is effected. The <document> element can also contain elements from | is effected. The <add>, <replace> and <remove> elements allow | |||
| other namespaces for the purposes of extensibility. The <add>, | extension attributes from any namespace. Any unknown attributes of | |||
| <replace> and <remove> elements allow extension attributes from any | ||||
| namespace. Any unknown elements <document> element or attributes of | ||||
| patch operation elements MUST be ignored. | patch operation elements MUST be ignored. | |||
| Figure 1 shows <document> element content and how corresponding | Figure 1 shows <document> element content and how corresponding | |||
| resource or metadata changes. An external document retrieval means | resource or metadata changes. An external document retrieval means | |||
| in practice HTTP GET requests for target resources. | in practice HTTP GET requests for target resources. | |||
| +-----------+----------+-----------+----------+-------------------+ | +-----------+----------+-----------+----------+-------------------+ | |||
| | previous- | new- | <add> | <body- | XCAP resource/ | | | previous- | new- | <add> | <body- | XCAP resource/ | | |||
| | etag | etag | <replace> | not- | metadata change | | | etag | etag | <replace> | not- | metadata change | | |||
| | | | <remove> | changed> | | | | | | <remove> | changed> | | | |||
| End of changes. 8 change blocks. | ||||
| 51 lines changed or deleted | 58 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||