首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 修改 / 部分XML确认

部分XML确认

阅读:568发布:2021-06-11

专利汇可以提供部分XML确认专利检索,专利查询,专利分析的服务。并且修改 存储在关系型 数据库 中的XML文档的一部分包括将对该文档的操作转换成算子树。该算子树包括对应于用于经修改的数据的模式的第一部分的第一算子和对应于用于经修改的数据的模式的父部分的第二算子。从总体文档模式中提取该模式的第一和第二部分。使用该第一算子,用该模式的第一部分来执行对经修改的数据的第一确认。这形成了一经部分确认的XML文档部分。接着使用第二算子,用该模式的第二部分执行对该经部分确认的XML文档部分的第二确认。该XML文档约束被验证,并且经修改的数据被合并到该XML文档中,由此当在经修改的数据中缺少某个XML文档模式类型时,避免了对该XML文档的完全确认。,下面是部分XML确认专利的具体信息内容。

1.一种用于对XML文档执行部分XML确认的方法,所述方法包括:
(a)接收修改XML文档的数据的用户请求(810),所述文档由一文档 模式定义,所述数据受所述文档模式的第一部分约束,所述模式的第二部分包 括所述第一部分的父部分,其中所述父部分包括对所述第一部分的约束;
(b)将与所述请求相关联的XML文档转换成一算子树结构(820)以供 一查询处理器执行,所述算子树具有对应于所述模式的第一部分的第一算子和 对应于所述模式的父部分的第二算子;
(c)提取所述模式的第一部分(830);
(d)使用所述第一算子,用所述模式的第一部分执行对经修改的数据的 确认(840)以形成一经部分确认的XML文档部分;
(e)提取所述模式的第二部分(850);
(f)使用所述第二算子,用所述模式的第二部分执行对所述经部分确认 的XML文档部分的确认(860);
(g)验证所述经部分确认的XML文档部分与所述模式的第二部分的约 束一致(870);以及
(h)将所述经修改的数据合并到所述XML文档中(880),其中避免了 对所述XML文档的完全确认。
2.如权利要求1所述的方法,其特征在于,将所述XML文档转换成算 子树结构以供查询处理器执行包括:
解析所述XML文档以得出一抽象句法树;
将所述抽象句法树转换成一统一树;以及
将所述统一树转换成所述算子树结构。
3.如权利要求1所述的方法,其特征在于,提取模式的第一部分和第二 部分包括:
将所述文档模式分解成模式分量的表;以及
将所述文档的第一部分存储到高速缓冲存储器中。
4.如权利要求1所述的方法,其特征在于,使用所述第一算子,用所述 模式的第一部分执行对经修改的数据的确认以形成一经部分确认的XML文档 部分包括对所述经修改的数据执行深确认,其中对照所述模式的第一部分的约 束检查所述经修改的数据。
5.如权利要求4所述的方法,其特征在于,执行深确认包括递归地确认 所述经修改的数据的完整逻辑实体。
6.如权利要求1所述的方法,其特征在于,使用所述第二算子,用所述 模式的第二部分执行对所述经部分确认的XML文档部分的确认包括对所述经 部分确认的XML文档执行浅确认。
7.如权利要求6所述的方法,其特征在于,对所述经部分确认的XML 文档执行浅确认包括使用所述第二算子的父节点信息来执行确认。
8.如权利要求1所述的方法,其特征在于,将所述经修改的数据合并到 所述XML文档中,其中避免了对所述XML文档的完全确认包括:如果在所 述经修改的数据中不存在ID/IDREF、键/键引用和唯一约束中的任何一个,则 将所述经修改的数据合并到所述XML文档中并且避免完整确认。
9.一种用于修改用关系形式存储在XML文档中的数据的系统,所述系 统包括:
对应于存储在关系型数据库中的XML文档的XML模式;
用于执行部分地确认所述XML文档的方法的查询处理器(920);以及
用于接收表示对所述XML文档中的数据的修改的数据的用户界面(960)。
10.如权利要求9所述的系统,其特征在于,所述用户界面还包括用于检 查所述XML文档的查看器。
11.如权利要求9所述的系统,其特征在于,所述查询处理器执行以下步 骤:
接收修改所述数据的请求;
将与所述请求相关联的XML文档转换成一算子树结构以供执行;
提取所述模式的第一部分和第二部分;
使用所述第一算子,用所述模式的第一部分执行对经修改的数据的确认以 形成一经部分确认的XML文档部分;
使用所述第二算子,用所述模式的第二部分执行对所述经部分确认的 XML文档部分的确认;
验证所述经部分确认的XML文档部分与所述模式的第二部分的约束一 致;以及
将所述经修改的数据合并到所述XML文档中,其中避免了对所述XML 文档的完全确认。
12.如权利要求12所述的系统,其特征在于,提取模式的第一部分和第 二部分包括:
将所述文档模式分解成模式分量的表;以及
将所述文档模式的第一部分和所述文档模式的第二部分存储在一高速缓 冲存储器中
13.一种具有用于执行确认用关系形式存储的经修改的XML文档的方法 的计算机可执行指令的计算机可读介质,所述方法包括:
(a)接收修改XML文档的数据的用户请求(810),所述文档由一文档 模式定义,所述数据受所述模式的第一部分约束,所述模式的第二部分包括所 述第一部分的父部分,其中所述父部分包括对所述第一部分的约束;
(b)将与所述请求相关联的XML文档转换成一算子树结构(820),以 供查询处理器执行,所述算子树具有对应于所述模式的第一部分的第一算子和 对应于所述模式的父部分的第二算子;
(c)提取所述模式的第一部分和第二部分(830、850);
(d)使用所述第一算子,用所述模式的第一部分执行对经修改的数据的 确认以形成一经部分确认的XML文档部分(840);
(e)使用所述第二算子,用所述模式的第二部分执行对所述经部分确认 的XML文档部分的确认(860);
(f)验证所述经部分确认的XML文档部分与所述模式的第二部分的约束 一致(870);以及
(g)将所述经修改的数据合并到所述XML文档中(880),其中避免了 对所述XML文档的完全确认。
14.如权利要求13所述的计算机可读介质,其特征在于,将所述XML 文档转换成一算子树结构以供查询处理器执行的步骤包括:
解析所述XML文档以得出一抽象句法树;
将所述抽象句法树转换成一统一树;以及
将所述统一树转换成所述算子树结构。
15.如权利要求13所述的计算机可读介质,其特征在于,提取模式的第 一部分和第二部分的步骤包括:
将所述文档模式分解成模式分量的表;以及
用关系格式将所述文档模式的第一部分和所述文档模式的第二部分存储 在一高速缓冲存储器中。
16.如权利要求13所述的计算机可读介质,其特征在于,使用所述第一 算子,用所述模式的第一部分执行对经修改的数据的确认以形成一经部分确认 的XML文档部分的步骤包括对所述经修改的数据执行深确认,其中对照所述 模式的第一部分的约束检查所述经修改的数据。
17.如权利要求16所述的计算机可读介质,其特征在于,执行深确认的 步骤包括递归地确认所述经修改的数据的完整逻辑实体。
18.如权利要求13所述的计算机可读介质,其特征在于,使用所述第二 算子,用所述模式的第二部分执行对所述经部分确认的XML文档部分的确认 的步骤包括对所述经部分确认的XML文档执行浅确认。
19.如权利要求18所述的计算机可读介质,其特征在于,对所述经部分 确认的XML文档执行浅确认的步骤包括使用所述第二算子的父节点信息执行 确认。
20.如权利要求13所述的计算机可读介质,其特征在于,将所述经修改 的数据合并到所述XML文档中,其中避免了对所述XML文档完全确认的步 骤包括:如果在所述经修改的数据中不存在ID/IDREF、键/键引用和唯一约束 中的任何一个,则将所述经修改的数据合并到所述XML文档中并且避免了完 整确认。

