下面通过一个例子来解释 FeedSync 协议。 该例子讲述当没有数据一致性冲突发生的的时候,FeedSync 如何工作。
这是一个简单基于RSS协议的XML, 描述我今天的任务列表。
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>todolist.xml</title>
    <description>Sample to do list</description>
    <link>http://www.example.com/index.html</link>
    <item>
      <title>Pay Bills</title>
      <description>Electric, Gas and Water Bills</description>
    </item>
  </channel>
</rss>
FeedSync 扩展在<item>下面加入了<sx:sync> 标签 以及 <sx:history> 标签
<?xml version="1.0"?>
<rss version="2.0" xmlns:sx="http://feedsync.org/2007/feedsync">
    <channel>
        <title>todolist.xml</title>
        <description>Sample to do list</description>
        <link>http://www.example.com/index.html</link>
        <item>
            <sx:sync id="101" updates="1" deleted="false" noconflicts="false">
                <sx:history sequence="1" when="2007-11-29T06:27:11Z" by="fsRSSConvert.js"/>
            </sx:sync>
            <title>Pay Bills</title>
            <description>Electric, Gas and Water Bills</description>
        </item>
    </channel>
</rss>
假设我有2台电脑(台式机和笔记本), 在台式电脑A 上我增加了“Buy groceries” 以及“Get car serviced” 任务项; 过了一会儿,我又在笔记本电脑B 上我增加了“Return books to library”以及“Get birthday gift for mother” 任务项。  这时,台式电脑A上的的XML 文件变成了
<item>
      <sx:sync id="101" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:11Z" by="fsRSSConvert.js"/>
      </sx:sync>
      <title>Pay Bills</title>
      <description>Electric, Gas and Water Bills</description>
    </item>
    <item>
      <sx:sync id="ep1.100" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:11Z" by="A"/>
      </sx:sync>
      <title>Buy groceries</title>
      <description>Get milk and eggs</description>
    </item>
    <item>
      <sx:sync id="ep1.101" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:12Z" by="A"/>
      </sx:sync>
      <title>Get car serviced</title>
      <description>Needs oil change</description>
    </item>
笔记本电脑B上的XML 文件就是
<item>
      <sx:sync id="101" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:11Z" by="fsRSSConvert.js"/>
      </sx:sync>
      <title>Pay Bills</title>
      <description>Electric, Gas and Water Bills</description>
    </item>
    <item>
      <sx:sync id="ep2.100" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:12Z" by="B"/>
      </sx:sync>
      <title>Return books to library</title>
      <description>2 books in total</description>
    </item>
    <item>
      <sx:sync id="ep2.101" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:12Z" by="B"/>
      </sx:sync>
      <title>Get birthday gift for mother</title>
      <description>She likes blue flowers</description>
    </item>
当两个电脑都做数据同步之后,通过FeedSync协议,服务器上将会对两个XML进行合并,最终形成
<item>
      <sx:sync id="101" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:11Z" by="fsRSSConvert.js"/>
      </sx:sync>
      <title>Pay Bills</title>
      <description>Electric, Gas and Water Bills</description>
    </item>
    <item>
      <sx:sync id="ep1.100" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:11Z" by="A"/>
      </sx:sync>
      <title>Buy groceries</title>
      <description>Get milk and eggs</description>
    </item>
    <item>
      <sx:sync id="ep1.101" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:12Z" by="A"/>
      </sx:sync>
      <title>Get car serviced</title>
      <description>Needs oil change</description>
    </item>
    <item>
      <sx:sync id="ep2.100" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:12Z" by="B"/>
      </sx:sync>
      <title>Return books to library</title>
      <description>2 books in total</description>
    </item>
    <item>
      <sx:sync id="ep2.101" updates="1" deleted="false" noconflicts="false">
        <sx:history sequence="1" when="2007-11-29T06:27:12Z" by="B"/>
      </sx:sync>
      <title>Get birthday gift for mother</title>
      <description>She likes blue flowers</description>
    </item>
 

