< draft-ietf-simple-xcap-diff-11.txt   draft-ietf-simple-xcap-diff-12.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 26, 2009 Nokia Expires: December 28, 2009 Nokia
June 24, 2009 June 26, 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-11 draft-ietf-simple-xcap-diff-12
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 contain material provisions of BCP 78 and BCP 79. This document may contain material
from IETF Documents or IETF Contributions published or made publicly from IETF Documents or IETF Contributions published or made publicly
available before November 10, 2008. The person(s) controlling the available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from IETF Standards Process. Without obtaining an adequate license from
skipping to change at page 1, line 44 skipping to change at page 1, line 44
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 26, 2009. This Internet-Draft will expire on December 28, 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 3, line 11 skipping to change at page 3, line 11
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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Structure of an XCAP Diff Document . . . . . . . . . . . . . . 5 3. Structure of an XCAP Diff Document . . . . . . . . . . . . . . 5
4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. Example Document . . . . . . . . . . . . . . . . . . . . . . . 10 5. Example Document . . . . . . . . . . . . . . . . . . . . . . . 11
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
7.1. application/xcap-diff+xml MIME Type . . . . . . . . . . . 12 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 . . . . . . . . . . . . . 13 urn:ietf:params:xml:ns:xcap-diff . . . . . . . . . . . . . 13
7.3. Schema Registration . . . . . . . . . . . . . . . . . . . 14 7.3. Schema Registration . . . . . . . . . . . . . . . . . . . 14
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.1. Normative References . . . . . . . . . . . . . . . . . . . 14 9.1. Normative References . . . . . . . . . . . . . . . . . . . 14
9.2. Informative References . . . . . . . . . . . . . . . . . . 15 9.2. Informative References . . . . . . . . . . . . . . . . . . 15
skipping to change at page 6, line 7 skipping to change at page 6, line 7
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. Wherever
unknown elements MUST be ignored by the client. the XML schema (see Section 4) allows extension elements or
attributes, any such unknown content MUST be ignored by the client.
Each <document> element specifies changes in a specific document Each <document> element specifies changes in a specific document
within the XCAP root. If several <document> elements pinpoint to the within the XCAP root. If several <document> elements pinpoint to the
same specific document, i.e. for example, the full ETag change same specific document, i.e. for example, the full ETag change
history is indicated, the corresponding patches MUST be appliable in history is indicated, the corresponding patches MUST be appliable in
the given document order. the given document order.
The <document> element has one mandatory attribute, "sel", and a two The <document> element has one mandatory attribute, "sel", and a two
optional attributes, "new-etag" and "previous-etag". The "sel" optional attributes, "new-etag" and "previous-etag". The "sel"
attribute of the <document> element identifies the specific document attribute of the <document> element identifies the specific document
skipping to change at page 7, line 4 skipping to change at page 7, line 5
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 <add>, <replace> and <remove> elements allow is effected. The <document> element can also contain elements from
extension attributes from any namespace. Any unknown attributes of other namespaces for the purposes of extensibility. The <add>,
patch operation elements MUST be ignored. <replace> and <remove> elements allow extension attributes from any
namespace.
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> | |
+-----------+----------+-----------+----------+-------------------+ +-----------+----------+-----------+----------+-------------------+
skipping to change at page 8, line 30 skipping to change at page 8, line 32
percent endoced relative URI following XCAP conventions when percent endoced relative URI following XCAP conventions when
selecting attributes. The "exists" attribute indicates whether an selecting attributes. The "exists" attribute indicates whether an
attribute exists or not in the XCAP document. When the "exists" attribute exists or not in the XCAP document. When the "exists"
attribute is absent from the <attribute> element, the indicated attribute is absent from the <attribute> element, the indicated
attribute still exists in the XCAP document. The child text node of attribute still exists in the XCAP document. The child text node of
the <attribute> element indicates the value of the located attribute. the <attribute> element indicates the value of the located attribute.
Note that if the attribute is namespace qualified, the query Note that if the attribute is namespace qualified, the query
parameter of the XCAP URI indicates the attached namespace URI and parameter of the XCAP URI indicates the attached namespace URI and
the prefix in the XCAP source document. the prefix in the XCAP source document.
Namespaces of the "sel" attribute of the <attribute> and <element>
element MUST also be resolved by clients. The conventions described
in Section 4.2.1 of [RFC5261] MUST be followed with this format. In
other words, the same namespace resolving rules of selector values
apply to these <attribute> and <element> elements than patch
operation elements of [RFC5261].
4. XML Schema 4. XML Schema
The XML Schema for the XCAP diff format. The XML Schema for the XCAP diff format.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:ietf:params:xml:ns:xcap-diff" xmlns="urn:ietf:params:xml:ns:xcap-diff"
targetNamespace="urn:ietf:params:xml:ns:xcap-diff" targetNamespace="urn:ietf:params:xml:ns:xcap-diff"
elementFormDefault="qualified" elementFormDefault="qualified"
attributeFormDefault="unqualified"> attributeFormDefault="unqualified">
skipping to change at page 11, line 6 skipping to change at page 11, line 10
<!-- empty type --> <!-- empty type -->
<xs:complexType name="emptyType"/> <xs:complexType name="emptyType"/>
</xs:schema> </xs:schema>
5. Example Document 5. Example Document
The following is an example of a document compliant to the schema. The following is an example of a document compliant to the schema.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xcap-diff xmlns="urn:ietf:params:xml:ns:xcap-diff" <d:xcap-diff xmlns:d="urn:ietf:params:xml:ns:xcap-diff"
xcap-root="http://xcap.example.com/root/"> xmlns="urn:ietf:params:xml:ns:rls-services"
xcap-root="http://xcap.example.com/root/">
<document new-etag="7ahggs" <d:document new-etag="7ahggs"
sel="resource-lists/users/sip:joe@example.com/coworkers" sel="resource-lists/users/sip:joe@example.com/coworkers"
previous-etag="8a77f8d"/> previous-etag="8a77f8d"/>
<d:element sel="rls-services/users/sip:joe@example.com/index/~~ <d:element sel="rls-services/users/sip:joe@example.com/index/~~
/*/service%5b@uri='sip:marketing@example.com'%5d" /*/service%5b@uri='sip:marketing@example.com'%5d"
xmlns:d="urn:ietf:params:xml:ns:xcap-diff"
xmlns="urn:ietf:params:xml:ns:rls-services"
xmlns:rl="urn:ietf:params:xml:ns:resource-lists" xmlns:rl="urn:ietf:params:xml:ns:resource-lists"
><service uri="sip:marketing@example.com"> ><service uri="sip:marketing@example.com">
<list name="marketing"> <list name="marketing">
<rl:entry uri="sip:joe@example.com"/> <rl:entry uri="sip:joe@example.com"/>
<rl:entry uri="sip:sudhir@example.com"/> <rl:entry uri="sip:sudhir@example.com"/>
</list> </list>
<packages> <packages>
<package>presence</package> <package>presence</package>
</packages> </packages>
</service></d:element> </service></d:element>
<attribute <d:attribute
sel="rls-services/users/sip:joe@example.com/index/~~/*/service/@uri" sel="rls-services/users/sip:joe@example.com/index/~~/*/service/@uri"
>sip:marketing@example.com</attribute> >sip:marketing@example.com</d:attribute>
</xcap-diff> </d:xcap-diff>
This indicates that the document with URI "http://xcap.example.com/ This indicates that the document with URI "http://xcap.example.com/
root/resource-lists/users/sip:joe@example.com/coworkers" has changed. root/resource-lists/users/sip:joe@example.com/coworkers" has changed.
Its previous entity tag is "8a77f8d" and its new one is "7ahggs" but Its previous entity tag is "8a77f8d" and its new one is "7ahggs" but
actual changes are not shown. The <service> element exists in the actual changes are not shown. The <service> element exists in the
rls-services "index" document and its full content is shown. Note rls-services "index" document and its full content is shown. Note
that the <service> element is attached with a default namespace that the <service> element is attached with a default namespace
declaration within the original document. Similarly, a "uri" declaration within the original document. Similarly, a "uri"
attribute content is shown from the same "index" document as an attribute content is shown from the same "index" document as an
illustrative example. illustrative example.
 End of changes. 13 change blocks. 
18 lines changed or deleted 26 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/