说明书全文

背景

XML(扩展标记语言)提供了标记数据的标准方式,使得数据可以由诸 如Web浏览器以各种方式读取和解释。XML文档广泛地用于日常事务中。XML 模式是为XML数据模型定义模式定义语言的W3C(万维网联盟)标准。模式 定义可用于确认XML实例文档的内容和结构。

通常,XML模式被用于定义在XML文档中使用的数据格式。如果要更 新XML文档,那么经更新的信息必须符合相关联的模式置于文档的约束。XML 模式文档是使用不同于关系型数据系统的表格和列的方式表达的XML文档。 在XML模式文档中提供的类型信息也可用于检查XML查询的正确性,并优 化XML查询和XML存储。由此,对置于在XML文档中的数据满足模式约束 的验证是一个重要的考虑因素。在一些实例中,XML文档可能是较大的。一 个示例可以是其中列出大量客户以及他们的客户编号和一个或多个地址和其 他相关客户信息的客户列表。该信息可用于经由XML格式从一个位置转移到 另一个位置,但是也可用于经由关系型数据库来编辑或使用该信息。存储在关 系型数据库中的XML数据可以被存储为二进制大对象(BLOB)。由此,如 果需要对客户列表的更新,那么在关系型数据库存储中所存储的数据的结构也 必须匹配模式。