[Web开发] 微软的RSS协议扩展 - FeedSync 介绍 (2)相关推荐

  1. [Web开发] 微软的RSS协议扩展 - FeedSync 介绍 (4)

    上一篇文章介绍了在2台电脑上同时修改数据的feedsync 同步过程, 今天再讨论一下当在2台电脑上同时删除同一个数据的情况. 假设最初feed 里面数据是这样的 <item>       ...

  2. python web开发 网络编程 HTTP协议、Web服务器、WSGI接口

    文章目录 1. HTTP协议 2. Web服务器 3. 静态服务器 创建 web_server.py 4. WSGI 接口 4.1 CGI 通用网关接口 4.2 WSGI 4.3 定义 WSGI 接口 ...

  3. [Web开发] 微软的 PHP+IIS+WinServer 开发培训资料/示例代码

    下载网址:  http://go.microsoft.com/?linkid=9656081 内容: PHP & SQL Server Demos Integrating SQL Server ...

  4. 云炬WEB开发教程2-2 node.js和npm介绍和安装

    一.node.js是什么?有什么用? 1.概述: a).Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用 ...

  5. 《web开发: 数据可视化(Echarts)介绍》

    一.数据可视化介绍 1. 什么是数据可视化 数据可视化主要目的:借助于图形化手段,清晰有效地传达与沟通信息 数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理 2. 数据可视化的 ...

  6. web开发在线培训,前端英文自我介绍

    1 transform属性 在CSS3中,可以利用transform功能实现文字或图像的旋转.缩放.倾斜.移动这4中类型的变形处理. (1)浏览器支持 到目前为止:Safari3.1以上.Chrome ...

  7. 静态Web开发 JQuery

    静态Web开发 JQuery 伍章 JQuery 1节 介绍JQuery和顶级对象 <<锋利的JQuery>> JQuery官网: http://jquery.com (下载j ...

  8. python网页运行环境_Python小牛叔Web开发1:安装Visual Studio Code配置Python运行环境...

    本系列是Python小牛叔Web开发系列,以Django为框架介绍如何使用Python来开发Web应用,本教程适合对于Web开发有基本知识的入门者. 1.安装Visual Studio Code编辑器 ...

  9. Python学习笔记:web开发1

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. 第一次使用aspnet_compiler失败记录
  2. 如何解决SSL/TLS握手过程中失败的错误?
  3. 蚂蚁面试:字符串在JVM中如何存放?
  4. Linux 面试最高频的 5 个基本问题!
  5. VTK:可视化之Kitchen
  6. node爬取某app数据_某APP次日留存数据报告
  7. mybatis-plus sql注入原理
  8. c++ 条码打印机句柄画图_FBA发货前期需要准备哪些工作?FBA发货准备工作、打印机要求介绍...
  9. python 矩阵合并_numpy 的矩阵合并与分割
  10. JAVA实现onvif的ptz控制_使用Onvif协议进行设备PTZ云台控制
  11. 打造具有物联网基因的现代化商业银行
  12. Project Server 2003配置部署指南_百度文库
  13. 程序员吐槽:组里新来一个“加班狂”,可把大家害惨了
  14. 小米8吃鸡战斗服务器响应超时,小米8使用1天真实体验,看完再决定买不买?
  15. Retrofit2的再封装实战—多线程下载与断点续传(三)
  16. 有关汉字编码、拼音输入法 大搜罗
  17. admin5-用户管理
  18. windowsxp下载python下载视频_Python 实现视频下载
  19. 苹果 watchOS 3.2 首个测试版:剧场模式、SiriKit
  20. edp和edt哪个好_香水edt和edp的区别

热门文章

  1. Struts2的Action编写
  2. Java语言程序设计(基础篇) 第二章
  3. js,jquery,css,html5特效
  4. .net大型分布式电子商务架构说明(转载来自头条)
  5. Javascript 链式运动框架——逐行分析代码,让你轻松了解运动的原理
  6. MySQL使用技巧收集,持续更新中......
  7. 想用Python爬小姐姐图片?那你得先搞定分布式进程
  8. 数据分析实例:企业需要什么样的数据分析人才?
  9. python教育学_跟着老男孩教育学Python开发【第三篇】:Python函数
  10. Jeecg-Boot 1.0 版本发布,基于SpringBoot+Mybatis+AntDesign快速开发平台