当前位置:文档之家› 一种XML文档更新操作的实现

一种XML文档更新操作的实现

!!收稿日期!

!""#$%%$"("修订日期!!""#$%!$%’!!作者简介!陆文卓!%’(’$"#男#安徽人#硕士研究生#主要研究方向$人工智能%!钟宁!%’(+$"#女#江苏人#硕士#主要研究方向$人工智能&知识工程%!陈兆乾!

%’&"$"#女#安徽人#教授#博士生导师#主要研究方向$人工智能&神经网络&机器学习*文章编号$%""%$’"+%!!""&"",$"%,&$"&

一种[_‘文档更新操作的实现

陆文卓!钟!宁!陈兆乾

"南京大学计算机软件新技术国家重点实验室!江苏南京!%""’#

#"S 52^B D C _N D !B C 6.1F N *O C .#

摘!要!文章描述了一种[_‘文档更新操作的设计和实现方法$对[_‘文档查询语言

[l D 5/0进行扩展!

增加[_‘文档的更新功能!并且在c S 55N 6系统的基础上实现了[_‘文档的更新操作$测试表明该方法对[_‘文档的更新效率有明显的提高$

关键词![_‘%[l D 5/0

%更新中图分类号!9)#%%*,!!!文献标识码!:

C 73*"7"0-$-+(0()U /N8(&=7"0-L 31$-"5.

#-"7‘a Y 52E ^B D C ?@8j <=

F 12!/(&($R $=@&A +’&(+’=,+’C +D $

K 165[_‘K C O D .526R B ".?

(%1#A [_‘V [l D 5/0V D P K 165%![_‘文档更新技术

当前普通的[_‘文档更新方法是通过[_‘文档编辑工具对[_‘文档进行手工修改’这类工具工作过程是先将[_‘文档装载入编辑工具#

手工修改后再由检查器确认其有效性’这种更新方法费时#需要一个有效地进行大数据量修改的方法’

[\D 5/0是可适用于任何类型的[_‘数据源的查询语言#它是一种将查询表示为表达式的功能语言’[\D 5/0中的查询主要使用>‘Y]表达式’>‘Y]表达式由>C /&‘56&Y B 5/5和]56D /2四种语言成分组成’其功能为$>C /和‘56用于选择要绑定的变量’不同之处在于>C /进行的是迭代绑定#而‘56只绑定一次’Y B 5/5提供一个谓词对绑定的变量进行筛选’]56D /2语句不参与查询#只负责返回查询结果’一个简单的例子如下$

>C /}6F 2K C O D .526L t N 123D 135J R H .N t M i N 123D 135‘56}O B F N K f s}6i O C J 6d %e ]56D /2}O B F N K

我们在[\D 5/0原有功能上扩展的更新功能包括对插入&删除和修改操作的支持#并且不对原有语法作任何修改’提出基于[\D 5/0的一系列原更新操作包括$

75N 565!O B F N K

"$删除]521.5!O B F N K #21.5

"$更名U 2J 5/6!O C 26526

"$插入U 2J 5/6h 54C /5!/54#O C 26526"$插入/54之前’仅对有序模型有效’

]5P

N 1O 5!O B F N K #O C 26526"$替换’相当于U 2J 5/6和75N 565操作的组合’

A D I $a P K 165!P 1665/2_16O

B #P /5K F O 165J #D P K 165j P "

$从目标元素开始#调用一个新的输入文档的匹配操作#返回由P

/5K F O 165J !逻辑表达式或谓词"过滤后的绑定’对于每个有效绑定的结合#递归调用更新操作#这将允许我们在复合[_‘结构内多层次上实现更新操作’

一个更新操作可以包含上述的若干个子操作#按序执行’用>‘Ya 表达式扩展原有的>‘Y]表达式#

即在>‘Y]的基础上加入更新操作a P

K 165替代原有的]56D /2’>‘Ya 表达式的形式如下$

75N 565}O B F N K C

]521.5}O B F N K 6C t 21.5t C

U 2J 5/6L }I F 2K d I 54C /5C

1465/}O B F N K e C

25S _166/F I D 65L 21.5?Q 1N D 5M C 25S _/54L 21.5?Q 1N D 5M C

k Q 1N D 5k C O C 26526d I 54C /5C 1465/}O B F N K e M C

]5P

N 1O 5}O B F N KS F 6B L 25S _166/F I D 65L 21.5?Q 1N D 5M C

25S _/54L 21.5?Q 1N D 5M C

k Q 1N D 5k C O C 26526M C

>C /}J D I _I F 2K F 23F 2[P 16B $J D I 5H P /?R R R Y B 5/5P /5K F O 165J ?R R R

a P K 165}I F 2K F 23m J D I j P m ?J D I j P n 4n

如果一个更新操作不会使被修改的数据违反它的类型定义#那么这个更新被称为是(安全)(有效的)’在[_‘应用

中通常使用797*Y #W%’’++或[_‘A O B 5.1*Y #W!""%I +来说明[_‘文档结构#在[_‘文档上的更新操作不能违反相关类型定义文档中的定义’我们把对更新操作的有效性检查加入更新过程#并且只对文档被修改的部分进行检查而非检查整个文档’而加入了有效性检验的[\D 5/0更新语句称之为先验[\D 5/0更新语句’

第!&卷第,期

!""&年,月

!

计算机应用

W C .P D 65/:P P

N F O 16F C 2J !

X C N R !&?

_10

?!""&万方数据

相关主题
文本预览
相关文档 最新文档