- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据管理模块(Data Manager)新增功能说明书
文档负责人:朱金清
文档编写人:朱金清
文档系统版本号:OrientX Version 3.0
文档完成时间:2007/8/25
开发单位:中国人民大学IDKE实验室XML工作组
概述
本模块介绍数据在OrientX系统中的管理,包括数据的存储方法,数据的导入导出,数据的存取等。向上层查询模块提供接口的是DataManager类。它通过调用Schema类实现模式文档的解析和数据集的建立,通过调用ImportHandler类实现XML格式的文档的导入,上层模块利用它的导航接口可以提取想要的数据对象。
由于原来讲schema绑定到数据集中,造成了接下来要完成的更新功能的不便,本文档应运而生。
在schema和数据集分开的前提下,自然也就达到操作上的松耦合。Schema的创建和DataSet的创建是两个独立的步骤,同样的删除一个DataSet不再涉及Schema的删除。所以现在将修改(包括添加)的函数在下面第二部分中陈述。
数据结构描述
2.1 NxdbDataManager 类
NxdbDataManager类可以说是这个模块的主要接口的类,它的功能主要有
向上层提供管理数据接口,包括:
数据集的建立、删除
Schema的注册、删除
数据文件的导入导出
存取查询需要的数据
NxdbDataManager类就是封装了这些功能的接口,下面是NxdbDataManager类的具体实现
数据成员
成员函数
(1) int CreateDataSet(char* dataSetName)
函数名称 CreateDataSet() 函数输入 dataSetName: 要创建的DataSet的名称 函数输出 0 创建成功
-1 创建失败 函数功能 就是调用下层AccessManager接口,创建相应的data set。 函数算法描述 实现基本上比较简单,就是调用下层的函数接口
要做的事情主要有:
判断原来是否存在同名的DataSet
若不存在,则创建新的DataSet
(原来的系统)创建OidDataSet
(2) int ImportDoc(char* dataSetName,char* docName ,char* URL,StorageMode storageMode = DEBMode,EncoderMethod encoderMethod)
函数名称 ImportDoc() 函数输入 dataSetName: 文档导入的目标Data set name
docName: 要导入的文档名
URL: 当前导入文档对应的schema的URL
storageMode: 文档的存储格式(DEB,DSB,CEB,CSB)
encoderMethod:文档的编码方式(RegionCode32Encoder等) 函数输出 0 导入成功
-1 导入失败 函数功能 在指定的数据集中导入指定的文档,并按照指定的存储格式存储
注意:获取DTDTree的时候是通过URL在B+树中查找,然后获取相应的SchemaID(其实是页中的pageNo来标识),接着通过此SchemaID 函数算法描述 本文件主要是调用SAX2提供的文档导入接口,根据遍历文档遇到不同的节点而调用自定义的处理函数,因此在该函数主要是设置我们的处理函数。主要由SAX2XMLReader以下两个来完成:
setErrorHandler(ErrorHandler* const handler);
setContentHandler(ContentHandler* const handler);
(3)int RegisterSchema(char* dtdFileName,char* URL)
函数名称 RegisterSchema () 函数输入 dtdFileName: 要导入的schema的文件
URL: 要导入的schema的URL地址 函数输出 0 导入成功
-1 导入失败 函数功能 注册一个schema,并将其命名为URL,主要是在DataSet号为2的DataSet中注册一个Schema,主要完成的任务是将*.xsd文件读取出来并解析成DTDTree,然后将DTDTree打成流存储在磁盘中。 函数算法描述 利用SchemaParser将*.xsd文件解析成DTDTree
将DTDTree解析成字节流然后存储到磁盘中
将Schema存储后得到的SchemaNO和URL存储到Schema索引中,其中Schema索引包括URL,NO,RegisterTime,其中URL为主索引,而NO为二级索引。
(4)int Export
文档评论(0)