用于管理结构化文件的系统和方法

文档序号:6546057阅读:193来源:国知局
专利名称:用于管理结构化文件的系统和方法
技术领域
本发明涉及用于管理XML(Extensible Markup Language)文件那样的结构化文件(structured document)的系统和方法,特别涉及对结构化文件数据库进行管理的结构化文件管理系统(structured document management system)、结构化文件管理方法及程序。
背景技术
一般地,将具有逻辑结构(logical structure)的文件称为结构化文件。在结构化文件中,该文件的逻辑结构通过在该文件中记述的标签来表现。这种使用标签来表现逻辑结构的结构化文件适合在计算机中进行处理。
而且,作为使用标签来记述数据的语言,XML(Extensible MarkupLanguage)被广泛利用。XML具有可通过附带有意义的标签来进行数据的分层化(階層化)并且结构的自由扩展性强的特长。用这种XML记述的文件被称为XML文件(XML document)。XML文件作为使用标签逻辑性地以树结构表现的结构化文件的代表而众所周知。
一般地,XML文件作为文本(plain text)形式的文件来保存。此外,在一个文件中记述一个XML文件的情况居多。因此,多个XML文件作为与其相同数的多个文本形式文件来保存。
利用XML的特长存储XML文件,并且可对该文件中的任意的逻辑结构(文件结构)、即文件中的任意元素进行检索的数据库,被称为XML数据库(XMLDB)。而对XMLDB进行管理的软件被称为XMLDB管理系统(XMLDBMS)。以往的XMLDBMS一般是将XML文件以原有的文本形式、或独自的二进制形式存储在XMLDB中。在采用这样的XML文件存储方法的XMLDB中,所谓原来的多个XML文件的各个文件被分别分为各个文件的保存上的结构被继承。因此,在XMLDB中,分为多个文件的相同数的XML文件在这种分离的状态下,例如被原封不动地以文本形式存储。
因此,在从用户机终端上运行的应用程序对采用这样的XML文件存储方法的XMLDB进行检索的情况下,通过该应用程序作为检索结果获取的XML文件一般为文本形式。此外,在以独自的二进制形式存储XML文件的XMLDB中,可将作为检索结果的XML文件以该独自的二进制形式返回。但是,在独自的二进制形式的XML文件中,难以进行应用程序侧的后续的数据处理。因此,一般是XMLDBMS将从XMLDB检索出的独自的二进制形式的XML文件变换为文本形式后返回给应用程序。即,从XMLDB检索出的XML文件,在该XML文件被以文本形式存储的情况下自不必说,在被以独自的二进制形式存储的情况下,也以文本形式返回给应用程序。
另一方面,应用程序几乎都不原封不动地利用从XMLDBMS返回的文本形式的XML文件。即,处理XML文件的多数应用程序,利用XML处理器(XML语法分析程序)将获取的文本形式的XML文件变换(parse)为便于该应用程序利用的被称为语法分析后数据(语法分析后数据;parsed data)的形式。在这种XML语法分析程序的语法分析处理中,同时验证XML文件是否是遵循XML的语法(syntax)记述的。因此,根据XML文件的内容和量,对于应用程序来说语法分析处理成为高负载。
此外,在对XMLDB进行检索的结果跨越多个XML文件的情况下,获得的XML文件被分为多个。其原因是,原来的XML文件的保存上的结构被XMLDB中的XML文件的存储方式所继承。因此,对XMLDB中存储的XML文件的数据进行检索和更新的处理是以文件为单位,应用程序需要始终意识到以文件为单位。
在(日本专利)特开2003-157249(第0003及0013段)中,公开了将多个XML文件的集合变换为DOM(Document Object Model)集合存储在XMLDB中的方法。利用这种存储方法,应用程序在对被存储在XMLDB中的XML文件的数据进行检索和更新处理中,不必意识到以文件为单位即可。
如上所述,在以往的XMLDB中,XML文件以文本形式或独自的二进制形式存储在XMLDB中。因此,从用户机(用户机上运行的应用程序)检索利用这种被存储在XMLDB中的XML文件时,需要将作为检索结果得到的XML文件在用户机(或XMLDBMS)中进行语法分析。
但是,在其性质上,语法分析处理有可能成为用户机(或XMLDBMS)的高负载。而且,由于每次获取XML文件时都必需进行语法分析处理,用户机有可能需要支付高昂的处理成本。此外,在XMLDB中存储的XML文件的更新处理中,当其更新对象范围是XML文件的部分数据时,为了更新被存储在该XMLDB中的更新对象的数据,需进行以下处理再次进行语法分析加以更新,然后再恢复到原来的格式。

发明内容
本发明的目的在于提供一种结构化文件管理系统、结构化文件管理方法和程序,在每次根据来自用户机的请求从结构化文件数据库中获取与请求一致的结构化文件时,可不必在该用户机或结构化文件管理系统侧对该获取的结构化文件进行语法分析处理。
根据本发明的一个方案,提供一种结构化文件管理系统,对结构化文件数据库进行管理,该结构化文件管理系统包括语法分析处理部件,根据用户机提供的结构化文件存储请求,对存储对象的结构化文件进行语法分析;结构化文件存储部件,将通过对所述存储对象的结构化文件进行语法分析而获得的语法分析后数据存储在所述结构化文件数据库中;结构化文件获取部件,根据所述用户机提供的结构化文件获取请求,从所述结构化文件数据库获取对应于与该请求一致的结构化文件的数据的语法分析后数据;以及请求处理部件,将所述结构化文件获取部件获取的语法分析后数据返回到所述用户机。
在随后的描述中将指出本发明的附加优点,并且其一部分将根据其说明而容易地获得或通过实施本发明而了解。借助于下面所特别指出的手段或其组合可实现和获得本发明的优点。


