用于把一xml文档转换为至少一个依据一组xml文法规则的子集构造的xml文档的方法和系统的制作方法

文档序号:6423629阅读:209来源:国知局
专利名称:用于把一xml文档转换为至少一个依据一组xml文法规则的子集构造的xml文档的方法和系统的制作方法
技术领域
本发明通常涉及数据处理。特别地,本发明涉及一种用于把一个依据一组XML文法规则构造的可扩展标记语言(XML)文档转换为至少一个依据该组XML文法规则的一个子集构造的XML文档。
相关技术背景可扩展标记语言(XML)正浮现作为一种用于构造经由万维网(WWW)传输的文档的通用语言。XML包含一组用于构造文档、主要是基于万维网的文档的XML文法规则,以便提供这样的文档的可扩展性、可移植性、和适应性。
例如,包含一个超过八十个文法规则的文法规则组的XML 1.0向客户提供了增加了的文档处理性能,诸如响应于一个搜索查询快速地经由Internet访问具体数据,以及通过执行更少的文档查找例程来定位一个具体文档来减小在服务器上的处理负载。因此,XML是一个显著地减小网络数据通信量和改善查询搜索响应时间的工具。
为了处理一个以XML构造的文档,该XML文档首先由一个XML分析器分析。XML分析器一般是一组存储在一个计算设备,诸如服务器或者PC内的可编程指令。XML分析器依据XML文法规则组提取该XML文档的数据单元。其次,存取伴随着该XML文档的一个可扩展样式语言(XSL)样式表。该XSL样式表阐明用于检索该XML文档选定提取的数据单元、以及把它们重新格式化为另一种用于它们呈现的格式或者把它们转换为基于万维网的语言,诸如HTML的指令。
提取的数据单元和XSL样式表被提供给一个可扩展样式语言转换(XSLT)引擎,该引擎具有用于依据由该XSL样式表阐明的指令转换每个提取的数据单元的软件模块。
能够访问Internet或者其它网络用于允许客户参加电子商务以及通过有线或者无线网络连接存取数据的个人数字助理(PDA)、蜂窝电话、机顶盒等具有有限的处理和信息存储资源。因此,这些计算设备,亦称为瘦设备,当例如经由一个网络接收XML文档和XSL样式表时,通常不具有足够的资源用于处理和存储一个用于分析接收的XML文档以提取数据单元的XML分析器的可编程指令。它们通常还不具有足够的资源用于处理和存储用于依据由XSL样式表阐明的指令转换提取的数据单元的XSLT引擎中的软件模块。
因此,瘦设备已经被提议在其中提供一个微分析器用于分析接收的XML文档以提取数据单元。该微分析器将包含指示该XML文法规则组的仅仅一个子集的可编程指令,以放弃过载处理资源和使用该瘦设备中太多的存储资源用于存储整个XML文法规则组。由这样的一个瘦设备接收的XML文档将必须依据该XML文法规则组的子集,即该瘦设备的微分析器被编程具备的文法规则子集构造,以便允许该瘦设备正确地分析进来的XML文档以及把该文档正确地转换为一种可用和可理解的格式。
然而,为所有瘦设备提供相同的微分析器是不实用和不切实际的。因而,可以想象有许多瘦设备将在市场中销售,其中每个瘦设备很可能具有一个和其它瘦设备不同的微分析器,即蜂窝电话的微分析器将很可能用一个和PDA的微分析器所被编程的XML文法规则组子集不同的子集进行编程。例如,蜂窝电话很可能具有一个用七个XML文法规则编程的微分析器,而且PDA很可能具有一个用十二个XML文法规则编程的微分析器。
因此,一个具有以依据全套XML文法规则的XML构造的数据的XML文档不可能由具有用该全套XML文法规则的仅仅一个子集编程的微分析器的计算设备正确地转换或者转化。
因此存在这样一种需要一种用于把一个依据一组XML文法规则构造的可扩展标记语言(XML)文档正确地转换为一个或多个依据该组XML文法规则的一个或多个子集构造的XML文档。
发明概述本发明提供了一种用于把一个依据一组XML文法规则构造的XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档。本发明中的系统包含一个能够执行这样一组可编程指令的控制器,这些指令用于检索对应于一组XML文法规则的至少一个子集的至少一个文法限定样式表(GRSS),其中该至少一个GRSS包含用于把一个XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的转换规则;以及一个转换引擎,用于使用每个检索的GRSS的转换规则把该XML文档数据单元转换为依据该XML文法规则组的至少一个子集构造的数据单元,以把该XML文档转换为至少一个依据该XML文法规则组的至少一个子集构造的XML文档。
该方法步骤检索对应于一个XML文法规则组的至少一个子集的至少一个GRSS,其中该至少一个GRSS包含用于把一个XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的转换规则;以及使用至少一个检索的GRSS的转换规则把该XML文档的数据单元转换为依据该XML文法规则组的至少一个子集构造的数据单元,以把该XML文档转换为依据该XML文法规则组的至少一个子集构造的至少一个XML文档。
附图详细说明通过示例以及参考附图对本发明进行进一步的说明,其中附图为

