可扩展XML协作编辑与撤销及P2P系统视图选择与放置
1. 可扩展XML协作编辑与撤销
在XML协作编辑中,为了实现可扩展性和撤销功能,提出了一种支持撤销操作的可扩展XML协作编辑方法。
1.1 操作与效果计数器
存在多个副本(Replica 1、Replica 2、Replica 3),有插入(Add)、删除(Del)和撤销(undo)等操作。通过效果计数器来记录操作的效果,例如:
Add(idp,id)
Del(id,ts)
undo(Add(idp,id))
undo(Del(id,ts))
在渲染XML文档时,若属性 @add
的计数器至少为1,且属性 @del
的所有值的效果计数器至多为0,则该边可见。若边为文本,将其值写入XML文档;若边可见但非文本,则写入对应标签和属性。需计算属性的当前值,即值列表中最新的未撤销值。
1.2 正确性
为确保数据类型是CRDT(冲突无感知复制数据类型),保证最终一致性,需证明所有操作可交换。对于无撤销功能的XML CRDT,确保一致性的唯一要求是在插入节点后接收删除操作;有撤销功能时,此约束不再必要,删除操作会直接生成墓碑(tombstone)。
1.3 垃圾回收
- 无撤销的XML CRDT :根据Thomas Write Rule,需要为属性设置墓碑。
- 有撤销的XML