具有使用关系型结构存储XML模式文档的能至少具有以下优点。可以 使用关系型索引结构而非解析XML模式文档来有效地搜索类型定义。可以选 择性地将合适的XML模式文档(例如CustomerType(客户类型)定义)的片 段加载到存储器缓冲区中,以供XML实例的确认,这提供了显著的性能改进。 并且可以在关系型存储上提供SQL(结构化查询语言)视图,以供关系用户知 道所存储的XML模式文档。但是,用于操纵SQL和XML之间的数据的技术 是有限的,并且某些技术要求对SQL性能的很高代价,因为当作出仅对文档 一部分的更新时要确认整个XML文档。

概述

修改存储在关系型数据库中的XML文档的一部分通常导致整个XML 文档确认的代价。本发明提供了执行仅部分确认的技术。对XML文档中要修 改的数据而非整个文档执行部分确认。该方法包括将文档确认转换成算子树。 该算子树包括对应于用于依照XML模式确认经修改的数据的第一部分的第一 算子,和对应于依照XML模式确认经修改的数据的父部分的第二算子。从整 个文档模式中提取模式的第一和第二部分。使用第一算子和模式的第一部分执 行对经修改的数据的第一确认,即深确认。接着,使用第二算子,用模式的第 二部分执行对第一确认的结果的第二确认,即浅确认。验证XML文档约束并 且将经修改的数据合并到XML文档中,由此避免了对XML文档的完全确认。

附图简述

在附图中:

图1是依照本发明的一方面对关系型数据库中的XML数据的示例格式的 描述;

图2是描述依照本发明的一方面的用于部分确认的算子树的功能图;

图3是依照本发明的一方面对示例性XML文档树结构的描述;

图4是描述依照本发明的一方面的具有关系格式的XML模式文档的系统 的元素的框图

图5是依照本发明的一方面用于存储模式分量的元数据表的描述;

图6是示出依照本发明的一方面的用于填充图5中所描述的元数据表的步 骤的示例性流程图

图7是示出依照本发明的一方面的对产生增强型关系算子树的XML数据 的查询或数据修改语句的编译的的功能图;

图8是依照本发明的一方面的执行对XML文档的部分确认的示例性流程 图;以及

图9是其中可实现本发明的各方面的示例性计算环境。

说明性实施例的详细描述

示例性实施例

在本发明的一方面中,公开了一种提供用于将XML模式数据转化成关系 型数据库结构的元数据表的改进的高速缓存的方法。在一个SQL实现中,当 经由修改方法来修改类型化的XML列时,会发生确认以便确保新的值的符合 度。确认是查询执行的一部分,由此其对性能的影响最小是至关重要的。允许 修改类型化的XML文档的传统应用程序会在DML(数据修改语言)操作结束 时确认整个文档。在某些基于SQL的机器中,这会导致剧烈的性能影响,因 为XML文档可以是很大的(大至2GB)。为了减轻性能下降,可以使用在查 询执行时将确保XML数据确认检查绝对最小XML子树并且仍保持XML文档 整体完整性的算法和算子。

作为一个示例,考虑如下的XML格式的客户列表(listOfCustomers):

    

        

            Any Street

            98052

             

    

该数据的格式可以符合定义在列表中使用的数据类型的模式。在模式中使 用约束来定义XML数据内容内的每个数据字段。如果要添加附加地址 (Address),那么该附加地址数据必须也符合定义XML格式的数据的模式。 可以如下用XML来表示添加的地址,例如运送地址(shippingAddress)条目:

    

       

          Billing Street

          98052

        

             

            Shipping Street

            98052

        

     

以上示例XML是用于客户标识符(CID)“123”。但是可以有数千个这 种条目。如果置于关系型数据库中,则对于仅一个地址条目所需重新确认会迫 使对数据库中所有客户的所有条目的重新确认。一个优点是避免重新确认全部 数千个元素。一般地,通过确保该模式允许将运送地址元素添加到其内容中且 该运送地址元素是正确的结构应该足以确保特定的添加的新运送地址元素是 有效的。

为了确保上述条件,在该示例中考虑“shippingAddress”元素的兄弟元素 以及其父元素(“customer”(客户)元素)是足够的。如果查询执行装置可 以仅流过表示所插入的元素的父元素及其兄弟元素的记录而无需它们的内容, 且确认算子知道正在确认什么,那么一种方法是执行将确保对整个文档的确认 而无需重新确认整个文档的最少次数的操作。在该特定情形中,在查询执行期 间,确认算子将处理几十行而非可能的数千行(如果它必须确认整个文档)。

