CN101300577B - 部分xml确认 - Google Patents

部分xml确认 Download PDF

Info

Publication number
CN101300577B
CN101300577B CN2006800410565A CN200680041056A CN101300577B CN 101300577 B CN101300577 B CN 101300577B CN 2006800410565 A CN2006800410565 A CN 2006800410565A CN 200680041056 A CN200680041056 A CN 200680041056A CN 101300577 B CN101300577 B CN 101300577B
Authority
CN
China
Prior art keywords
xml document
xml
document
pattern
operator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2006800410565A
Other languages
English (en)
Other versions
CN101300577A (zh
Inventor
D·托米克
S·保尔
G·舒浩勒
I·塞里
W·余
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101300577A publication Critical patent/CN101300577A/zh
Application granted granted Critical
Publication of CN101300577B publication Critical patent/CN101300577B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

修改存储在关系型数据库中的XML文档的一部分包括将对该文档的操作转换成算子树。该算子树包括对应于用于经修改的数据的模式的第一部分的第一算子和对应于用于经修改的数据的模式的父部分的第二算子。从总体文档模式中提取该模式的第一和第二部分。使用该第一算子,用该模式的第一部分来执行对经修改的数据的第一确认。这形成了一经部分确认的XML文档部分。接着使用第二算子,用该模式的第二部分执行对该经部分确认的XML文档部分的第二确认。该XML文档约束被验证,并且经修改的数据被合并到该XML文档中,由此当在经修改的数据中缺少某个XML文档模式类型时,避免了对该XML文档的完全确认。

Description

部分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文档的完全确认。
根据本发明的一方面,一种用于对XML文档执行部分XML确认的方法,所述方法包括:(a)接收修改XML文档的数据的用户请求(810),所述文档由一文档模式定义,所述数据受所述文档模式的第一部分约束,所述模式的第二部分包括所述第一部分的父部分,其中所述父部分包括对所述第一部分的约束;(b)将与所述请求相关联的XML文档转换成一算子树结构(820)以供一查询处理器执行,所述算子树具有对应于所述模式的第一部分的第一算子和对应于所述第一部分的父部分的第二算子;(c)提取所述模式的第一部分(830);(d)使用所述第一算子,用所述模式的第一部分执行对经修改的数据的确认(840)以形成一经部分确认的XML文档部分,该步骤包括:对所述经修改的数据执行深确认,其中对照所述模式的第一部分的约束检查所述经修改的数据,所述执行深确认包括递归地确认所述经修改的数据的完整逻辑实体;(e)提取所述模式的第二部分(850);(f)使用所述第二算子,用所述模式的第二部分执行对所述经部分确认的XML文档部分的确认(860),该步骤包括对所述经部分确认的XML文档执行浅确认,所述执行浅确认包括使用所述第二算子的父节点信息来执行确认;(g)验证所述经部分确认的XML文档部分与所述模式的第二部分的约束一致(870);以及(h)将所述经修改的数据合并到所述XML文档中(880),其中避免了对所述XML文档的完全确认。
根据本发明的一方面,一种用于修改用关系形式存储在XML文档中的数据的系统,所述系统包括:对应于存储在关系型数据库中的XML文档的XML模式;用于执行部分地确认所述XML文档的方法的查询处理器(920);以及用于接收表示对所述XML文档中的数据的修改的数据的用户界面(960),所述查询处理器执行以下步骤:接收修改所述数据的请求;将与所述请求相关联的XML文档转换成一算子树结构以供执行,所述算子树具有对应于所述模式的第一部分的第一算子和对应于所述第一部分的父部分的第二算子;提取所述模式的第一部分和第二部分,其中所述第一部分关联于要修改的数据,所述第二部分是第一部分的父部分;使用所述第一算子,用所述模式的第一部分执行对经修改的数据的确认以形成一经部分确认的XML文档部分,该步骤包括:对所述经修改的数据执行深确认,其中对照所述模式的第一部分的约束检查所述经修改的数据,所述执行深确认包括递归地确认所述经修改的数据的完整逻辑实体;使用所述第二算子,用所述模式的第二部分执行对所述经部分确认的XML文档部分的确认,该步骤包括对所述经部分确认的XML文档执行浅确认,所述执行浅确认包括使用所述第二算子的父节点信息来执行确认;验证所述经部分确认的XML文档部分与所述模式的第二部分的约束一致;以及将所述经修改的数据合并到所述XML文档中,其中避免了对所述XML文档的完全确认。
根据本发明的一方面,一种用于确认用关系形式存储的经修改的XML文档的系统,包括:(a)用于接收修改XML文档的数据的用户请求(810),所述文档由一文档模式定义的装置,所述数据受所述模式的第一部分约束,所述模式的第二部分包括所述第一部分的父部分,其中所述父部分包括对所述第一部分的约束;(b)用于将与所述请求相关联的XML文档转换成一算子树结构(820),以供查询处理器执行的装置,所述算子树具有对应于所述模式的第一部分的第一算子和对应于所述模式的第一部分的第二算子;(c)用于提取所述模式的第一部分和第二部分(830、850)的装置;(d)用于使用所述第一算子,用所述模式的第一部分执行对经修改的数据的确认以形成一经部分确认的XML文档部分(840)的装置,该步骤包括:对所述经修改的数据执行深确认,其中对照所述模式的第一部分的约束检查所述经修改的数据,所述执行深确认包括递归地确认所述经修改的数据的完整逻辑实体;(e)用于使用所述第二算子,用所述模式的第二部分执行对所述经部分确认的XML文档部分的确认(860)的装置,该步骤包括对所述经部分确认的XML文档执行浅确认,所述执行浅确认包括使用所述第二算子的父节点信息来执行确认;(f)用于验证所述经部分确认的XML文档部分与所述模式的第二部分的约束一致(870)的装置;以及(g)用于将所述经修改的数据合并到所述XML文档中(880)的装置,其中避免了对所述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):
<listOfCustomers>
    <customer CID=”123>
        <billingAddress>
            <street>Any Street</street>
            <zipCode>98052</zipCode>
              </billingAddress>
    </customer>
