XCAP协议

来源:互联网 发布:java一般控件 编辑:程序博客网 时间:2024/06/03 15:12

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根节点下,属性arrerrorentry节点下的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节点举例.

0 0
原创粉丝点击