< draft-ietf-simple-xcap-diff-04.txt   draft-ietf-simple-xcap-diff-05.txt >
SIMPLE J. Rosenberg SIMPLE J. Rosenberg
Internet-Draft Cisco Systems Internet-Draft Cisco
Expires: April 20, 2007 October 17, 2006 Intended status: Standards Track March 5, 2007
Expires: September 6, 2007
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-04 draft-ietf-simple-xcap-diff-05
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
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
skipping to change at page 1, line 34 skipping to change at page 1, line 35
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 April 20, 2007. This Internet-Draft will expire on September 6, 2007.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This specification defines a document format that can be used to This specification defines a document format that can be used to
indicate that a change has occurred in a document managed by the indicate that a change has occurred in a document managed by the
Extensible Markup Language (XML) Configuration Access Protocol Extensible Markup Language (XML) Configuration Access Protocol
(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. XCAP diff that was made in the document, using an XML patch format. XCAP diff
documents can be delivered to clients using a number of means, documents can be delivered to clients using a number of means,
including a Session Initiation Protocol (SIP) event package. including a Session Initiation Protocol (SIP) event package.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Structure of an XCAP Diff Document . . . . . . . . . . . . . . 4 3. Structure of an XCAP Diff Document . . . . . . . . . . . . . . 4
4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5. Example Document . . . . . . . . . . . . . . . . . . . . . . . 8 5. Example Document . . . . . . . . . . . . . . . . . . . . . . . 7
6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
7.1. application/xcap-diff+xml MIME Type . . . . . . . . . . . 8 7.1. application/xcap-diff+xml MIME Type . . . . . . . . . . . 8
7.2. URN Sub-Namespace Registration for 7.2. URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:xcap-diff . . . . . . . . . . . . . 9 urn:ietf:params:xml:ns:xcap-diff . . . . . . . . . . . . . 9
7.3. Schema Registration . . . . . . . . . . . . . . . . . . . 10 7.3. Schema Registration . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.1. Normative References . . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . . 10
8.2. Informative References . . . . . . . . . . . . . . . . . . 11 8.2. Informative References . . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11
Intellectual Property and Copyright Statements . . . . . . . . . . 13 Intellectual Property and Copyright Statements . . . . . . . . . . 13
1. Introduction 1. Introduction
The Extensible Markup Language (XML) Configuration Access Protocol The Extensible Markup Language (XML) Configuration Access Protocol
(XCAP) [8] is a protocol that allows clients to manipulate XML (XCAP) [8] 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 [12] subscriptions (also known as presence lists) allow resource list [12] subscriptions (also known as presence lists) allow
a client to have a single SIP subscription to a list of users, where a client to have a single SIP subscription to a list of users, where
skipping to change at page 4, line 14 skipping to change at page 4, line 14
2. Terminology 2. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED", In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in RFC 2119 [7] and and "OPTIONAL" are to be interpreted as described in RFC 2119 [7] and
indicate requirement levels for compliant implementations. indicate requirement levels for compliant implementations.
This specification also defines the following additional terms: This specification also defines the following additional terms:
Document: When the term document is used without the "XCAP diff" in Document: When the term document is used without the "XCAP diff" in
front of it, it refers to the XCAP document resource about whom front of it, it refers to the XCAP document resource about whom
the XCAP diff document is reporting a change. the XCAP diff document is reporting a change.
XCAP diff document: The XML document defined by this specification XCAP diff document: The XML document defined by this specification
that reports on a set of changes in an XCAP document resource. that reports on a set of changes in an XCAP document resource.
Server: Typically an XCAP server, this is a protocol entity that Server: Typically an XCAP server, this is a protocol entity that
generates XCAP diff documents based on its knowledge of a set of generates XCAP diff documents based on its knowledge of a set of
XCAP documents. XCAP documents.
Client: Typically an XCAP client and SIP User Agent (UA), the client Client: Typically an XCAP client and SIP User Agent (UA), the client
consumes XCAP diff documents in order to reconstruct the document consumes XCAP diff documents in order to reconstruct the document
stored on the server. stored on the server.
3. Structure of an XCAP Diff Document 3. Structure of an XCAP Diff Document
An XCAP diff document is an XML [2] document that MUST be well-formed An XCAP diff document is an XML [2] document that MUST be well-formed
and SHOULD be valid. XCAP diff documents MUST be based on XML 1.0 and SHOULD be valid. XCAP diff documents MUST be based on XML 1.0
and MUST be encoded using UTF-8. This specification makes use of XML and MUST be encoded using UTF-8. This specification makes use of XML
namespaces for identifying XCAP diff documents and document namespaces for identifying XCAP diff documents and document
fragments. The namespace URI for elements defined by this fragments. The namespace URI for elements defined by this
skipping to change at page 7, line 7 skipping to change at page 7, line 7
of which can be <add>, <replace> and <remove> elements. These of which can be <add>, <replace> and <remove> elements. These
elements use the corresponding add, replace and remove types defined elements use the corresponding add, replace and remove types defined
in [9], and define a set of patch operations that can be applied to in [9], and define a set of patch operations that can be applied to
transform the document. See [9] for instructions on how this transform the document. See [9] for instructions on how this
transformation is effected. The <change-log> element can also transformation is effected. The <change-log> element can also
contain elements from other namespaces for the purposes of contain elements from other namespaces for the purposes of
extensibility. Any unknown elements MUST be ignored. extensibility. Any unknown elements MUST be ignored.
4. XML Schema 4. XML Schema
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:ietf:params:xml:ns:xcap-diff" <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
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"
elementFormDefault="qualified" elementFormDefault="qualified" attributeFormDefault="unqualified">
attributeFormDefault="unqualified"> <xs:include schemaLocation="urn:ietf:params:xml:schema:xml-patch-ops"/>
<xs:include schemaLocation="urn:ietf:params:xml:schema:xml-patch-ops"/> <xs:complexType name="documentType">
<xs:element name="document"> <xs:sequence>
<xs:complexType> <xs:element name="change-log" type="change-logType" minOccurs="0"/>
<xs:sequence> <xs:any namespace="##other" processContents="lax"
<xs:element name="change-log" type="change-logType" minOccurs="0"/> minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" </xs:sequence>
minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="doc-selector" type="xs:anyURI" use="required"/>
</xs:sequence> <xs:attribute name="new-etag" type="xs:string" use="optional"/>
<xs:attribute name="doc-selector" type="xs:anyURI" use="required"/> <xs:attribute name="previous-etag" type="xs:string" use="optional"/>
<xs:attribute name="new-etag" type="xs:string" use="optional"/> <xs:attribute name="hash" type="xs:string" use="optional"/>
<xs:attribute name="previous-etag" type="xs:string" use="optional"/> <xs:anyAttribute namespace="##other" processContents="lax"/>
<xs:attribute name="hash" type="xs:string" use="optional"/> </xs:complexType>
<xs:anyAttribute namespace="##other" processContents="lax"/> <xs:element name="xcap-diff">
</xs:complexType> <xs:complexType>
</xs:element> <xs:sequence maxOccurs="unbounded">
<xs:element name="xcap-diff"> <xs:element name="document" type="documentType"/>
<xs:complexType> </xs:sequence>
<xs:sequence maxOccurs="unbounded"> <xs:attribute name="xcap-root" type="xs:anyURI" use="required"/>
<xs:element ref="document"/> </xs:complexType>
</xs:sequence> </xs:element>
<xs:attribute name="xcap-root" type="xs:anyURI" use="required"/> <xs:complexType name="change-logType">
</xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded">
</xs:element> <xs:choice>
<xs:complexType name="change-logType"> <xs:element name="add" type="add"/>
<xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="remove" type="remove"/>
<xs:choice> <xs:element name="replace" type="replace"/>
<xs:element name="add" type="add"/> <xs:any namespace="##other" processContents="lax"/>
<xs:element name="remove" type="remove"/> </xs:choice>
<xs:element name="replace" type="replace"/> </xs:sequence>
<xs:any namespace="##other" processContents="lax"/> </xs:complexType>
</xs:choice> </xs:schema>
</xs:sequence>
</xs:complexType>
</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" <xcap-diff xmlns="urn:ietf:params:xml:ns:xcap-diff"
xcap-root="http://xcap.example.com/root"> xcap-root="http://xcap.example.com/root">
<document new-etag="7ahggs" <document new-etag="7ahggs"
doc-selector="resource-lists/users/joe/coworkers" doc-selector="resource-lists/users/joe/coworkers"
skipping to change at page 10, line 5 skipping to change at page 10, line 5
[6] [6]
URI: The URI for this namespace is URI: The URI for this namespace is
urn:ietf:params:xml:ns:xcap-diff. urn:ietf:params:xml:ns:xcap-diff.
Registrant Contact: IETF, SIMPLE working group, (simple@ietf.org), Registrant Contact: IETF, SIMPLE working group, (simple@ietf.org),
Jonathan Rosenberg (jdrosen@jdrosen.net). Jonathan Rosenberg (jdrosen@jdrosen.net).
XML: XML:
BEGIN BEGIN
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="content-type" <meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/> content="text/html;charset=iso-8859-1"/>
<title>XCAP Diff Namespace</title> <title>XCAP Diff Namespace</title>
</head> </head>
<body> <body>
<h1>Namespace for XCAP Diff</h1> <h1>Namespace for XCAP Diff</h1>
<h2>urn:ietf:params:xml:ns:xcap-diff</h2> <h2>urn:ietf:params:xml:ns:xcap-diff</h2>
<p>See <a href="[URL of published RFC]">RFCXXXX[[NOTE <p>See <a href="[URL of published RFC]">RFCXXXX[[NOTE
TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number of this TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number of this
specification.]]</a>.</p> specification.]]</a>.</p>
</body> </body>
</html> </html>
END END
7.3. Schema Registration 7.3. Schema Registration
This section registers a new XML schema per the procedures in [6]. This section registers a new XML schema per the procedures in [6].
URI: urn:ietf:params:xml:schema:xcap-diff URI: urn:ietf:params:xml:schema:xcap-diff
Registrant Contact: IETF, SIMPLE working group, (simple@ietf.org), Registrant Contact: IETF, SIMPLE working group, (simple@ietf.org),
Jonathan Rosenberg (jdrosen@jdrosen.net). Jonathan Rosenberg (jdrosen@jdrosen.net).
The XML for this schema can be found as the sole content of The XML for this schema can be found as the sole content of
Section 4. Section 4.
8. References 8. References
8.1. Normative References 8.1. Normative References
[1] Boyer, J., "Canonical XML Version 1.0", World Wide Web [1] Boyer, J., "Canonical XML Version 1.0", World Wide Web
Consortium Recommendation REC-xml-c14n-20010315, March 2001, Consortium Recommendation REC-xml-c14n-20010315, March 2001,
<http://www.w3.org/TR/2001/REC-xml-c14n-20010315>. <http://www.w3.org/TR/2001/REC-xml-c14n-20010315>.
[2] Paoli, J., Maler, E., Sperberg-McQueen, C., Bray, T., and F. [2] Sperberg-McQueen, C., Maler, E., Yergeau, F., Bray, T., and J.
Yergeau, "Extensible Markup Language (XML) 1.0 (Third Edition)", Paoli, "Extensible Markup Language (XML) 1.0 (Third Edition)",
World Wide Web Consortium Recommendation REC-xml-20040204, World Wide Web Consortium FirstEdition REC-xml-20040204,
February 2004, <http://www.w3.org/TR/2004/REC-xml-20040204>. February 2004, <http://www.w3.org/TR/2004/REC-xml-20040204>.
[3] Moats, R., "URN Syntax", RFC 2141, May 1997. [3] Moats, R., "URN Syntax", RFC 2141, May 1997.
[4] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", [4] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types",
RFC 3023, January 2001. RFC 3023, January 2001.
[5] Moats, R., "A URN Namespace for IETF Documents", RFC 2648, [5] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
August 1999. August 1999.
[6] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [6] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
January 2004. January 2004.
[7] Bradner, S., "Key words for use in RFCs to Indicate Requirement [7] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[8] Rosenberg, J., "The Extensible Markup Language (XML) [8] Rosenberg, J., "The Extensible Markup Language (XML)
Configuration Access Protocol (XCAP)", draft-ietf-simple-xcap-12 Configuration Access Protocol (XCAP)",
(work in progress), October 2006. draft-ietf-simple-xcap-12 (work in progress), October 2006.
[9] Urpalainen, J., "An Extensible Markup Language (XML) Patch [9] Urpalainen, J., "An Extensible Markup Language (XML) Patch
Operations Framework Utilizing XML Path Language (XPath) Operations Framework Utilizing XML Path Language (XPath)
Selectors", draft-ietf-simple-xml-patch-ops-02 (work in Selectors", draft-ietf-simple-xml-patch-ops-02 (work in
progress), March 2006. progress), March 2006.
8.2. Informative References 8.2. Informative References
[10] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., [10] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002. Session Initiation Protocol", RFC 3261, June 2002.
[11] Roach, A., "Session Initiation Protocol (SIP)-Specific Event [11] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002. Notification", RFC 3265, June 2002.
skipping to change at page 12, line 8 skipping to change at page 12, line 8
Representing Resource Lists", Representing Resource Lists",
draft-ietf-simple-xcap-list-usage-05 (work in progress), draft-ietf-simple-xcap-list-usage-05 (work in progress),
February 2005. February 2005.
[15] Burger, E., "A Mechanism for Content Indirection in Session [15] Burger, E., "A Mechanism for Content Indirection in Session
Initiation Protocol (SIP) Messages", RFC 4483, May 2006. Initiation Protocol (SIP) Messages", RFC 4483, May 2006.
Author's Address Author's Address
Jonathan Rosenberg Jonathan Rosenberg
Cisco Systems Cisco
600 Lanidex Plaza Edison, NJ
Parsippany, NJ 07054
US US
Phone: +1 973 952-5000
Email: jdrosen@cisco.com Email: jdrosen@cisco.com
URI: http://www.jdrosen.net URI: http://www.jdrosen.net
Intellectual Property Statement Full Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
skipping to change at page 13, line 29 skipping to change at page 13, line 45
such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at this standard. Please address the information to the IETF at
ietf-ipr@ietf.org. ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is provided by the IETF
Internet Society. Administrative Support Activity (IASA).
 End of changes. 26 change blocks. 
114 lines changed or deleted 110 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/