</listOfCustomers>
该数据的格式可以符合定义在列表中使用的数据类型的模式。在模式中使用约束来定义XML数据内容内的每个数据字段。如果要添加附加地址(Address),那么该附加地址数据必须也符合定义XML格式的数据的模式。可以如下用XML来表示添加的地址,例如运送地址(shippingAddress)条目:
<list of customers>
    <customer CID=”123>
        <billing address>
            <street>Billing Street</street>
            <zip code>98052</zip code>
        </billing address>
              <shippingAddress>
            <street>Shipping Street</street>
            <zip code>98052</zip code>
        </shippingAddress>
    </customer>
</list of customers>
以上示例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的递归操作。在该示例中,深确认使用来自适用于<shippingAddress>标签的所选模式约束的信息,将其应用于新的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)中是唯一的。因此,如果<shippingAddress>要包含ID属性,那么维护ID值以便使其在XML实例中是唯一的。类似地,如果<shippingAddress>要指定IDREF,那么模式确认必须确保IDREF的目标(ID)存在于同一XML实例中。IDREFS是IDREF序列。IDREF和IDREFS都不应该包含悬挂引用,即对不存在的目标(ID)的引用。“key”定义了键值而“keyref”定义了对键值的引用。这要求确保键值在XML实例中是唯一的,且keyref引用现有的键值。类似地,可以为应该在XML实例中唯一的值定义“unique(唯一)”约束。所有这些都要求在新的XML实体中的唯一性检查和被引用的节点或值的存在。
本发明的一方面是使用用于提取部分确认所需的模式部分的过程。于2005年7月20日提交的,序号为11/185,310,题为Memory Cache Managementin 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浏览器或网络。
例如,可从微软公司获得的
Figure GSB00000083428600151
的NETTM平台包括服务器、诸如基于Web的数据存储等构建块服务以及可下载设备软件。虽然结合驻留在计算设备上的软件描述了此处的示例性实施例,但是本发明的一实施例的一个或多个部分也可以经由操作系统、应用程序编程接口(API)或协处理器、显示设备和请求对象中任一个之间的“中间人”对象来实现,这样使得操作可以由所有.NETTM的语言和服务以及其他分布式计算框架执行、支持或经由其访问。
如上所述,虽然结合各种计算设备和网络体系结构描述了本发明的示例性实施例,但是基本概念可以应用于其中期望实现XML部分确认方案的任何计算设备或系统。由此,结合本发明的各实施例描述的方法和系统可应用于多种应用程序和设备。虽然此处选择了示例性编程语言、名称和示例作为各种选择的代表,但是这些语言、名称和示例并非旨在是限制性的。本领域的普通技术人员会理解有提供达到本发明的各实施例所达到的相同、相似或等价系统和方法的对象代码的多种方式。
此处所描述的各种技术可以结合硬件、软件或(当合适时)两者的组合来实现。由此,本发明的方法和装置或其部分的某些方面可以采用体现在诸如软盘、CD-ROM、硬盘或任何其他机器可读存储介质等有形介质中的程序代码(即指令)的形式,其中当将程序代码载入到机器(诸如计算机)中或由机器执行程序代码时,该机器成为用于实现本发明的装置。
虽然结合各个附图的优选实施例描述了本发明的各方面,但应该理解,可以使用其他类似的实施例或可以对所描述的实施例作出修改和添加,用于执行本发明相同的功能而不背离本发明。此外,应该强调,构想了包括手持式设备操作系统和其他应用程序专用操作系统的各种计算机平台,尤其是在无线联网设备的数目持续激增的情况下。因此,所要求保护的本发明不应该被限制到任何单个的实施例,而是应该依照所附权利要求书的宽度和范围来解释。