在本发明的一个实施例中,XML查询处理会涉及用其自己的格式将XML 数据作为BLOB(二进制大对象)存储在图1中所示的关系型数据库中。可以 通过按需将数据分散成预定义形状的行集或者访问已经是已预先分散的XML 数据的行集的XML索引来将XML数据置于关系形式中。图1描述了具有两 个列的表100;主键列110和数据列120。在该示例中,在数据列中表示的用 于客户ID 123的BLOB数据仅包含帐单地址(billing address)。然而,用于 客户ID 456的数据列BLOB同时包含帐单和运送地址。如果期望客户ID 123 的附加信息,诸如新的运送地址数据,那么将必须更新BLOB,但是也需要更 新XML文档以使其符合其模式。通常,这会涉及对整个文档的XML数据的 确认。但是当文档很大时,这是不期望的。在本发明的一方面,如果仅使用相 关XML模式的一部分,则可以避免完整文档确认。

图2是描述使用部分确认执行XML插入或删除数据操作的查询子树的流 程图。图2的查询子树描述了向上流动以便将新信息输入到存储在关系型数据 库中的XML Blob的操作。

参考图2,获取要输入的新数据(即新的XML实体),诸如客户ID 123 的运送地址295,并且作出确认请求215。要确认的数据和插入节点信息210 对于执行深确认操作220是必须的。深确认是将确认完整的逻辑XML实体205 的递归操作。在该示例中,深确认使用来自适用于标签的所 选模式约束的信息,将其应用于新的XML实体的特定数据,并且确认该新的 XML数据满足模式的深约束。接着可以使用插入算子225来将该新信息预先 插入到可由关系型数据库使用的形式。

浅确认操作245需要插入节点信息210以及新XML实体的父节点和模式 信息240两者。此处,使用用于确认正在被修改的子树的内容所需的最小XML 数据。为了获取该有限的模式信息,需要对相关模式信息的提取。以下进一步 解释了该提取。但是,简而言之,查询引擎将仅取出表示被插入或删除的元素 的父元素及其兄弟元素的行,并且使其流过对浅确认250的请求。使用XML 专用算子来扩充XML处理器的查询执行装置。深确认是由专用确认器来完成 的。在一个实施例中,该确认器可以包括不会递归到复杂内容中并忽略所有简 单数据类型的单个状态机。一旦在225的输出处执行了深确认并且在250的输 出处执行了浅确认,那么可以将新的数据与现有数据合并260。确认算子可以 对表示XML数据的关系输入执行XML确认。执行深确认确保对新数据的有 效性。对新数据的父元素的确认确保维护文档的完整性。一旦两者都完成了, 那么就执行部分确认。部分确认允许输入新的数据而无需执行时间密集型的完 整文档确认。

部分XML确认对多数XML模式结构起作用。但是某些XML模式约束, 诸如ID/TDREF和键/键引用(key/keyref)将整个XML实例作为它们的范围。 这样,对经修改的数据或其父部分的确认是不够的。在经修改的数据中这些 XML模式约束的出现会导致要确认整个XML文档。例如,ID是允许将标识 符与使用xs:ID类型属性或元素的元素相关联的XML模式特征。IDREF是对 一个这种ID的引用。在本发明的一方面,ID在单个XML实例(或文档或BLOB) 中是唯一的。因此,如果要包含ID属性,那么维护ID值以 便使其在XML实例中是唯一的。类似地,如果指定 IDREF,那么模式确认必须确保IDREF的目标(ID)存在于同一XML实例中。 IDREFS是IDREF序列。IDREF和IDREFS都不应该包含悬挂引用,即对不存 在的目标(ID)的引用。“key”定义了键值而“keyref”定义了对键值的引用。 这要求确保键值在XML实例中是唯一的,且keyref引用现有的键值。类似地, 可以为应该在XML实例中唯一的值定义“unique(唯一)”约束。所有这些 都要求在新的XML实体中的唯一性检查和被引用的节点或值的存在。

本发明的一方面是使用用于提取部分确认所需的模式部分的过程。于 2005年7月20日提交的,序号为11/185,310,题为Memory Cache Management in XML/Relational Data(XML/关系型数据的存储器高速缓存管理)的共同拥有 的美国专利申请讲授了一种提取模式的相关部分的方法,并且被整体地结合于 此。模式的相关部分被存储在高速缓存中。

具体地,用于XML文档的XML输入模式被分散到许多关系表中,并且 可以选择性地加载和高速缓存最经常使用的模式片段。此外,由于关系布局包 括若干个主要和次要索引,因此加载模式也是较快的。由于XML模式被分散 到表中,因此XML实例确认仅加载执行确认所必需的分量。在确认期间,仅 加载和高速缓存所使用的模式的部分。模式告诉缓存储存了为XML实例确认 优化的XML模式的存储器内表示。XML模式分量作为只读对象从元数据加载 到主存储器中,使得多个用户能够使用存储器内对象用于确认。如果在操作期 间改变XML模式,则使得该模式高速缓存条目无效。

