XCAP协议
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節點舉例.
總結
- 上一篇: Hdfs 常用命令
- 下一篇: animate 实现滑动切换效果