Claims (14)

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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/268,090 2005-11-07
US11/268,090 US7774321B2 (en) 2005-11-07 2005-11-07 Partial XML validation
PCT/US2006/043412 WO2007056412A1 (en) 2005-11-07 2006-11-06 Partial xml validation

Publications (2)

Publication Number Publication Date
CN101300577A CN101300577A (zh) 2008-11-05
CN101300577B true CN101300577B (zh) 2011-03-16

Family

ID=38023598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800410565A Expired - Fee Related CN101300577B (zh) 2005-11-07 2006-11-06 部分xml确认

Country Status (4)

Country Link
US (1) US7774321B2 (zh)
KR (1) KR20080066943A (zh)
CN (1) CN101300577B (zh)
WO (1) WO2007056412A1 (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460129B2 (en) 2013-10-01 2016-10-04 Vmware, Inc. Method for tracking a schema in a schema-less database
US7912871B2 (en) * 2005-07-27 2011-03-22 Technion Research And Development Foundation Ltd. Incremental validation of key and keyref constraints
US7676746B1 (en) * 2005-12-06 2010-03-09 Vlad Alexander System and method for in-context authoring of alternate content for non-textual objects
US9495356B2 (en) * 2006-03-30 2016-11-15 International Business Machines Corporation Automated interactive visual mapping utility and method for validation and storage of XML data
US9460064B2 (en) * 2006-05-18 2016-10-04 Oracle International Corporation Efficient piece-wise updates of binary encoded XML data
US7996855B2 (en) * 2006-09-15 2011-08-09 Oracle International Corporation Personal messaging application programming interface for integrating an application with groupware systems
US8463852B2 (en) * 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US9292477B1 (en) * 2007-06-11 2016-03-22 Oracle America Inc. Method and system for data validation
US20090081545A1 (en) * 2007-06-28 2009-03-26 Ultralife Corporation HIGH CAPACITY AND HIGH RATE LITHIUM CELLS WITH CFx-MnO2 HYBRID CATHODE
GB0712935D0 (en) * 2007-07-04 2007-08-15 Deltamxl Ltd Representation of multiple markup language files in one file for the productionof new new markup language files
KR100888678B1 (ko) 2007-12-17 2009-03-13 고려대학교 산학협력단 Xml 기반의 접근 통제 모델의 정형 명세 방법, 그 장치및 이를 기록한 기록 매체
KR100953714B1 (ko) 2007-12-17 2010-04-19 고려대학교 산학협력단 Axml 기반의 접근 통제 모델의 정형 명세 방법, 그장치 및 이를 기록한 기록 매체
US8719693B2 (en) * 2008-02-22 2014-05-06 International Business Machines Corporation Method for storing localized XML document values
KR100912471B1 (ko) 2008-02-29 2009-08-14 충남대학교산학협력단 히스토그램과 평면적 크기 계산을 이용한 xml 스키마매칭 과정에서의 변환 질의의 적합성 검사 방법
US8868482B2 (en) * 2008-03-20 2014-10-21 Oracle International Corporation Inferring schemas from XML document collections
US8595263B2 (en) * 2008-06-02 2013-11-26 Microsoft Corporation Processing identity constraints in a data store
US8108419B2 (en) 2008-06-13 2012-01-31 International Business Machines Corporation Virtually applying modifications
US8024325B2 (en) 2008-06-25 2011-09-20 Oracle International Corporation Estimating the cost of XML operators for binary XML storage
US8165999B2 (en) * 2008-07-25 2012-04-24 International Business Machines Corporation XML/database/XML layer analysis
US20100030727A1 (en) * 2008-07-29 2010-02-04 Sivasankaran Chandrasekar Technique For Using Occurrence Constraints To Optimize XML Index Access
US8073843B2 (en) * 2008-07-29 2011-12-06 Oracle International Corporation Mechanism for deferred rewrite of multiple XPath evaluations over binary XML
DE102008059197A1 (de) * 2008-11-27 2010-06-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur verteilten Konfiguration von Telematik-Diensten in Kraftfahrzeug-Systemen
US8200714B2 (en) * 2009-05-08 2012-06-12 Oracle America, Inc. Apparatus, systems and methods for configurable defaults for XML data
US8473506B2 (en) * 2009-05-20 2013-06-25 Oracle International Corporation Type system for building extensible business applications
US20110010394A1 (en) * 2009-07-08 2011-01-13 International Business Machines Corporation Client-specific data customization for shared databases
US8255427B2 (en) * 2009-08-18 2012-08-28 Raytheon Company Generating modified schemas
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
US8938668B2 (en) 2011-08-30 2015-01-20 Oracle International Corporation Validation based on decentralized schemas
US20120221319A1 (en) * 2011-02-28 2012-08-30 Andrew Trese Systems, Methods and Media for Translating Informational Content
US10140320B2 (en) 2011-02-28 2018-11-27 Sdl Inc. Systems, methods, and media for generating analytical data
US8407235B2 (en) * 2011-03-09 2013-03-26 Microsoft Corporation Exposing and using metadata and meta-metadata
US9507874B2 (en) 2011-06-30 2016-11-29 International Business Machines Corporation Validation of schema and schema conformance verification
US9984054B2 (en) 2011-08-24 2018-05-29 Sdl Inc. Web interface including the review and manipulation of a web document and utilizing permission based control
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
US9971849B2 (en) * 2011-09-29 2018-05-15 International Business Machines Corporation Method and system for retrieving legal data for user interface form generation by merging syntactic and semantic contraints
US9626368B2 (en) * 2012-01-27 2017-04-18 International Business Machines Corporation Document merge based on knowledge of document schema
US20130282894A1 (en) * 2012-04-23 2013-10-24 Sap Portals Israel Ltd Validating content for a web portal
US9355150B1 (en) 2012-06-27 2016-05-31 Bryan R. Bell Content database for producing solution documents
US9317513B1 (en) * 2012-06-27 2016-04-19 Netapp, Inc. Content database for storing extracted content
TWI460598B (zh) * 2012-07-06 2014-11-11 Univ Nat Chunghsing 分支映射編碼處理方法
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
US9916306B2 (en) 2012-10-19 2018-03-13 Sdl Inc. Statistical linguistic analysis of source content
US10572442B2 (en) * 2014-11-26 2020-02-25 Microsoft Technology Licensing, Llc Systems and methods for providing distributed tree traversal using hardware-based processing
US10713232B2 (en) * 2018-04-16 2020-07-14 Computational Systems, Inc. Efficient data processing
US11016900B1 (en) * 2020-01-06 2021-05-25 International Business Machines Corporation Limiting table-of-contents prefetching consequent to symbol table requests

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1376386A2 (en) * 2002-06-27 2004-01-02 Microsoft Corporation System and method for enabling validation of an XML document that contains non-native XML
CN1622095A (zh) * 2004-12-27 2005-06-01 中国科学院软件研究所 可扩展标记语言文件存储及插入关系数据库表的方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19753665C2 (de) * 1997-12-03 2000-05-18 Johnson & Johnson Gmbh Tampon für die Frauenhygiene oder medizinische Zwecke sowie Verfahren zur Herstellung desselben
US7031956B1 (en) * 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
US6654734B1 (en) * 2000-08-30 2003-11-25 International Business Machines Corporation System and method for query processing and optimization for XML repositories
US6985902B2 (en) * 2001-02-05 2006-01-10 Threewide.Com, Inc. Method, system and apparatus for creating and accessing a hierarchical database in a format optimally suited to real estate listings
JP2003084987A (ja) * 2001-09-11 2003-03-20 Internatl Business Mach Corp <Ibm> Xml文書の妥当性を検証するためのオートマトンの生成方法、xml文書の妥当性検証方法、xml文書の妥当性を検証するためのオートマトンの生成システム、xml文書の妥当性検証システムおよびプログラム
US7210097B1 (en) * 2002-05-22 2007-04-24 Pitney Bowes Inc. Method for loading large XML documents on demand
US7373595B2 (en) * 2002-06-27 2008-05-13 Microsoft Corporation System and method for validating an XML document and reporting schema violations
US7346598B2 (en) * 2002-06-28 2008-03-18 Microsoft Corporation Schemaless dataflow within an XML storage solution
US7493603B2 (en) 2002-10-15 2009-02-17 International Business Machines Corporation Annotated automaton encoding of XML schema for high performance schema validation
JP2004364070A (ja) * 2003-06-06 2004-12-24 Hitachi Ltd マスキング可能な署名技術を用いた電子文書管理システム
EP1646942B1 (en) 2003-07-11 2012-12-26 Google, Inc. Xml validation processing
CN1829960A (zh) 2003-08-05 2006-09-06 皇家飞利浦电子股份有限公司 可扩展标记语言文档的基于概率的确认的方法和系统
US7130862B2 (en) * 2003-08-15 2006-10-31 International Business Machines Corporation Methods, systems and computer program prodcuts for validation of XML instance documents using Java classloaders
US8041687B2 (en) * 2003-09-30 2011-10-18 International Business Machines Corporation Dynamic generation of XML Schema for backend driven data validation
US7437374B2 (en) 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US7318063B2 (en) * 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US7386541B2 (en) * 2004-03-18 2008-06-10 Microsoft Corporation System and method for compiling an extensible markup language based query
WO2006004946A2 (en) * 2004-06-30 2006-01-12 Reactivity, Inc. Accelerated schema-based validation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1376386A2 (en) * 2002-06-27 2004-01-02 Microsoft Corporation System and method for enabling validation of an XML document that contains non-native XML
CN1622095A (zh) * 2004-12-27 2005-06-01 中国科学院软件研究所 可扩展标记语言文件存储及插入关系数据库表的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EP 1376386 A2,全文.

Also Published As

Publication number Publication date
CN101300577A (zh) 2008-11-05
US20070112851A1 (en) 2007-05-17
US7774321B2 (en) 2010-08-10
WO2007056412A1 (en) 2007-05-18
KR20080066943A (ko) 2008-07-17

Similar Documents

Publication Publication Date Title
CN101300577B (zh) 部分xml确认
US6996589B1 (en) System and method for database conversion
CN102713834B (zh) 管理记录格式信息
CN102073490B (zh) 转译数据库语言的方法及装置
JP5883557B2 (ja) データにメタデータを加える方法
JP4917744B2 (ja) ランタイムおよび設計でのテキスト変換と多言語サポートをするラベルシステム
JP2004503841A (ja) レガシコンピュータシステムからxmlデータをレポートするための方法とシステム
US20050097109A1 (en) Term database extension for label system
de la Vega et al. Mortadelo: Automatic generation of NoSQL stores from platform-independent data models
JP2003529829A (ja) レガシコンピュータシステムをモデル化するための方法とシステム
JP2003532173A (ja) Xmlスキーマを適用するための方法とシステム
CN101971176A (zh) 用于建立可扩展业务应用的类型系统
US8407235B2 (en) Exposing and using metadata and meta-metadata
US10540628B2 (en) Hierarchical business rule model
CN112764743B (zh) 一种基于数据模型驱动自动生成软件的方法
CN101853163B (zh) 一种基于组装业务建模的行业应用软件系统构建方法
US9021417B2 (en) Generating a subset model from a model
Iglesias-Molina et al. An ontological approach for representing declarative mapping languages
US20210256094A1 (en) Systems and methods for document management classification, capture and search
US20110252400A1 (en) Adding inheritance support to a computer programming language
JP6588988B2 (ja) 業務プログラム生成支援システムおよび業務プログラム生成支援方法
KR100943294B1 (ko) 데이터 포털 서비스 시스템 및 방법
JP6011790B2 (ja) ファイル管理装置およびコンピュータプログラム
US9361400B2 (en) Method of improved hierarchical XML databases
Rodriguez-Cruz et al. Automatic generation of printed representations of ecuadorian electronic invoices through XML data binding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110316

Termination date: 20191106

CF01 Termination of patent right due to non-payment of annual fee