一旦所需的方案被加载到关系表中,与类型、属性或元素定义相关的部分 将被添加到XSD类型高速缓存中,在实现中,使用与模式导入反向的机制: 首先创建符号表;接着,导出被高速缓存的确认结构。

图4示出了便于使用高速缓存和存储器管理的转换的系统400及其内部视 图。转换组件402通过将模式结构(例如XML模式)分解成元数据表来提供 转换能力,该元数据表可被选择性地访问以便于将XML数据接口到一关系型 数据结构。用户提供符合XML模式的数据。系统400确认实际上符合XML 模式的用户提供的数据。换言之,一数据库引擎查看用户提供的数据和模式, 并确定如何有效地确认数据。数据并不是以本机或原始二进制形式来存储的。 高速缓冲存储器和存储器管理接口(MMI)组件404便于将元数据表存储在高 速缓冲存储器中以供高速存取仅必需的XML分量。确认组件406便于仅加载 和高速缓存所使用的模式的部分。视图组件408允许用户查看表格形式的内部 元数据表。注意,虽然在图4中关于输入XML模式到关系的映射描述了高速 缓存和存储器管理,但是所公开的高速缓存管理体系结构不限于此,而是找出 在任何输入模式和一关系结构之间的转换的应用。

由于XML方案被分散到各表中,因此XML实例确认仅加载执行确认所 必需的分量。在确认期间,仅加载和告诉缓存所使用的模式部分。模式高存缓 存存储为XML实例确认优化的XML模式的存储器内表示。将XML模式分量 作为只读对象从元数据加载到主存储器中,使得多个用户可以使用该存储器内 对象用于确认。如果在操作期间改变XML模式,则使得该模式高速缓存条目 无效。

在持久化数据的最终阶段,新的节点填充描述XML模式类型的结构的元 数据表。图5示出了将XML模式数据502分散到其中的表的系统500。在一 个实现中,XML模式数据502被持久化为若干个表中的元数据:分量表504、 引用表506、放置表508、小平面(facet)表510和限定名表512。ID组件514 接口到XML模式数据502,以便将标识符(例如分量ID)分配给其每个分量。 高速缓冲存储器516接口到每个表(504、506、508、510和512),使得任何 单个表或表的组合的内容可以被访问并持久存储在其中,以便向关系型数据库 518提供改进的数据访问。

相应地,图6示出了将XML模式数据处理成表的方法600。在步骤601 处,将XML模式数据分解成具有所分配的ID的相关XML模式分量。在步骤 602处,将XML模式持久化为各表中的元数据。在步骤604处,确认过程仅 加载和高速缓存要使用的必需的模式分量。在步骤606处,使用描述XML模 式类型的结构的数据来填充各表。

在本发明的一方面中,在XML文档中标识节点。节点的标识使得可以将 对XML文档的查询和数据修改转换成算子树并且允许随后在深和浅确认过程 中插入节点专用信息。于2004年3月18日提交的,序号为10/803,283,题为 System And Method For Compiling An Extensible Markup Language Based Query (用于编译基于可扩展标记语言的查询的系统和方法)的共同拥有美国专利申 请讲授了一种将对XML数据的查询和数据修改转换成算子树以供查询处理器 执行的方法,其通过引用被整体结合与此。

本发明的一方面包括将XML文档转换成树结构。这种结构在图3中示出。 以下将进一步讨论将XML结构转换成树。树结构反映出XML文档的结构, 其中标签、数据和约束在节点结构中反映出来。在图3的结构中,示出了父节 点和兄弟节点390。最高节点371具有子节点372,它是节点373、380和374 的父节点。节点374是节点376和378的父节点。节点380是节点382和384 的父节点。节点384是节点385和386的父节点,而节点385是节点387和388 的父节点。在本发明的一方面中,如果在树结构中不存在节点380,但是期望 把它加入,则必须观察定义XML文档的XML模式的结构和约束。当编译XML 文档时可以为XML文档生成节点结构。

简而言之,用于编译基于XML的查询的方法包括由数据库引擎前端接收 XML表达式。该查询由关系型查询解析器来解析,并且所嵌入的XML表达式 被转发给XML解析器。XML表达式由XML解析器来解析以便产生一抽象句 法树。该抽象句法树接着被转发给XML操作生成器,该XML操作生成器将 抽象句法树转换成包括XML代数运算的统一树。该统一树然后被转发给XML 代数化器(algebrizer),XML代数化器将该统一树转换成包括增强型关系代 数运算的关系树。该关系树被嫁接到为所包含的关系型查询产生的对数运算 (log-op)树。该对数运算树得到一查询计划,该查询计划被转发给查询处理 器以供在查询处理器处优化和执行查询。

