XCAP协议
一、 引言
XCAP(XML Configuration Access Protocol,XML配置访问协议)。使用XML 文档格式来存储应用程序的配置数据,允许客户端读取、写入及修改配置数据。
XCAP映射 XML 文档的子树和元素属性到 HTTP URL ,所以这些组件可以通过 HTTP 直接获取。 XCAP 是一种映射 XML 文档和文档属性到 HTTP URL 的一种惯例,一个资源的修改如何影响其他资源的规则,数据验证的约束,访问资源时相关的授权策略。因为这种结构,普通 HTTP 能够用来操作数据。
XCAP一般url实例:
http://xcap.test.com/fae-config/users-will/example/~~/userInfo/entry/name
XML文档结构(文档名example):
XCAP实质就是URI与XML文件映射。XCAP实现将URI映射为实体XML文件,使用HTTPMethod对XML文件进行读,写,删除操作。XML文件根据应用实际使用情况可直接存储于本地文件,数据库,内存。
二、 XCAP Server说明
XCAP Server保存和获取好友列表、授权规则文档、Resource List文档以及RLS文档。
提供对XCAP请求的处理,实现XCAP协议基本行为,允许用户通过XCAP操作来获取,修改,删除该用户的文档。
允许一次改变XML文档的一个结点,属性,名字空间等
三、 XCAP的 URI的组成
1.XCAP的URI映射分成两个部分:
文档选择器(Documentselector)与节点选择器(Node selector )。
文档选择器决定选择哪一个XML文档。
节点选择器决定选择文档中的哪一个节点和属性(是XPATH的一个子集)。
在RFC的描述中,文档选择器与节点选择器之间以“~~”分隔(注:在一些文档中,XCAP的URI并不包含“~~”)
2.URI结构:
Part1 |
Part2 |
Part3 |
Method |
XCAP Root/AUID/user/document/~~/xcap-caps/users/user1 |
HTTP(v) |
GET/PUT/DELETE |
XML里描述资源的真实路径 |
HTTP 1.0/1.1 |
A. Part1
XCAP 的首要任务就是允许客户端读、写、修改、创建和删除数据片段。
只支持GET/PUT/DELETE。如果是POST,服务器端返回错误信息。
B. Part2
XCAP的URI映射分成两个部分:
文档选择器(Documentselector):决定选择哪一个XML文档。
节点选择器(Node selector ):决定选择文档中的哪一个节点和属性。
在RFC的描述中,文档选择器与节点选择器之间以“~~”分隔(注:在一些文档中,XCAP的URI并不包含“~~”)
l 文档选择器:
XCAP Root/AUID/user/ document
XCAP Root/AUID/global/
AUID是唯一的程序ID
l 节点选择器:
节点选择器为空,则HTTP 的方法将被应用到选定的文档上。
举例说明:
1.获取userInfo根节点下addr节点
userInfo/addr
2.获取userInfo根节点下,属性arr为error的entry节点下的name节点元素。
userInfo/entry[@arr="error"]/name
3.获取userInfo根节点下entry元素,entry元素下name元素中的form属性。
userInfo/entry/name/@form
四、 REST风格的XCAP操作
HTTP GET |
HTTP PUT |
HTTP DELETE |
获取一个XML文档 |
创建或者替换一个XML文档 |
删除一个XML文档 |
获取一个XML文档的节点 |
创建或者替换一个XML文档的节点 |
删除一个XML文档的节点 |
获取一个XML文档节点的属性 |
创建或者替换一个XML文档节点的属性 |
删除一个XML文档节点的属性 |
下面是从网上粘的几个例子基本涵盖了大部分的XCAP操作
HTTP GET 获取一个XML文档节点举例
HTTP GET 获取一个XML文档节点属性举例
创建一个XML文档节点举例
替换一个XML文档节点举例
删除一个XML节点举例.