< 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/