现在参考图7,包括XML表达式715的查询705可以由前端710接收和 操纵,以便生成用于执行查询705的查询计划755。除了解析查询705以产生 关系型抽象句法树725a之外,关系解析器722还将来自查询705的XML表达 式715传递给XML解析器732。XML解析器732接着解析XML表达式715 以便生成XML抽象句法树725b。

XML代数化器736将统一树结构735中的XML操作转换成包括增强型 关系运算的关系型对数运算树745。XML代数化器736递归地遍历统一树 735b。对于统一树735b的每个节点,生成一对应的关系子树。每个这种关系 子树包括在其相关联的统一树节点中执行XML代数运算所需的多个增强型关 系代数运算。该关系子树接着被插入到关系树745中。XML操作生成器734 将XML抽象句法树725b变换成包括XML代数运算的XML统一树结构735b。

XML代数化器736将统一树结构735b内的XML操作转换成关系型对数 运算树745。常规的关系代数运算不足以描述访问分层数据的XML操作。因 此,依照本发明的XML代数化将XML操作转换成增强型关系代数运算。关 系对数运算树745接着可以成为查询计划755的基础

图8描述了用于具有本发明各方面的示例性方法800的流程图。一开始, 包括查询处理器的计算设备接收修改XML文档的请求(步骤810)。对XML 文档的修改可以是添加、删除或改变XML文档中的数据。XML文档通常由定 义文档中数据的格式和数据内容约束的XML模式来管理。在本发明的一方面 中,XML数据以关系格式(即关系型数据库格式)存储,而对XML文档的任 何有效改变符合用于该文档的XML模式的约束。

先前或作为方法800的部分,XML文档被转换成一算子树结构(步骤 820)。算子树结构的转换涉及将XML文档解析成抽象句法树、将抽象句法树 转换成统一树,以及将统一树转换成算子树结构。

可以仅通过将数据及其属性(有时用元数据存储)和与XML文档中的期 望位置相关联的模式的特定部分作比较来确认经修改的XML数据。由此,提 取XML文档的第一部分(步骤830)。该第一部分与要修改的数据相关联。 可以执行深确认(步骤840)。深确认是对所插入数据的确认。深确认对照XML 数据的第一部分的格式和约束来检查经修改的部分。深确认涉及递归地确认经 修改数据的完整逻辑实体。由此,深确认可以逐个实体地(例如,逐个单词地 或逐个数字地)取得经修改的数据,并对照所提取的XML模式的第一部分来 确认数据。一旦完成了深确认,就完成了部分确认。部分确认是对照XML模 式的第一部分仅对经修改的数据的确认。

但是,父约束也对要修改的数据的有效性施加了限制。这些父约束被包含 在与XML模式的第一部分相关联的XML模式的父部分中。由此,提取XML 模式的第二部分(步骤850)。该第二部分是XML模式的第一部分的父部分。 提取XML文档模式的一部分涉及将XML模式分解成模式分量的表,并且将 该表存储在高速缓存中。该表可以使用关系型格式来存储。

执行浅确认(步骤860)。浅确认通过将部分确认结果与模式的第二部分 作比较来完成确认过程。模式的第二部分表示该模式对于经修改的数据所施加 的父数据约束。虽然部分确认结果可以指示经修改的数据格式和内容对于模式 的第一部分是正确的(深确认),但是浅确认检查修改是否与第二、父模式信 息的高级约束一致。例如,浅确认可以确认父模式信息允许经修改的数据的发 生次数、类型和格式。

如果浅确认与父模式约束不一致(步骤870),则该方法以拒绝经修改的 数据终止。如果经修改的数据与第一和第二所提取的XML模式一致,则可以 将该文档的经修改部分合并到完整的XML文档中(步骤880)。注意,该合 并可以是对用关系型格式存储的XML数据的修改。在一替换实施例中,如果 在步骤830处已知XML模式的第二部分的身份的先验知识,那么可以将提取 XML模式的第二部分(步骤850)与提取XML模式的第一部分(步骤830) 组合。

在某些情况下,方法800可以在步骤880处完成。在其他情况下,诸如存 在ID/IDREF或key/keyref的实例,则可能需要更广的确认(步骤890)。如果 在经修改的部分中没有其他引用,则该过程停止。如果在经修改的部分中有其 他约束,则执行对特殊XSD分量的文档级确认(步骤895)。

示例性计算设备

