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