包含于说明书中且构成说明书一部分的附图用于展示本发明的实施方式,并且,结合上述概括说明和下面对实施方式的详细描述,附图将解释本发明的原理。
图1表示本发明第1实施方式的结构化文件管理系统的结构框图。
图2表示在没有存储XML文件的XMLDB的状态下,只存在被称为“根”节点(“root”节点)、作为树结构的根的逻辑分层结构的XMLDB11的状态图。
图3表示在图2状态的XMLDB中,追加了XML文件(XML文件A)的语法分析后数据的状态图。
图4表示在图3状态的XMLDB中,追加了XML文件(XML文件B)的语法分析后数据的状态图。
图5表示图3状态的XMLDB中的该XMLDB的数据结构例的图。
图6表示图4状态的XMLDB中的该XMLDB的数据结构例的图。
图7表示结构化文件管理系统中存储处理步骤的流程图。
图8表示结构化文件管理系统中检索处理步骤的流程图。
图9表示结构化文件管理系统中获取语法分析后数据的处理步骤的流程图。
图10表示结构化文件管理系统中变更语法分析后数据的处理步骤的流程图。
图11表示本发明第2实施方式的结构化文件管理系统的结构框图。
图12表示结构化文件管理系统中存储处理步骤的流程图。
图13表示结构化文件管理系统中获取原XML文件的处理步骤的流程图。
具体实施例方式
以下,参照附图来说明本发明的实施方式。
图1是表示本发明第1实施方式的结构化文件管理系统10的结构框图。该结构化文件管理系统10通过局域网(LAN)等的网络N连接到用户机终端20。利用结构化文件管理系统10的应用程序(应用程序)21在用户机终端20上运行。结构化文件管理系统10由XML数据库(XMLDB)11、请求处理部12、结构化文件更新部13、语法分析处理部14、结构化文件参照部15、查询处理部(クエリ処理部)16以及存储位置管理部17组成。
XMLDB11是存储作为结构化文件的XML文件的数据库(结构化文件数据库)。这里,在XMLDB11中,存储通过对XML文件进行语法分析而获得的语法分析后的数据(parsed data)。即,应注意的是,如后文详述,XML文件不是以文本形式或系统独自的二进制形式存储在XMLDB11中。
请求处理部12接收来自用户机终端20上的应用程序21的请求并解析该请求。结构化文件更新部13在请求处理部12接收的请求是XML文件的存储请求的情况下,将通过对应用程序21请求的存储对象的XML文件进行语法分析而获得的语法分析后数据存储在XMLDB11中。后面将论述有关该XMLDB11中XML文件的存储方式。结构化文件更新部13在请求处理部12接收的请求是语法分析后数据变更请求的情况下,用通过对来自应用程序21的变更后的XML文件进行语法分析而获得的语法分析后数据来更新XMLDB11内的原来的语法分析后数据。
语法分析处理部14对结构化文件更新部13请求的XML文件进行语法分析。结构化文件参照部15在请求处理部12接收的请求是XML文件的检索请求的情况下,利用查询处理部16和存储位置管理部17,获取对应于与请求的检索条件一致的XML文件的数据的语法分析后数据在XMLDB11中的存储位置的信息。结构化文件参照部15在请求处理部12接收的请求是语法分析后数据获取请求的情况下,从XMLDB11获取被请求的语法分析后数据。
查询处理部16对检索请求指定的查询字符串进行解析。具体地说,查询字符串是以存储在XMLDB11中的语法分析后数据作为检索对象的XPath式或XQuery式。XPath式或XQuery式都是万维网联盟(World Wide WebConsortium(W3C))公开的通用的查询语言,为一般公众所周知。XPath式或XQuery式本来是操作语法分析后数据用的语言。但是,在本实施方式中,将其应用为将XML文件的语法分析后数据存储在XMLDB11中的数据存储方法。因此,在图1所示的结构化文件管理系统10中,XPath式或XQuery式可用作以XMLDB11中存储的数据作为对象的检索的语言。存储位置管理部17对XMLDB11中存储的语法分析后数据在所在该XMLDB中的存储位置的信息(存储位置信息)进行管理。
请求处理部12、结构化文件更新部13、语法分析处理部14、结构化文件参照部15、查询处理部16及存储位置管理部17可通过安装在计算机(例如数据库服务器计算机)中的特定的软件程序(例如结构化文件管理程序)来实现。通过该计算机(内的CPU)读取并执行该软件程序,由计算机执行分别对应于请求处理部12、结构化文件更新部13、语法分析处理部14、结构化文件参照部15、查询处理部16及存储位置管理部17的处理。这种程序可预先存储在计算机可读取的存储媒体中颁布。此外,该程序也可以通过网络下载(颁布)。
下面,依次参照图2至图6说明XMLDB11中的XML文件存储的概念。本实施方式中的XMLDB11的特征在于,不以文本形式或系统独自的二进制形式存储XML文件,而是以树结构将通过对XML文件进行语法分析所获得的语法分析后数据存储在XMLDB11中。
图2表示没有存储XML文件的XMLDB11的状态。在该状态下,在XMLDB11中,只存在被称为“根”节点的作为树结构的根的逻辑分层结构。该逻辑分层结构、即“根”节点具有将分别对应于多个XML文件的语法分析后数据集中存储的功能。
图3表示在图2状态的XMLDB11中,追加了XML文件(XML文件A)31的语法分析后数据(语法分析后XML文件)310的状态。在图3的例子中,XML文件(A)31被变换为语法分析后数据(语法分析后XML文件)310,存储于“根”节点之下。“根”节点与XML文件A的最高标签(最高节点)——book(“book”节点)为树结构中的父子关系(“根”节点为父)。即,在XMLDB11中,语法分析后数据(语法分析后XML文件)310被作为以“根”节点为根的树结构的部分树管理。以“根”节点为根的树结构可以说是一个虚拟的XML文件300的树结构。
图5表示图3的状态中、即XML文件(A)31的语法分析后数据(语法分析后XML文件)310被存储在XMLDB11中的状态下的该XMLDB11的数据结构例。在该阶段,语法分析后数据(语法分析后XML文件)310成为虚拟的XML文件300的树结构内的唯一的部分树。
被存储的各XML文件的数据结构被保存在XMLDB11中。存储于XMLDB11中的数据以构成树结构的节点(元素element)为单位来管理。因此,各节点被赋予唯一号码——节点ID。如图5所示,以构成该树结构的节点(元素)为单位管理虚拟的XML文件310的树结构的结构信息表51、以及管理该XML文件310的各节点(元素)的信息(节点信息)的节点信息块52存储在XMLDB11中。结构信息表51的项目数和节点信息块52的数与属于XML文件310的树结构的节点数一致。
结构信息表51的第i(i=1,2,…)的项目由分别对节点i的节点ID(ID=i)、该节点i的父节点的节点ID、该节点i的兄节点的节点ID、该节点i的弟节点的节点ID、以及该节点i的子节点的节点ID进行设定的字段构成。即,结构信息表51的各项目用于保持表示对应的节点在树结构中的位置关系的信息(结构信息)。另,若节点i中不存在父节点、兄节点、弟节点或子节点,在结构信息表51的第i项目的对应字段中,设定表示该节点不存在的特定的值(在图5中,用“-”表示)。
在本实施方式中,节点i中存在多个子节点时,结构信息表51中的第i项目的子节点的字段中,只设定长子节点的节点ID。例如,节点ID为2的“book”节点的子节点是节点ID分别为3、4及5的“title”节点、“author”节点及“publisher”节点,节点ID为3的“title”节点是长子。这种情况下,在结构信息表51的第2项目的子节点的字段中,设定“title”节点的节点ID(=3)。
另一方面,各节点信息块52用于将固有的信息(节点信息)保持在对应的节点中。这里,节点信息块52保持节点ID、该节点的标签名及该节点的值(元素值)。节点信息块52存储在XMLDB11中的位置由存储位置信息(块指针信息)来表示。在本实施方式中,设例如指示节点i的节点信息块52的存储位置信息,在结构信息表51的第i项目中的节点ID被设定的字段(节点ID字段)内,与该节点ID成对设定。当然,也可以使结构信息表51的各项目具有设定存储位置信息的专用的字段。
上述结构信息表51的项目信息(结构信息)及对应于该项目的节点信息块52,在将XML文件的语法分析后数据(语法分析后XML文件)存储在XMLDB11中时形成。如此,请注意,在本实施方式中,不是将XML文件以文本形式原封不动地或以系统独自的二进制形式存储在XMLDB11中。即在本实施方式中,XML文件的语法分析后数据(语法分析后XML文件)作为以“根”节点为根的树结构的部分树,被存储在XMLDB11中。具体地说,表示XML文件的各节点(元素)在该树结构中的位置关系的信息(结构信息)及该XML文件的各节点中固有的信息(节点信息)被存储在XMLDB11中。但是,为了简化说明,有时也将把有关该XML文件的语法分析后数据(语法分析后XML文件)的结构信息和节点信息存储在XMLDB11中表现为将XML文件的语法分析后数据(语法分析后XML文件)存储在XMLDB11中。
图4表示在图3状态的XMLDB11中,进一步追加了XML文件(XML文件B)32的语法分析后数据(语法分析后XML文件)320的状态。XML文件(B)32与XML文件(A)31同样,被变换为语法分析后数据(语法分析后XML文件)320,存储于“根”节点之下。“根”节点与XML文件B的最高标签(最高节点)——book(“book”节点)为树结构中的父子关系(“根”节点为父)。即,在XMLDB11中,与语法分析后数据(语法分析后XML文件)310同样,语法分析后数据(语法分析后XML文件)320也被作为以“根”节点为根的树结构的部分树来管理。
图6表示图4的状态、即XML文件(B)32的语法分析后数据(语法分析后XML文件)320在XML文件(A)31的语法分析后数据(语法分析后XML文件)之后存储于XMLDB11中的状态下的、该XMLDB11的数据结构例。这里,XML文件31及32的语法分析后数据(语法分析后XML文件)310及320都作为以“root”为根的树结构(虚拟的XML文件300的树结构)内的部分树存储于XMLDB11中。即,存储在XMLDB11中的所有的语法分析后数据(语法分析后XML文件)构成一个树结构。
在图6中,语法分析后数据(语法分析后XML文件)320的最高节点是作为节点ID被赋予9的“book”节点。这里,语法分析后数据(语法分析后XML文件)320中的节点ID为9的“book”节点作为语法分析后数据(语法分析后XML文件)310中的节点ID为2的“book”节点的弟节点形成关联。因此,对应于节点ID为2的“book”节点的、结构信息表51的第2项目中的弟节点的字段,从表示没有弟节点的状态“-”(参照图5)更新为将节点ID为9的节点(“book”节点)作为弟节点的状态。此外,在将语法分析后数据(语法分析后XML文件)320存储至XMLDB11中时,与该语法分析后数据(语法分析后XML文件)的节点数一致数量的项目(这里为7个项目)被追加到结构信息表51。
下面,以(1-1)存储处理、(1-2)检索处理、(1-3)语法分析后数据获取处理、及(1-4)语法分析后数据变更处理为例,按顺序说明图1所示的结构化文件管理系统10中的运行。
(1-1)存储处理首先,参照图7的流程图来说明由结构化文件管理系统10执行的存储处理的步骤。
现在,设用户机终端20的应用程序21向结构化文件管理系统10发出了XML文件的存储请求。这种情况下,结构化文件管理系统10内的请求处理部12从应用程序21接收存储请求和作为存储对象的XML文件(步骤S1)。
接着,请求处理部12对接收的请求进行解析(步骤S2)。如本例,当接收的请求是存储请求时,请求处理部12将从应用程序21接收的XML文件交送到结构化文件更新部13。结构化文件更新部13将该XML文件交送到语法分析处理部14。于是,语法分析处理部14对结构化文件更新部13交送来的XML文件进行语法分析(步骤S3)。然后,语法分析处理部14调查作为语法分析对象的XML文件在语法上是否合法,如果合法,则将通过对XML文件进行语法分析而获得的语法分析后数据返还给结构化文件更新部13。如果不合法,则该情况由结构化文件管理系统10通知应用程序21。
结构化文件更新部13将通过语法分析处理部14获得的语法分析后数据(语法分析后XML文件)的各节点的节点信息,以具有前述的图5或图6所示的数据结构的节点信息块52的形式存储在XMLDB11中(步骤S4)。即,结构化文件更新部13从存储对象的XML文件的语法分析后数据中获取该存储对象的XML文件的各节点的节点信息,存储在XMLDB11中。结构化文件更新部13将语法分析后数据及表示保持该语法分析后数据的节点信息的节点信息块52在XMLDB11内的存储位置的存储位置信息交送给存储位置管理部17。
于是,存储位置管理部17在XMLDB11中存储的结构信息表51中追加项目s,在该项目s中,保存包含有存储位置信息的图5或图6所示的数据结构的结构信息(步骤S5)。即,存储位置管理部17从存储对象的XML文件的语法分析后数据中,提取存储对象的XML文件的各节点的父子兄弟关系,将表示该提取出的父子兄弟关系的结构信息存储在XMLDB11中。
在该步骤S5中,存储位置管理部17在结构信息表51的对应项目中设定结构信息,以使存储对象的XML文件的最高节点(以下,称为节点X)和“根”节点为父子关系。此外,在步骤S4中,如果至少一个XML文件已经被存储在XMLDB11,则存储位置管理部17设定结构信息,以使被最新存储在该XMLDB11中的XML文件的最高节点和节点X为兄弟关系(节点X为弟)。
这样,存储位置管理部17对结构信息进行设定,以在保存语法分析后数据的结构信息时,使XMLDB11内的所有XML文件(语法分析后XML文件)成为一个树结构。然后,存储位置管理部17通知结构化文件更新部13请求结束。结构化文件更新部13将该请求结束通知请求处理部12。请求处理部12将该请求结束通过网络N通知用户机终端20的应用程序21(步骤S6)。
以上,对XML文件的存储处理进行了说明。在该存储处理中最具特征的处理是步骤S5。通过该步骤S5的处理,被存储在XMLDB11中的所有XML文件(语法分析后XML文件)形成一个树结构(虚拟的XML文件300)的部分树。
(1-2)检索处理下面,参照图8的流程图来说明结构化文件管理系统10中的检索处理的步骤。
现在,设用户机终端20的应用程序21向结构化文件管理系统10发出了XML文件的检索请求。这种情况下,请求处理部12从应用程序21中接收检索请求和用于检索的查询字符串(步骤S11)。
接着,请求处理部12对接收的请求进行解析(步骤S12)。如本例,若接收的请求是检索请求,请求处理部12将从应用程序21接收的查询字符串交送到结构化文件参照部15。结构化文件参照部15将该查询字符串交送到查询处理部16,请求解析该查询字符串。于是查询处理部16对结构化文件参照部15交送来的查询字符串进行解析(步骤S13)。在该步骤S13中,查询处理部16对查询字符串在语法上是否合法进行调查,如果合法,则将表示查询字符串的解析结果的解析数据(查询解析数据)返还给结构化文件参照部15。若不合法,则该情况被通知给应用程序21。
结构化文件参照部15将从查询处理部16返回的查询解析数据交送到存储位置管理部17。该查询解析数据包含至作为检索对象的节点(这里为XML文件的最高节点)的路径。因此存储位置管理部17根据查询解析数据,对保存在XMLDB11中的结构信息表51进行检索,获取与该查询解析数据一致的存储位置信息,即对应于由该查询解析数据表示的路径所指定节点的节点ID的存储位置信息(步骤S14)。存储位置管理部17将获取的存储位置信息和结束通知一起通知语法分析处理部14。该请求结束和获取的存储位置信息通过请求处理部12和网络N,由语法分析处理部14通知用户机终端20的应用程序21(步骤S15)。
由此,应用程序21可以获取与检索请求指定的查询字符串所示的检索条件一致的节点的节点信息(语法分析后数据的节点信息)的存储位置信息。应用程序21利用该存储位置信息,通过将后述的语法分析后数据获取请求或语法分析后数据变更请求发给结构化文件管理系统10,可以获取或变更(更新)由该存储位置信息指定的语法分析后数据(保持在节点信息块52中的节点信息)。当然,不仅限于存储位置信息,也可以是例如将与检索请求指定的查询字符串所示的检索条件一致的节点的节点信息、即对应于与检索条件一致的XML文件的数据的语法分析后数据返回到用户机终端20的应用程序21的结构。
再有,表示节点i中固有的节点信息的存储位置的存储位置信息与该节点i的节点ID,均包含在该节点i中固有的结构信息(结构信息表51内的项目信息)中。因此,通过使用该节点的节点ID并参照结构信息表51,可以获取与节点i对应的存储位置信息。因此,在上述步骤S14中,获取由查询解析数据所示的路径指定的节点的节点ID,在上述步骤S15中,将该获取的节点ID通知应用程序21也无妨。
(1-3)语法分析后数据获取处理下面,参照图9的流程图来说明结构化文件管理系统10的语法分析后数据获取处理的步骤。
现在,设用户机终端20的应用程序21向结构化文件管理系统10发出了语法分析后数据获取请求。这种情况下,结构化文件管理系统10内的请求处理部12从应用程序21接收语法分析后数据获取请求和应获取的语法分析后数据的存储位置信息(步骤S21)。该存储位置信息为,例如根据结构化文件管理系统10按照来自上述应用程序21的检索请求所进行的检索处理,该应用程序21从结构化文件管理系统10所获取的。
接着,请求处理部12对接收的请求进行解析(步骤S22)。如本例,当接收的请求是语法分析后数据获取请求时,请求处理部12将从应用程序21接收的存储位置信息交送到结构化文件参照部15。结构化文件参照部15根据该存储位置信息,从XMLDB11获取语法分析后数据(步骤S23)。结构化文件参照部15将获取的语法分析后数据与结束通知一起通知请求处理部12。该请求结束和获取的语法分析后数据由请求处理部12通过网络N通知到用户机终端20的应用程序21(步骤S24)。
(1-4)语法分析后数据变更处理下面,参照图10的流程图来说明结构化文件管理系统10中的语法分析后数据变更处理的步骤。
现在,设用户机终端20的应用程序向结构化文件管理系统10发出了语法分析后数据变更请求。这种情况下,请求处理部12从应用程序21接收语法分析后数据变更请求、应变更的语法分析后数据的存储位置信息和变更后的XML文件(步骤S31)。该存储位置信息为,例如根据结构化文件管理系统10依照来自上述应用程序21的检索请求所进行的检索处理,该应用程序21从结构化文件管理系统10获取的。这里,设该存储位置信息表示XML文件(XML文件A)31的“book”节点(“book”标签)的节点信息被存储的XMLDB11内的位置。此外,设变更后的XML文件为XML文件C。
接着,请求处理部12对接收的请求进行解析(步骤S32)。如本例,当接收的请求是语法分析后数据变更请求时,请求处理部12将从应用程序21接收的变更后的XML文件C交送到结构化文件更新部13。结构化文件更新部13将该XML文件C交送到语法分析处理部14。于是,语法分析处理部14对结构化文件更新部13交送来的XML文件C进行语法分析(步骤S33)。在该步骤S33中,语法分析处理部14对作为语法分析对象的XML文件C在语法上是否合法进行调查,若合法,则将语法分析后的数据返回到结构化文件更新部13。
结构化文件更新部13根据请求处理部12交送来的存储位置信息,从该XMLDB11获取被存储在XMLDB11中的语法分析后数据(即,变更前XML文件A的语法分析后数据)(步骤S34)。
结构化文件更新部13用步骤S33中语法分析处理部14获取的变更后XML文件C的语法分析后数据的节点信息来更新步骤S34中获取的变更前XML文件A的语法分析后数据的节点信息(步骤S35)。在该步骤S35中,结构化文件更新部13将更新后的语法分析后数据的节点信息重新存储在XMLDB11中原来的存储位置。结构化文件更新部13将被重新存储在该XMLDB11中的语法分析后数据和表示该语法分析后数据在XMLDB11中的存储位置的存储位置信息交送到存储位置管理部17。
存储位置管理部17用由结构化文件更新部13重新存储在XMLDB11中的语法分析后数据的结构信息,对该XMLDB11内的相应的旧结构信息进行更新(步骤S36)。由此,来自应用程序21的语法分析后数据变更请求前存储在XMLDB11中的XML文件A的语法分析后数据被置换为XML文件C的语法分析后数据。
然后,存储位置管理部17通知结构化文件更新部13请求结束。结构化文件更新部13将该请求结束通知请求处理部12。请求处理部12将该请求结束通过网络N通知用户机终端20的应用程序21(步骤S37)。
这样,在第1实施方式中,通过对XML文件进行语法分析而获得的语法分析后数据被存储在XMLDB11中。因此,作为XML文件的数据,应用程序21(用户机终端20)可以根据对结构化文件管理系统10的数据获取请求(语法分析后数据获取请求),从XMLDB11获取XML文件的语法分析后数据。由此,应用程序21(或结构化文件管理系统10)可以不必对从XMLDB11获取的数据进行高负载的语法分析处理,从而实现处理的高速化。该效果在从XMLDB11多次获取同一数据时尤为明显。
此外,在第1实施方式中,各XML文件的语法分析后数据被作为一个虚拟的XML文件的树结构的一部分(部分树)来管理。因此,可以用一次检索处理来执行原来被分为多个文件的相同数的XML文件的检索。此外,基于同样的理由,可用一次处理来执行原来被分为多个文件的相同数的XML文件的获取和删除。
图11是表示本发明第2实施方式的结构化文件管理系统100的结构框图。在图11中,对与图1等效的元件附以相同参照标号。
图11所示的结构化文件管理系统100与图1的结构化文件管理系统10的不同点在于,追加了原XML文件DB(原XML文件数据库)110、以及原XML文件存储位置管理部117。原XML文件DB110存储与语法分析后数据对应的原来的XML文件(例如文本形式的XML文件)。原XML文件存储位置管理部117将与语法分析后数据对应的原来的XML文件所在的原XML文件DB110中的存储位置的信息(存储位置信息)与该语法分析后数据在XMLDB11中的存储位置的信息(存储位置信息)对应管理。
下面,以(2-1)存储处理、(2-2)原XML文件获取处理为例,依次说明图11所示的结构化文件管理系统100中的运行。结构化文件管理系统100中的检索处理和语法分析后数据获取处理,分别与结构化文件管理系统10中的检索处理和语法分析后数据获取处理相同。
(2-1)存储处理首先,参照图12的流程图说明结构化文件管理系统100中的存储处理的步骤,。
现在,设用户机终端20的应用程序21向结构化文件管理系统10发出了XML文件的存储请求。这种情况下,在结构化文件管理系统10中,首先执行与图7的步骤S1至S5同样的处理(步骤S41至S45)。由此,从作为存储对象的XML文件的语法分析后数据获取的节点信息被存储在XMLDB11中。另,设定结构信息,以将表示从语法分析后数据提取的各节点的父子兄弟关系的结构信息存储在XMLDB11中,同时使XMLDB11内所有的XML文件(语法分析后XML文件)成为一个树结构。
于是,结构化文件更新部13将语法分析处理部14进行语法分析前的XML文件、即作为存储于XMLDB11中的语法分析后数据的基础的XML文件(这里为文本形式的XML文件)存储至原XML文件DB110(步骤S46)。
结构化文件更新部13将表示被存储在XMLDB11中的语法分析后数据在该XMLDB11中的存储位置的存储位置信息(XMLDB内存储位置信息)及、表示被存储在原XML文件DB110中的原来的XML文件在该原XML文件DB110中的存储位置的存储位置信息(原XML文件DB内存储位置信息)交送到原XML文件存储位置管理部117。于是,原XML文件存储位置管理部117将从结构化文件更新部13接收的XMLDB内存储位置信息和原XML文件DB内存储位置信息的对存储在原XML文件DB110中(步骤S47)。然后,原XML文件存储位置管理部117通知结构化文件更新部13请求结束。结构化文件更新部13将该请求结束通知请求处理部12。请求处理部12将该请求结束通过网络N通知用户机终端20的应用程序21(步骤S48)。
(2-2)原XML文件获取处理下面,参照图13的流程图说明结构化文件管理系统100中的原XML文件获取处理的步骤,。
现在,设用户机终端20的应用程序21向结构化文件管理系统10发出了原XML文件获取请求。这种情况下,结构化文件管理系统10内的请求处理部12从应用程序21接收原XML文件获取请求和语法分析后数据的存储位置信息(步骤S51)。该语法分析后数据的存储位置信息表示应获取的原XML文件的语法分析后数据被存储在XMLDB11中的位置。
接着,请求处理部12对接收的请求进行解析(步骤S52)。如本例,当接收的请求是原XML文件获取请求时,请求处理部12将从应用程序21接收的语法分析后数据的存储位置信息交送到结构化文件参照部15。结构化文件参照部15将该语法分析后数据的存储位置信息交送到原XML文件存储位置管理部117。原XML文件存储位置管理部117根据该语法分析后数据的存储位置信息参照原XML文件DB110,从而获取与该语法分析后数据的存储位置信息成对的原来的XML文件的存储位置信息(步骤S53)。原XML文件存储位置管理部117将获取的原来的XML文件的存储位置信息通知结构化文件参照部15。
结构化文件参照部15根据原结构化文件存储位置管理部117通知的原来的XML文件的存储位置信息,从原XML文件DB110获取原来的XML文件的数据(步骤S54)。结构化文件参照部15将获取的原来的XML文件的数据与结束通知一起通知请求处理部12。该请求结束和获取的原来的XML文件的数据从请求处理部12通过网络N而通知到用户机终端20的应用程序21(步骤S55)。
这样,在第2实施方式中,不只是XML文件的语法分析后数据被存储在XMLDB11中,并且与该语法分析后数据对应的原来的XML文件被存储在了原XML文件DB110中。不仅如此,表示语法分析后数据及原来的XML文件的各自存储位置的存储位置信息由原XML文件存储位置管理部117对应保存管理。因此,在第2实施方式中,除了上述第1实施方式中可获得的效果以外,还可以实现保证被存储于XMLDB11中的XML数据的正本性。而且,在第2实施方式中,可根据处理的内容或特性选择检索或数据获取的对象是语法分析后数据,还是原来的XML文件。
如上所述,在该各实施方式中,由于结构化文件数据库11中存储有通过对结构化文件进行语法分析而获得的语法分析后数据,所以对于来自用户机的结构化文件获取请求(结构化文件的检索或数据获取请求),可从结构化文件数据库11获取(检索)语法分析后数据作为与请求一致的结构化文件的数据,并将该语法分析后数据返回到用户机。由此,用户机(用户机上运行的应用程序)、甚或结构化文件管理系统10、100不需要对获取的结构化文件进行语法分析处理。因此,在每次从结构化文件数据库11获取与请求一致的结构化文件时,不必在用户机或结构化文件管理系统10、100对该获取的结构化文件进行语法分析处理。
而且,由于结构化文件的语法分析后数据作为一个虚拟的结构化文件的树结构的部分树被存储在结构化文件数据库11中,所以与结构化文件数据库11中存储的所有的结构化文件分别对应的语法分析后数据的各节点(元素)成为结构化文件数据库11内的唯一树结构内的节点。因此,用户机可穿透性地对结构化文件数据库11中存储的数据进行检索和更新等的处理,而不会意识到文件的差异。
此外,由于设有解析用于操作语法分析后的数据的通用查询语言的查询语言处理功能,所以用户机可以采用惯用的语言而不需要利用用于结构化文件获取(检索)的专用语言,可提高开发生产的效率。
本领域的技术人员会很容易地想到附加的优点和变化。因此,更宽方案的本发明并不限于本说明书中所展示和描述的具体细节和典型实施方式。所以,各种变化都可以实施,但不会脱离所附权利要求及其等同物所限定的总的发明构思的实质或范围。
权利要求
1.一种结构化文件管理系统,对结构化文件数据库进行管理,所述结构化文件管理系统包括语法分析处理部件(パ一ス処理手段),根据用户机提供的结构化文件存储请求,对存储对象的结构化文件进行语法分析;结构化文件存储部件,将通过对所述存储对象的结构化文件进行语法分析而获得的语法分析后数据存储在所述结构化文件数据库中;结构化文件获取部件,根据所述用户机提供的结构化文件获取请求,从所述结构化文件数据库获取对应于与该请求一致的结构化文件的数据的语法分析后数据;以及请求处理部件,将由所述结构化文件获取部件获取的语法分析后数据返回到所述用户机。
2.根据权利要求1所述的结构化文件管理系统,其中,所述结构化文件存储部件包括将通过对所述存储对象的结构化文件进行语法分析而获得的所述语法分析后数据,作为一个虚拟的结构化文件的树结构的部分树存储在所述结构化文件数据库中的部件。
3.根据权利要求2所述的结构化文件管理系统,其中,所述结构化文件存储部件包括第1存储部件,从通过对所述存储对象的结构化文件进行语法分析而获得的所述语法分析后数据中,获取作为所述虚拟的结构化文件的树结构的元素的各节点的节点信息并将其存储在所述结构化文件数据库中;以及,第2存储部件,从通过对所述存储对象的结构化文件进行语法分析而获得的所述语法分析后数据中,提取作为所述虚拟的结构化文件的树结构的元素的各节点的父子兄弟关系,将用于管理该提取出的父子兄弟关系的结构信息存储在所述结构化文件数据库中。
4.根据权利要求1所述的结构化文件管理系统,其中,所述结构化文件存储部件包括将与通过该结构化文件存储部件存储于所述结构化文件数据库中的语法分析后数据对应的原来的结构化文件存储在原结构化文件数据库中的部件。
5.根据权利要求4所述的结构化文件管理系统,其中,所述结构化文件获取部件包括根据所述用户机提供的原结构化文件获取请求,从所述原结构化文件数据库获取被请求的原来的结构化文件的数据的部件。
6.根据权利要求5所述的结构化文件管理系统,其中,还包括原结构化文件存储位置管理部件,使第1存储位置信息和第2存储位置信息形成对应并存储在所述原结构化文件数据库中,所述第1存储位置信息表示被存储在所述结构化文件数据库中的所述语法分析后数据在该结构化文件数据库内的存储位置,所述第2存储位置信息表示被存储在所述原结构化文件数据库中的该语法分析后数据的原来的结构化文件在该原结构化文件数据库内的存储位置,所述原结构化文件存储位置管理部件在所述用户机提供了包含第1存储位置信息的原结构化文件获取请求的情况下,从所述原结构化文件数据库获取与该第1存储位置信息形成对应的第2存储位置信息,所述结构化文件获取部件根据由所述原结构化文件存储位置管理部件获取的所述第2存储位置信息,从所述原结构化文件数据库获取由所述原结构化文件获取请求所请求的原来的结构化文件的数据。
7.根据权利要求1所述的结构化文件管理系统,其中,还包括存储位置管理部件,根据所述用户机提供的结构化文件检索请求而对所述结构化文件数据库进行检索,并获取第1存储位置信息,所述第1存储位置信息表示与该结构化文件检索请求一致的语法分析后数据存储于所述结构化文件数据库内的存储位置,所述请求处理部件包括将由所述存储位置管理部件获取的所述第1存储位置信息作为对于所述结构化文件检索请求的检索结果而返回到所述用户机的部件。
8.根据权利要求1所述的结构化文件管理系统,其中,还包括对用于操作所述语法分析后数据的通用的查询语言进行解析的查询语言处理部件,所述结构化文件获取请求包含所述通用的查询语言,所述结构化文件获取部件包括使所述查询语言处理部件解析所述结构化文件获取请求中包含的所述查询语言,根据其解析结果,从所述结构化文件数据库获取与该解析结果所示的请求一致的语法分析后数据的部件。
9.一种结构化文件管理方法,用于结构化文件管理系统中管理结构化文件数据库,该方法包括根据用户机提供给所述结构化文件管理系统的结构化文件存储请求,对存储对象的结构化文件进行语法分析;将通过对所述存储对象的结构化文件进行语法分析而获得的语法分析后数据存储在所述结构化文件数据库中;根据所述用户机提供的结构化文件获取请求,从所述结构化文件数据库获取对应于与该结构化文件获取请求一致的结构化文件的数据的语法分析后数据;以及将获取的语法分析后数据返回到所述用户机。
10.根据权利要求9所述的结构化文件管理方法,其中,还包括将对应于所述结构化文件数据库中存储的所述语法分析后数据的原来的结构化文件存储至原结构化文件数据库中。
11.根据权利要求10所述的结构化文件管理方法,其中,还包括根据所述用户机提供的原结构化文件获取请求,从所述原结构化文件数据库获取被请求的原来的结构化文件的数据;以及将所述获取的原来的结构化文件的数据返回到所述用户机。
12.一种程序,存储在计算机可读取的存储媒体中,使计算机对结构化文件数据库进行管理,所述程序包括使所述计算机根据用户机提供给所述结构化文件管理系统的结构化文件存储请求,执行对存储对象的结构化文件进行语法分析的处理;使所述计算机执行将通过对所述存储对象的结构化文件进行语法分析而获得的语法分析后数据存储在所述结构化文件中的处理;使所述计算机根据所述用户机提供的结构化文件获取请求,执行从所述结构化文件数据库获取对应于与该结构化文件获取请求一致的结构化文件的数据的语法分析后数据的处理;以及使所述计算机执行将所述获取的语法分析后数据返回到所述用户机的处理。
13.根据权利要求12所述的程序,其中,还包括使所述计算机执行将对应于存储于所述结构化文件数据库中的所述语法分析后数据的原来的结构化文件存储在原结构化文件数据库中的处理。
14.根据权利要求13所述的程序,其中,还包括使所述计算机根据所述用户机提供的原结构化文件获取请求,执行从所述原结构化文件数据库获取被请求的原来的结构化文件的数据的处理;以及使所述计算机执行将所述获取的原来的结构化文件的数据返回到所述用户机的处理。
全文摘要
结构化文件管理系统(10)对结构化文件数据库(11)进行管理。该结构化文件管理系统(10)包括语法分析处理单元(14),根据用户机(20)提供的结构化文件存储请求,对存储对象的结构化文件进行语法分析;结构化文件存储单元(13),将通过对所述存储对象的结构化文件进行语法分析而获得的语法分析后数据存储在所述结构化文件数据库(11)中;结构化文件获取单元(15),根据所述用户机(20)提供的结构化文件获取请求,从所述结构化文件数据库(11)获取对应于与该请求一致的结构化文件的数据的语法分析后数据;以及请求处理单元(12),将所述结构化文件获取单元(15)获取的语法分析后数据返回到所述用户机(20)。
文档编号G06F17/27GK1766876SQ20051006460
公开日2006年5月3日 申请日期2005年4月15日 优先权日2004年10月29日
发明者中西基起 申请人:株式会社东芝, 东芝解决方案株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1