图1是一个系统框图,说明了依据本发明、一个依据一个XML文法规则组的XML文档到依据该XML文法规则组的一个或多个子集构造的两个XML文档的转换;图2是由图1显示的一个服务器的框图,依据本发明,该服务器用于把该XML文档转换为依据XML文法规则组的一个或多个子集构造的XML文档;图3是一个瘦设备的框图,依据本发明,该瘦设备被配置用于接收依据该XML文法规则组的一个子集构造的一个XML文档;图4是一个显示了一个XML文法规则组和相关的XML文法规则组子集的范氏图;以及图5是依据本发明的一个XML文档转换过程的框图。
最佳实施例的详细说明参见图1,其显示了一个依据本发明的系统。该系统通常用参考数字5指示,并且包含一个起源服务器10,其被配置用于经由一个网络20,诸如Internet,传输一个依据一组XML文法规则构造的XML文档DOC1,诸如XML1.0,以及与DOC1有关的路由信息R1,到一个目的服务器30。该目的地服务器30包含用于启动一个XML文法限制器模块40来确定DOC1的所有目的地计算设备的软件模块。该XML文法限制器模块40使用路由信息RI用于确定DOC1的目的地计算设备。
该XML文法限制器模块40还确定DOC1的目的地计算设备是否包含一个被配置用于依据该XML文法规则组的一个或多个子集分析XML文档的微分析器。如果是这样的话,目的地服务器30提供一个用于该XML文法规则组的每个子集和DOC1的相应XML文法限制样式表(GRSS)到一个可扩展的样式语言转换(XSLT)引擎50。
该XSLT引擎50使用由GRSS提供的转换规则把文档DOC1转换或者转化成为一个或多个文档DOC2、DOC3,以便DOC2、DOC3依据XML文法规则的同一或者不同子集构造。应当理解转换或者转化涉及依据由一个GRSS提供的转换规则,把依据该XML文法规则组构造的一个文档中的数据单元转换成为依据该XML文法规则组的一个子集构造的数据单元。
应当考虑到本发明中的系统5还能够把依据该XML文法规则组一个子集构造的一个文档转换为依据该XML文法规则组的一个更大子集或者整个XML文法规则组构造的XML文档。即,该系统5能够反向转换XML文档。
在进来的XML文档DOC1被转换为XML文档DOC2、DOC3之后,转换了的文档DOC2、DOC3然后依据与DOC1有关的路由信息RI被传输到相应的设备60。即,例如,依据该XML文法规则的一个第一子集构造的DOC2被传输到用该XML文法规则的第一子集编程的两个设备60中的一个;依据该XML文法规则的一个第二子集构造的DOC3被传输到用XML文法规则的第二子集编程的另一个设备60。
目的地服务器30是一个服务器,诸如一个能够访问网络20用于接收DOC1的本地服务器或者中间服务器。目的地服务器30具有用于和设备60通信,用于传输DOC2、DOC3到那里的软件模块和硬件。在目的地服务器30和设备60之间的通信可以通过有线连接、无线连接、一个或多个网络、或者它们的组合。目的地服务器30包含至少一个处理器,用于执行存储在其中的软件模块中的可编程指令用于启动和操作该XML文法限制器模块40、XSLT引擎50、以及用于和设备60和网络20通信的通信硬件。
设备60是瘦设备或者其它具有有限处理和存储资源的设备,诸如一个无线电话、个人数字助理(PDA)、便携式计算机、机顶盒、智能遥控装置、或者其它类型的处理设备,它们具有一个微分析器用于分析依据该XML文法规则组的一个子集构造的XML文档。设备60包含一个处理器、存储器、和通信装置用于用于便于和目的地服务器30进行通信,如在本技术领域中已知的那样。
图2说明了目的地服务器30的XML文法限制器模块40和XSLT引擎50。如上所述,XML文法限制器模块40存取与每个接收的XML文档,诸如DOC1有关的路由信息,并且依据路由信息RI为每个XML文档确定目的地设备,例如设备60。该XMI文法限制器模块40进一步存储,或者访问一个GRSS集合,例如一个存储了GRSS的数据库。
每个GRSS包含用于一个XML文法规则组给定子集的文法转换规则,用于把一个依据该XML文法规则组构造的XML文档,诸如在图1中的DOC1,转换成为一个依据该XML文法规则组的给定子集构造的文档。如果一个XML文档的目的设备被编程来使用一个用于把接收的XML文档转换成为一种可用和可理解的格式的该XML文法规则组的子集,则该XML文法限制器模块40向该XSLT引擎50提供一个对应于该XML文法规则组的那个子集的GRSS。即,该XML文法限制器模块40接收进来的XML文档以及它们伴随的样式表,并且基于该进来的XML文档的预定目的设备确定一个用于该进来的XML文档的相应GRSS。
例如,在操作期间,参考图1,假如对于由目的服务器30接收的DOC1,XML文法限制器模块40检索一个对应于由DOC1的目的设备的微分析器使用的XML文法规则组的子集。进来的XML文档DOC1的目的地可以由XML文法限制器模块40使用在本技术领域中已知的方法和协议,诸如通过与进来的XML文档DOC1有关的路由信息RI,网关的使用,路由选择表的使用,或者依据附着于该进来XML文档DOC1上的内容,来进行确定。路由信息RI可以是内部数据,即在DOC1内的数据,与进来的XML文档DOC1有关的外部数据,或者经由在起源服务器10和目的服务器30之间的请求/响应程序提供的数据。
当确定DOC1的目的地时,XML文法限制器模块40确定目的设备60是否使用该XML文法规则组的一个子集。如果有超过一个的目的设备60用于DOC1,则确定对应于每个目的设备60的XML文法规则子集。该XML文法限制器模块40然后存取和检索对应于每个确定的文法规则子集的对应于该文法规则子集的GRSS,并且向XSLT引擎50提供每个GRSS用于转换DOC1并且输出DOC2、DOC3到对应的目的设备60,如图2所示。
因此,如果接收的XML文档DOC1用于向多个使用该XML文法规则组的不同XML文法规则子集的目的设备60传输,则该XML文法限制器模块40为每个不同的子集检索一个GRSS并且向该XSLT引擎50提供该GRSS用于执行多个处理过程,其中每个处理例程使用一个不同的GRSS用于转换DOC1,直到DOC1已经依据由每个检索的GRSS提供的文法转换规则转换了为止。假定该多个处理过程能够由XSLT引擎50同时或者顺序地执行。
如果DOC1被路由到一个或多个用该XML文法规则组的同一个子集编程的目的设备60,则该XML文法限制器模块40向该XSLT引擎50提供单个GRSS,即,对应于在每个目的地设备60内编程的XML文法规则组的子集的GRSS。XSLT引擎50然后分析和转换DOC1并且输出依据该XML文法规则组的同一子集构造DOC2、DOC3。DOC2、DOC3然后由目的服务器30传输到一个相应的目的设备60。
假定每个由目的服务器30输出的XML文档都具有一个依据它的相关路由信息RI的目的地指示符,诸如头端,来指示预定的目的设备60。
如果DOC1被路由到一个使用XML文法规则组,即不是该XML文法规则组的一个子集的目的设备,则通过XML文法限制器模块40或者一个在该XML文法限制器模块40之外的模块提供该DOC1到具有最初伴随着DOC1的样式表的XSLT引擎50。
一个查找表或者在本技术领域中已知的某些其它映射方案由XML文法限制器模块40使用来把该接收的XML文档DOC1的预定目的设备60和该XML文法规则组的相应子集进行关联。一旦该文法限制模块40确定了对应于该接收的XML文档DOC1的预定目的设备60的XML文法规则组的子集,则使用另一个查找表确定对应于该XML文法规则组的每个确定子集的GRSS。然后从GRSS集合或者GRSS数据库中检索一个或多个GRSS并且把它们提供给XSLT引擎50。该查找表最好存储在目的服务器30内或者一个外存储器内,并且经由目的服务器30的通信硬件进行访问。
该XML文法限制器模块40可以驻留在目的服务器30内或者在一个不同的服务器上,诸如在起源服务器10和目的服务器30之间的一个中间服务器上,以便它由模块40驻留在其上的服务器内的至少一个处理器执行。要考虑到该XML文法限制器模块40可以是一组可由一个用户,诸如通过购买一张CD或者经由网络20从一个远程服务器下载,而获得的指令。
继续参考图2,如在本技术领域已知的那样,该XSLT引擎50包含一个分析器52和一个转换模块54。分析器52从XML文法限制模块40接收以XML构造的一个文档DOC1和一个XSL样式表,并且依据该XML文法规则组分析该文档和XSL样式表。该XSLT引擎50输出分析了的文档和XSL样式表到该转换模块54。
该转换模块54接收分析了的XML文档和一个XSL样式表,解释该XSL样式表,基于该XSL样式表转换该XML文档,并且输出转换了的文档。在本发明中,XSL样式表是由XML文法限制器模块40提供的GRSS,用于依据该XML文法规则组的一个子集转换该XML文档。
图3显示了一个具有微分析器62、应用编程接口(API)64、和程序应用66的设备60。设备60接收DOC2、一个依据一个XML文法规则组的一个子集构造的XML文档。在该微分析器62内的处理器用该XML文法规则组的子集进行编程用于分析DOC2以及用于输出该分析了的DOC2到API64。API64是一个市场上可得到的API,诸如DOM或者SAXAPI,其提供了一个在微分析器62和程序应用66之间的接口。该程序应用66是一个或多个使用从微分析器62接收的数据用于控制该设备60的操作及/或执行一个应用的应用。例如,程序应用66可以经由API64处理从微分析器62接收的数据用于以一种在视觉上看得见的方式在设备60的一个显示器上呈现该数据,及/或使用设备60的扬声器以一种可听见的方式呈现数据。
参考图4和5,每个GRSS包含一组用于把以一种格式构造的数据转换为另一种格式的指令,即,用于实现一个转换过程400,以把依据一个完全文法规则组A构造的数据转换为依据该完全文法规则组A的一个子集,例如,由图4中的范氏图所示的子集Bl-Bn,构造的数据。举例来说,GRSS提供了用于把接收的DOC1转换成为依据该XML文法规则组的子集Bn构造的DOC2的文法转换规则。该文法规则子集Bn是在作为DOC2的预定目的设备的目的设备60的一个微分析器内编程的文法规则子集。
作为一个进一步的示例,参考图5,GRSS标识在一个不符合子集Bn文法规则的文档中的每个数据单元Epsilon。由XSLT引擎执行的转换过程400把每个不符合文法规则子集Bn的数据单元Epsilon转化或者转换成为一个符合至少一个文法规则子集Bn的数据单元F。
一个依据一个XML文法规则组构造的XML文档如下<pre listing-type="program-listing"><![CDATA[   <NFLResults From=”08/27/00” To=”09/02/00”>  <Team Name=”Atlanta”>    <Games>     <Win>   <Against>San Francisco</Against>   <Score>36/8</Score>   </Win>   <Lose/>   </Games>  </Team>  .....  </NFLResults>]]></pre>如下显示的同一个文档是在依据本发明由XSLT引擎50经由转换过程400,使用一个由该XML文法限制模块40提供的、对应于该XML文法规则组的一个子集的GRSS转换之后的文档。对该文档的改变以粗体显示。
<pre listing-type="program-listing"><![CDATA[  <NFLResults>  <From>08/27/00</From>  <To>09/02/00</To>  <Team>  <Name>Atlanta</Name>  <Games>   <Win>   <Against>San Francisco</Against>   <Score>36/28</Score>   </Win>   <Lose></Lose>  </Games>  </Team>  ....  </NFLResults>]]></pre>假定该XML文法限制器模块40和XSLT引擎50形成了XML文法限制器。该XML文法限制器包含一组被存储在一个计算机可读取介质,诸如磁盘和CD、或者存储器内的可编程指令。一个通用计算机,诸如PC或者服务器中的控制器或者处理器能够如上所述,运行XML文法限制器来从GRSS集合或者数据库中检索至少一个GRSS,并且把依据该XML文法规则组构造的XML文档转换为依据该XML文法规则组的子集构造的XML文档。要考虑到在该XML文法限制器内提供该GRSS集合或者数据库。
应当理解可以对在此公开的实施例进行各种修改,并且上述说明将不会被看作是限制,而是仅仅作为最佳实施例示例。因此,在本领域技术人员将会预见在附加于此的权利要求范围和精神之内的其它修改。
权利要求
1.一种用于把一个依据一组XMI文法规则构造的XML文档转换成为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的方法,该方法包含步骤检索对应于一个XML文法规则组的至少一个子集的至少一个文法限制样式表(GRSS),其中该至少一个GRSS包含用于把该XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的转换规则;以及使用至少一个检索的GRSS的转换规则把该XML文档的数据单元转换为依据该XML文法规则组的至少一个子集构造的数据单元,以把该XML文档转换为依据该XML文法规则组的至少一个子集构造的至少一个XML文档。
2.如权利要求1所述的方法,其特征在于检索和转换步骤由一个具有XML文法限制器模块和可扩展样式语言转换(XSLT)引擎的服务器执行。
3.如权利要求2所述的方法,其特征在于该XML文法限制器模块和XSLT引擎形成一个XML文法限制器。
4.如权利要求3所述的方法,其特征在于该XML文法限制器被存储在至少一个计算机可读介质内。
5.如权利要求1所述的方法,其特征在于该检索至少一个GRSS的步骤包含访问一个GRSS数据库的步骤。
6.如权利要求1所述的方法,其特征在于 检索对应于一个XML文法规则组的至少一个子集的至少一个文法限制样式表(GRSS)的步骤包含步骤确定用于该XML文档的至少一个目的设备;为至少一个目的设备确定该XML文法规则组的一个对应子集;以及检索一个对应于该XML文法规则组的对应子集的GRSS。
7.如权利要求6所述的方法,其特征在于为至少一个目的设备确定该XML文法规则组的一个对应子集的步骤包含使用一个查找表来把该至少一个目的设备和该XML文法规则组的对应子集相关联的步骤。
8.如权利要求6所述的方法,其特征在于检索一个对应于该XML文法规则组的对应子集的GRSS的步骤包含使用一个查找表来把该XML文法规则组的对应子集和GRSS相关联的步骤。
9.如权利要求1所述的方法,其特征在于使用每个检索的GRSS的转换规则用于转换该XML文档的数据单元的步骤包含步骤标识不是依据该XML文法规则组的至少一个子集中的文法规则构造的XML文档中的数据单元;以及把该标识的数据单元转换成为依据该XML文法规则组的至少一个子集的文法规则构造的数据单元。
10.一个用于把一个依据一组XML文法规则构造的XML文档转换成为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的系统,该系统包含一个能够执行这样一组可编程指令的控制器,这些指令用于检索对应于一组XML文法规则的至少一个子集的至少一个文法限定系统表(GRSS),其中该至少一个GRSS包含用于把一个XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的转换规则;以及一个转换引擎,用于使用每个检索的GRSS的转换规则把该XML文档数据单元转换为依据该XML文法规则组的至少一个子集构造的数据单元,以把该XML文档转换为至少一个依据该XML文法规则组的至少一个子集构造的XML文档。
11.如权利要求10所述的系统,其特征在于该控制器位于一个具有XML文法限制器模块和一个可扩展样式语言转换(XSLT)引擎的服务器中。
12.如权利要求11所述的系统,其特征在于该XML文法限制器模块40和XSLT引擎50形成一个XML文法限制器。
13.如权利要求10所述的系统,其特征在于该控制器包含用于为该XML文档确定至少一个目的设备的装置;用于为至少一个目的设备确定该XML文法规则组的一个对应子集的装置;以及用于检索一个对应于该XML文法规则组的对应子集的GRSS的装置。
14.如权利要求13所述的系统,其特征在于为至少一个目的设备确定该XML文法规则组的一个对应子集的装置包含使用一个查找表来把该至少一个目的设备和该XML文法规则组的对应子集相关联的装置。
15.如权利要求13所述的系统,其特征在于用于检索一个对应于该XML文法规则组的对应子集的GRSS的装置包含使用一个查找表来把该XML文法规则组的对应子集和GRSS相关联的装置。
16.如权利要求10所述的系统,其特征在于该转换引擎包含用于标识不是依据该XML文法规则组的至少一个子集中的文法规则构造的XML文档中的数据单元的装置;以及用于把该标识的数据单元转换成为依据该XML文法规则组的至少一个子集的文法规则构造的数据单元的装置。
17.一个用于把一个依据一组文法规则构造的文档转换成为至少一个依据该组文法规则的至少一个子集构造的文档的文法限制器,该文法限制器包含一个用于检索对应于该文法规则组的至少该个子集的至少一个文法限制样式表的软件模块,其中该至少一个样式表包含用于把该文档转换为至少一个依据该组文法规则的至少一个子集构造的文档的转换规则;以及一个软件模块,用于提供该检索的至少一个样式表到一个转换引擎,用于使用该至少一个检索的样式表的转换规则、把该文档中的数据单元转换为依据该文法规则组的至少一个子集构造的数据单元,以把该文档转换为至少一个依据该文法规则组的至少一个子集构造的文档。
18.如权利要求17所述的文法限制器,其特征在于该至少一个检索的样式表阐明了用于把一个依据一组XML文法规则构造的XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的文档的XML转换规则。
全文摘要
一种用于把一个依据一组XML文法规则构造的XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的方法和系统。该系统包含一个能够执行这样一组可编程指令的控制器,这些指令用于检索对应于一组XML文法规则的至少一个子集的至少一个文法限制样式表(GRSS),其中该至少一个GRSS包含用于把一个XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的转换规则;以及一个转换引擎,用于使用每个检索的GRSS的转换规则把该XML文档的数据单元转换为依据该XML文法规则组的至少一个子集构造的数据单元,以把该XML文档转换为至少一个依据该XML文法规则组的至少一个子集构造的XML文档。该方法包含步骤检索对应于一个XML文法规则组的至少一个子集的至少一个GRSS,其中该至少一个GRSS包含用于把一个XML文档转换为至少一个依据该组XML文法规则的至少一个子集构造的XML文档的转换规则;以及使用至少一个检索的GRSS的转换规则把该XML文档的数据单元转换为依据该XML文法规则组的至少一个子集构造的数据单元,以把该XML文档转换为依据该XML文法规则组的至少一个子集构造的至少一个XML文档。
文档编号G06F17/21GK1592902SQ02812917
公开日2005年3月9日 申请日期2002年6月20日 优先权日2001年6月28日
发明者A·F·亚辛, Y·阿尔萨法迪 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1