图9和以下讨论旨在提供一种其中可实现本发明的适当计算环境的简要 概括说明。虽然以下描述了通用计算机,但是这仅是一个单处理器的示例,具 有多个处理器的本发明的实施例可以使用其他计算设备来实现,诸如具有网络 /总线互操作性和交互的客户机。由此,本发明的各实施例可以在其中包含很少 或最少的客户机资源的网络化主存服务的环境中实现,例如其中客户机设备仅 用作到网络/总线的接口,诸如置于装置中的对象或其他计算设备和对象的网络 化环境。实际上,可以存储数据或从中可检索数据的任何地方都是期望的或合 适的操作环境。

尽管不是必需的,但本发明的各实施例也可经由操作系统来实现,以供设 备或对象的服务的开发者使用和/或包括在应用程序软件中。软件可以在诸如程 序模等由一个或多个计算机(例如客户机工作站、服务器、或其它装置)执 行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特 定任务或实现具体抽象数据类型的例程、程序、对象、组件、数据结构等。通 常,程序模块的功能可按需在各个实施例中组合或分布。此外,本领域技术人 员将理解,本发明的各实施例可在其它计算机配置中实践。适用的其它众所周 知的计算系统、环境和/或配置包括,但不限于,个人计算机(PC)、自动取 款机(ATM)、服务器计算机、手持式或膝上型装置、多处理器系统、基于微 处理器的系统、可编程的电子消费品、网络PC、电器、电灯、环境控制元件、 小型计算机、大型计算机等等。本发明的各实施例还可在任务由经通信网络/ 总线或其它数据传输介质链接的远程处理装置执行的分布式计算环境中实践。 在分布式计算环境中,程序模块可置于包括存储器存储装置的本地和远程计算 机存储介质中,且客户机节点可以进而用作服务器节点。

参照图9,用于实现本发明的示例系统包括计算机系统910形式的通用计 算装置。计算机系统910的组件可包括,但不限于,处理单元920、系统存储 器930以及将包括系统存储器在内的各种系统组件耦合到处理单元920的系统 总线921。系统总线921可能是若干总线结构类型中的任何一种,包括存储器 总线或存储器控制器、外围总线、以及使用多种总线体系结构的任一种的局部 总线。作为示例,而非限制,这些体系结构包括工业标准体系结构(ISA)总 线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标 准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为小背板 (Mezzanine)总线)。

计算机910通常包括各种计算机可读介质。计算机可读介质可以是能被计 算机系统910访问的任何可用介质,并包括易失性和非易失性介质、可移动和 不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质 和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算 机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、 可移动和不可移动介质。计算机存储介质包括但不限于随机存取存储器 (RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、闪存或 其它存储器技术、紧致盘只读存储器(CD ROM)、可重写紧致盘(CD-RW)、 数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储器或其它磁性 存储设备、或任何其它可用于存储所需信息并可由计算机系统910访问的介质。 通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可 读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语 “已调制数据信号”意指以在信号中编码信息的方式设置或改变其一个或多个 特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的 有线介质,和诸如声学、射频(RF)、红外线和其它无线介质的无线介质。以 上任何介质的组合也应包括在计算机可读介质的范围中。

系统存储器930包括诸如只读存储器(ROM)931和随机存取存储器 (RAM)932等易失性和/或非易失性存储器形式的计算机存储介质。基本输 入/输出系统933(BIOS)形式包含有助于如起动时在计算机系统910内元件 间传送信息的基本例程,通常存储在ROM 931中。RAM 932通常包含可被处 理单元920立即访问和/或当时正被操作的数据和/或程序模块。作为示例,而 非限制,图9示出了操作系统934、应用程序935、其它程序模块936、和程序 数据937。

计算机系统910还可包括其它可移动/不可移动、易失性/非易失性计算机 存储介质。仅作为示例,图9示出了读取和写入不可移动、非易失性磁性介质 的硬盘驱动器941,读取和写入可移动、非易失性磁盘952的磁盘驱动器951, 读取和写入可移动、非易失性光盘956,诸如CD-ROM、CDRW、DVD或其 它光学介质的光盘驱动器955。其它也可在示例性操作环境中使用的可移动/ 不可移动、易失性/非易失性计算机存储介质包括,但不限于,如磁带盒、闪存 卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器 941通常通过诸如接口940等不可移动存储器接口与系统总线921连接,而磁 盘驱动器951和光盘驱动器955通常通过诸如接口950等可移动存储器接口与 系统总线921连接。

如上所述并如图9所示的驱动器及其相关联的计算机存储介质为计算机 系统910提供计算机可读指令、数据结构、程序模块、和其它数据的存储。在 图9中,例如,硬盘驱动器941被示为存储操作系统944、应用程序945、其 它程序模块946、和程序数据947。注意,这些组件可以与操作系统934、应用 程序935、其它程序模块936、和程序数据937相同或不同。在此给予操作系 统944、应用程序945、其它程序模块946、和程序数据947的不同标号至少说 明它们是不同的副本。用户可通过诸如键盘962、以及通常称为鼠标跟踪球 或触摸板等的定位设备961等输入设备向计算机系统910输入命令和信息。其 它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫 描仪等等。这些和其它输入设备常常通过与系统总线921耦合的用户输入接口 960与处理单元920相连,但也可通过诸如并行端口、游戏端口或通用串行总 线(USB)等其它接口和总线结构连接。监视器991或其它类型的显示设备也 可通过诸如视频接口990等接口与系统总线921相连,该接口可以进而与视频 存储器(未示出)通信。除了监视器991之外,计算机系统也可以包括诸如扬 声器997和打印机996等可以通过输出外围接口995连接的其他外围输出设备。

计算机系统910可以使用与一台或多台远程计算机,诸如远程计算机980 的逻辑连接在网络化环境中操作。远程计算机980可以是个人计算机、服务器、 路由器、网络PC、对等设备或其它常见的网络节点,而且通常包括以上相对 于个人计算机系统910所描述的许多或全部元件,尽管在图9中仅图示了存储 器存储设备981。图9中所描绘的逻辑连接包括局域网(LAN)971和广域网 (WAN)973,但也可包括其它网络/总线。这样的网络化环境在家庭、办公室、 企业范围计算机网络、内联网和因特网上是常见的。

当用于LAN网络化环境中时,计算机系统910通过网络接口或适配器970 与LAN 971连接。当用于WAN网络化环境中时,计算机系统910通常包括调 制解调器972或其它用于通过诸如因特网等广域网973建立通信的装置。可以 是内置式或外置式的调制解调器972与系统总线921通过用户输入接口960或 其它适当机制连接。在网络化环境中,与计算机系统910相关的程序模块或其 一部分可存储在远程存储器存储设备中。作为示例,而非限制,图9示出了驻 留于存储器设备981中的远程应用程序98。应当理解,所示网络连接是示例性 的,且也可以使用其它用于在计算机间建立通信链路的手段。

鉴于个人计算和因特网的汇聚,已经和正在开发各种分布式计算框架。向 个人和企业用户等提供了用于应用程序和计算设备的可无缝地互操作和启用 Web的接口,使得计算活动日益面向web浏览器或网络。

例如,可从微软公司获得的的NETTM平台包括服务器、诸 如基于Web的数据存储等构建块服务以及可下载设备软件。虽然结合驻留在 计算设备上的软件描述了此处的示例性实施例,但是本发明的一实施例的一个 或多个部分也可以经由操作系统、应用程序编程接口(API)或协处理器、显 示设备和请求对象中任一个之间的“中间人”对象来实现,这样使得操作可以 由所有.NETTM的语言和服务以及其他分布式计算框架执行、支持或经由其访 问。

如上所述,虽然结合各种计算设备和网络体系结构描述了本发明的示例性 实施例,但是基本概念可以应用于其中期望实现XML部分确认方案的任何计 算设备或系统。由此,结合本发明的各实施例描述的方法和系统可应用于多种 应用程序和设备。虽然此处选择了示例性编程语言、名称和示例作为各种选择 的代表,但是这些语言、名称和示例并非旨在是限制性的。本领域的普通技术 人员会理解有提供达到本发明的各实施例所达到的相同、相似或等价系统和方 法的对象代码的多种方式。

此处所描述的各种技术可以结合硬件、软件或(当合适时)两者的组合来 实现。由此,本发明的方法和装置或其部分的某些方面可以采用体现在诸如软 盘、CD-ROM、硬盘或任何其他机器可读存储介质等有形介质中的程序代码(即 指令)的形式,其中当将程序代码载入到机器(诸如计算机)中或由机器执行 程序代码时,该机器成为用于实现本发明的装置。

虽然结合各个附图的优选实施例描述了本发明的各方面,但应该理解,可 以使用其他类似的实施例或可以对所描述的实施例作出修改和添加,用于执行 本发明相同的功能而不背离本发明。此外,应该强调,构想了包括手持式设备 操作系统和其他应用程序专用操作系统的各种计算机平台,尤其是在无线联网 设备的数目持续激增的情况下。因此,所要求保护的本发明不应该被限制到任 何单个的实施例,而是应该依照所附权利要求书的宽度和范围来解释。

相关专利内容
标题 发布/更新时间 阅读量
修改带 2020-05-11 472
一种修改中性笔 2020-05-12 880
修改分析流 2020-05-11 493
修改带式胶带 2020-05-13 179
修改比特流 2020-05-12 133
修改命令 2020-05-11 389
修改对象的基层 2020-05-13 91
引导过程修改 2020-05-13 886
修改液 2020-05-11 792
修改笔 2020-05-11 82
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