本申请是2004年4月4日提交的名为“无模式数据映射系统和方法(Systemand Method for Schemaless Data Mapping)”的共同提交的美国申请序列号10/772,001的延续部分。
具体实施方式
现在参考附图,贯穿附图,相同的标号表示相同的组件或步骤,图1示出了依照本发明的一个示例性实施例的电子表格数据映射系统100的框图表示。电子表格数据映射系统100可包括通信设备103,包括但不限于,电子表格存储单元109、有效负载数据存储单元105和映射单元106。通信设备103可由类似于下文参考图2更完整描述的众所周知的计算系统、环境和/或配置中找到的硬件和软件组件支持。
电子表格存储单元109通信上连接到映射单元106。电子表格存储单元109储存电子表格数据,它包括电子表格列表,诸如但不限于,下文参考图3更完整描述的可扩充标记语言(XML)列表112。电子表格单元109包括能够储存和检索数据的存储器设备,包括但不限于,随机存取存储器(RAM)、闪存、磁存储器设备、光存储器设备、硬盘驱动器、可移动、易失或非易失存储器设备、光存储介质、磁存储介质或RAM存储卡。或者,电子表格存储单元109可包括可通过有线和/或无线网络系统访问的远程存储设备。另外,电子表格存储单元109可包括存储器系统,包括如上所述的初级和次级存储器设备的多级系统。初级存储器设备和次级存储器设备可作为彼此的高速缓存来操作,或者次级存储器设备可担当初级存储器设备的备份。在又一方案中,电子表格存储单元109可包括被配置成简单数据库文件或使用诸如SQL等查询语言的可搜索的关系型数据库的存储器设备。
有效负载数据存储单元115通信上连接到映射单元106。有效负载数据存储单元115储存有效负载数据,其中,有效负载数据可被映射到电子表格数据的对应XML列表112。有效负载数据在下文参考图4更完整地描述。有效负载数据存储单元115包括类似于上文参考电子表格存储单元109所讨论的存储器设备的存储器设备。
映射单元106通信上耦合到电子表格存储单元109和有效负载数据存储单元115。映射单元106用适用于执行任务并提供此处所描述的能力和功能的硬件和软件(图2)来配置。映射单元106可适用于将储存在有效负载数据存储单元115中的有效负载数据映射到储存在电子表格存储单元109中的XML列表112。
在操作中,映射单元106从电子表格存储单元109接收电子表格数据,并从有效负载数据存储单元115接收有效负载数据。电子表格数据可包括XML列表112,它一般由一组字段(此处也称为“列”)来定义。通常,字段可以被计算或映射。计算的字段可由公式或常量来定义,而映射的字段可由到有效负载数据的“路径”或“指针”来定义。映射单元106可使用字段路径来从有效负载数据获取节点列表(如,有时候被称为“绑定节点”),由此,每一节点然后可由映射单元106映射到XML列表112中的一行。映射单元106可通过跟随从节点到期望字段的路径,从有效负载数据中获取XML列表112中所有字段的值。
在本发明的一个替换实施例中,通信设备103还包括一用户界面118,它适用于向用户显示数据,并接收用户输入。用户界面118通信上连接到映射单元106。映射单元106可向用户界面118提供映射的XML列表112,用户界面118可通过显示器(未示出)向用户显示映射的XML列表112。本领域的技术人员将认识到,用户界面118可用各种实施例和格式来设计,并且其范围可以从简单到更复杂的配置。在本发明的一个示例性实施例中,用户界面118可包括小键盘、显示屏、触摸屏或其它方便的设备,并也可包括执行预定任务的程序模块或机器指令,指令可在处理单元121上执行。
另外,通信设备103可包括便于从通信设备103到网络124的通信的网络接口121。网络接口121通信上连接到映射单元106和网络124。映射单元106可向网络接口121提供映射的XML列表112,网络接口121可向网络124中的另一通信设备提供映射的XML列表112。网络接口121通常可以是硬件设备,如网络接口卡或通信设备103的扩展卡,它方便了通信设备103和网络124之间的连接。尽管未在图1中示出,然而网络接口121可包括射频发送器和接收器,它们启用了通信设备103和网络124的接入点(未示出)之间的通信。
本领域的技术人员将认识到,网络124通常包括适用于连接两个或多个通信设备103(包括但不限于,多个服务器或客户机设备)的组的基础结构和设置。这一网络124、通信设备103和服务器可用多种拓朴来配置,包括但不限于,星形、总线形或环形配置。同样,网络124、通信设备103和服务器可被概括地归类为属于特定的体系结构,包括但不限于对等客户机/服务器体系结构。网络124另外可按通信设备103或服务器的地理位置或其类型来分类。例如,连接如在一个建筑物中彼此相近地定位的多个计算机系统或服务器的网络124被称为局域网(LAN);如果计算机系统相互远离地定位,则网络124一般被称为广域网(WAN),如因特网;如果计算机系统位于有限的地理区域内,如大学校园或军事机关内,则网络124被称为校园网(CAN);如果计算机系统在城市或城镇内连接在一起,则网络124被称为城域网(MAN);如果计算机系统在用户的家中连接在一起,则网络124被称为家庭网络(HAN)。
本领域的技术人员将认识到,通信上连接可包括或需要用于信号和/或媒介的双向通信的任一适当类型的通信,包括但不限于,模拟、数字、无线和有线通信信道。这类通信信道可使用,但不限于、铜线、光纤、射频、红外、卫星或其它设备和媒介。
尽管本发明的若干实施例涉及XML电子表格数据、XML列表和XML有效负载数据,然而本领域的技术人员将认识到,在本发明的范围内也可使用其它类型的数据配置,因此,本发明不限于以XML配置的数据。
图2示出了依照本发明的一个示例性实施例,其可使用的计算环境200及其计算机系统210、280的框图表示。计算环境200及其计算机系统210、280仅为用于实施本发明的合适的计算环境的一个示例,并非暗示对本发明的使用范围或功能的局限。也不应将计算机系统210、280解释为对示例性计算环境200中示出的任一组件或其组合具有任何依赖或需求。
因此,应当理解,本发明可以用众多其它通用或专用计算系统环境或配置来操作。适用于或适合使用本发明的众所周知的通信设备103、计算系统、环境和/或配置的实例包括但不限于,个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络个人计算机、小型机、大型机、包括上述系统或设备的任一个的分布式计算环境等等。
本发明可在诸如由计算机系统执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储介质中,包括但不限于存储器存储设备。
参考图2,本发明的示例性计算环境200包括以计算机系统210形式的通用计算装置。计算机系统210的组件可包括但不限于处理单元330、系统存储器230以及将包括系统存储器230的各类系统组件耦合至处理单元220用于双向数据和/或指令通信的系统总线332。系统总线221可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线(即,也称为Mezzanine总线)。
计算机系统210通常包括各种计算机可读介质。计算机可读介质可以是可由计算机系统210访问的任一可用介质,包括易失和非易失介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失和非易失,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁光存储设备、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机系统210访问的任一其它介质。通信介质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器230包括易失和/或非易失存储器形式的计算机存储介质,如只读存储器(ROM)231和随机存取存储器(RAM)232。基本输入/输出系统233(BIOS)包括如在启动时帮助在计算机210内的元件之间传输信息的基本例程,通常储存在ROM 231中。RAM 232通常包含处理单元220立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图2示出了操作系统134、应用程序135、其它程序模块136和程序数据137,它们有时可完全或部分地驻留在RAM 232中。
计算机210也可包括其它可移动/不可移动、易失/非易失计算机存储介质。仅作示例,图2示出了对不可移动、非易失磁介质进行读写的硬盘驱动器241、对可移动、非易失磁盘252进行读写的磁盘驱动器251以及对可移动、非易失光盘256,如CD ROM或其它光介质进行读写的光盘驱动器255。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器241通常通过不可移动存储器接口,如接口240连接到系统总线221,磁盘驱动器251和光盘驱动器255通常通过可移动存储器接口,如接口250连接到系统总线121。
图2讨论并示出的驱动器241、251、255及其关联的计算机存储介质为计算机系统210提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图2中,示出硬盘驱动器241储存操作系统244、应用程序245、其它程序模块246和程序数据247。注意,这些组件可以与操作系统234、应用程序235、其它程序模块236和程序数据237相同,也可以与它们不同。这里对操作系统244、应用程序245、其它程序模块246和程序数据247给予不同的标号来说明至少它们是操作系统234、应用程序235、其它程序模块236和程序数据237的不同副本。用户可以通过输入设备,如键盘262和定位设备261(通常指鼠标、跟踪球或触摸板)向计算机系统210输入命令和信息。其它连接的输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线221的用户输入接口260连接至处理单元220,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器291或其它类型的显示设备也通过接口,如视频接口290连接至系统总线221。除监视器291之外,计算机系统210也可包括其它外围输出设备,如扬声器297和打印机296,通过输出外围接口295连接。
计算机系统210可以在使用到一个或多个远程计算机,如远程计算机280的逻辑连接的网络化环境中操作。远程计算机280可以是个人计算机、膝上计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机系统210相关的元件,尽管在图2中仅示出了存储器存储设备281。图2描述的双向通信连接包括局域网(LAN)271和广域网(WAN)273,但也可包括其它计算机网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当通信上连接到LAN 271时,计算机系统210通过网络接口或适配器270连接至LAN 271。当通信上连接到WAN 273时,计算机系统210通常包括调制解调器272或其它装置,用于通过WAN 273,如因特网建立通信。调制解调器272可以是内置或外置的,通过用户输入接口260连接至系统总线221。在网络化环境中,描述的与计算机系统210相关的程序模块或其部分可储存在远程存储器存储设备281中。作为示例而非限制,图2示出了远程应用程序285驻留在存储器存储设备281中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立双向通信链路的其它装置。
图3示出了依照本发明的一个示例性实施例包括电子表格列表112的电子表格数据的伪代码表示300。如上所述,电子表格存储单元109包括电子表格列表112,它可由映射单元106映射到有效负载数据。在本发明的一个示例性实施例中,电子表格列表112以XML代码来配置,因此在下文称为XML列表112。
XML提供了准许在多个系统之间的数据的定义、确认、传输和解释的可定制标签。本领域的技术人员将认识到,XML从标准广义标记语言(SGML)导出,并提供了用于数据配置的广泛接受的代码格式。一般而言,XML标签是在文档内使用的命令,或指示应当如何格式化或解释文档或代码的部分的代码。XML标签通常是成对的,并包括一起始标签和一终止标签。起始标签通常由小于符号(“<”)和大于符号(“>”)之间的标签名来表示。终止标签通常与起始标签相同,除在小于符号(“<”)之后有一正斜杠(“/”)之外。例如,但不限于,范围(range)元素306以“<range>”标签开始并以“</range>”标签结束。起始“<range>”标签和终止“</range>”标签之间的所有文本或代码可以被解释为范围元素306的部分。
更具体地,图3示出了XML电子表格(XMLSS)的一部分,它描述了电子表格工作簿,包括包含在其中的XML列表112。条目(entry)元素303(如,<entryx2:id=″list1″>...</entry>)表示电子表格数据内的单个XML列表112。XML列表112可由称为字段(field)的一组列来定义,这些列在XML列表112中可用字段元素312A-312F(如,<field>...</field>)来表示。因此,字段元素312A-312F表示映射单元106将有效负载数据映射到XML列表112所得的列。
字段可被计算或被映射。计算的字段可由公式或常量来定义。映射的字段可由到有效负载数据的路径来定义。如图3所示,字段路径可在XML列表112中由xpath元素309B-309G(如,<xpath>...</xpath>)来表示。条目元素303也可具有路径(如,有时候被称为“根路径”),并也可由xpath元素309A来表示。字段路径是到条目路径的相对路径xpath 309B-309G,因此,到字段的完整路径需要将条目路径与字段路径串接。例如,但不限于,由字段元素312B的xpath元素309C表示的字段路径是“DEPARTMENTID”。然而,由字段元素312B表示的字段的完整路径需要将由xpath元素309A表示的条目xpath和由xpath元素309C表示的字段路径相组合,因此得到了完整路径“/CORP/DEPARTMENT/DEPARTMENTID”。
字段也可与特定的数据或定义类型,诸如但不限于,串、变量或整数相关联。如图3所示,字段的数据或定义类型可由xsdtype元素315A-315F来表示。使用上述示例,由字段元素312B表示的字段的xsdtype 315B表示的数据或定义类型是“STRING”。
本领域的技术人员将认识到,XML列表112可以多种编排方案来配置,并可包括各种字段和路径。因此,图3所示的电子表格数据仅用于说明性目的,并非局限本发明的范围。
图4示出了依照本发明的一个示例性实施的有效负载数据的伪代码表示400。如上所述,有效负载数据存储单元115包括可被映射到电子表格数据的XML列表112的有效负载数据。在本发明的一个示例性实施例中,有效负载数据以XML代码来配置。一般而言,有效负载数据对应于XML列表112中定义或描述的字段。因此,XML列表112中定义的路径可与有效负载数据中的XML标签相关。
例如但不限于,图4所示的有效负载数据涉及图3所定义的XML列表。更具体地,图4所示的负载(payload)元素03、406、409、410、412、415对应于图3所示的完整字段路径。表1示出了图3的完整字段路径与图4的负载元素之间的相关性。
<CORP><DEPARTMENT NAME=″ENGINEERING″>...</DEPARTMENT><DEPARTMENT NAME=″HR″>...</DEPARTMEN></CORP> |
/CORP/DEPARTMENT/DEPARTMENTID |
<CORP><DEPARTMENT...><DEPARTMENTID>1001</DEPARTMENTID>...</DEPARTMENT><DEPARTMENT...><DEPARTMENTID>1002</DEPARTMENTID>...</DEPARTMENT></CORP> |
/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME |
<CORP><DEPARTMENT...>...<MANAGERS><PERSON NAME=″JOHN″>...</PERSON><PERSON NAME=″PETER″>...</PERSON></MANAGERS></DEPARTMENT><DEPARTMENT...>...<MANAGERS><PERSON NAME=″COREY″>...</PERSON><PERSON NAME=″PAT″>...</PERSON></MANAGERS></DEPARTMENT></CORP> |
/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID |
<CORP> |
<DEPARTMENT...>...<MANAGERS><PERSON...><PERSONID>20001</PERSONID></PERSON><PERSON...><PERSONID>20002</PERSONID></PERSON></MANAGERS></DEPARTMENT><DEPARTMENT...>...<MANAGERS><PERSON...><PERSONID>20002</PERSONID></PERSON><PERSON...><PERSONID>20003</PERSONID></PERSON></MANAGERS></DEPARTMENT></CORP> |
/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME |
<CORP><DEPARTMENT...>...<CONTRACTORS><PERSON NAME=″DARREN″>...</PERSON></CONTRACTORS></DEPARTMENT><DEPARTMENT...>...<CONTRACTORS><PERSON NAME=″DENISE″>...</PERSON></CONTRACTORS></DEPARTMENT></CORP> |
/CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID |
<CORP><DEPARTMENT...>...<CONTRACTORS><PERSON...><PERSONID>20005</PERSONID></PERSON></CONTRACTORS></DEPARTMENT><DEPARTMENT...>...<CONTRACTORS><PERSON...><PERSONID>20006</PERSONID></PERSON> |
</CONTRACTORS></DEPARTMENT></CORP> |
表1
如表1所示,部门名(department name)元素403A、403B对应于完整字段路径“/CORP/DEPARTMENT/@NAME”;部门id(departmentid)元素406A、406B对应于完整字段路径“/CORP/DEPARTMENT/DEPARTMENTID”;人名(personname)元素412A-412F对应于完整字段路径“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”和“CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME”;个人id(personid)元素415A-415F对应于完整字段路径“/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID”和“/CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID”。在本发明的一个示例性实施例中,字段路径中的“/@”符号表明该路径是属性,而字段路径中的“/”符号表明该字段是元素。由此,如由路径“/CORP/DEPARTMENT/@NAME”所表示的,“NAME”是“DEPARTMENT”的属性,而如由路径“/CORP/DEPARTMENT/DEPARTMENTID”所表示的,“DEPARTMENTID”是“DEPARTMENT”的元素。
本领域的技术人员将认识到,有效负载数据的配置可依赖于或符合XML列表112的配置。因此,图4所示的有效负载数据仅用于说明性目的,并非局限本发明的范围。
图5示出了依照本发明的一个示例性实施例的有效负载数据的框图。图5所示的有效负载数据类似于上文参考图4所讨论的有效负载数据,除没有XML元素标签之外。更具体地,图5示出了电子表格数据(见图3)及其相关联的有效负载数据的字段路径的分层特征。
在本发明的一个示例性实施例中,映射单元106可确定XML列表112中每一字段路径的“父”路径(下文参考图7更完整地描述)。特定字段路径的父路径可通过在该路径中沿字段路径返回一步来确定。换言之,父路径在层次中在该字段路径后一步。例如,但不限于,字段路径“/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID/”可具有父路径“/CORP/DEPARTMENT/MANAGERS/PERSON”。另外,父路径可以对属性和元素字段计算。由此,属性字段路径“/a/b/@c”和元素字段路径“/a/b/c”可具有同一父路径“/a/b”。
图5也示出了如何可跟随字段路径到对应的有效负载数据。例如但不限于,映射单元106可跟随字段路径“/CORP/DEPARTMENT/DEPARTMENTED”,并发现对应的值“1001”和“1002”。相反,字段路径可以从有效负载数据中确定。例如但不限于,有效负载数据“John”可具有对应的字段路径“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”。
图6示出了依照本发明的一个实施例的映射的电子表格列表112的框图。如上所述,映射单元106可将有效负载数据映射到电子表格数据的XML列表112。尽管这一映射不依赖于模式,然而所得的映射电子表格列表112基本上类似于“模式映射”的电子表格列表。
在本发明的一个示例性实施例中,映射单元106可为XML列表112指定一“底部”路径(下文参考图7更完整地描述)。通常,底部路径是先前生成的父路径(上文参考图5描述)的最长路径。如果有一个以上父路径符合最长路径的资格,则可将首先生成的父路径指定为底部路径,或将符合最长路径资格的每一父路径指定为分支底部路径(下文参考图7更完成地描述)。
映射单元106可使用底部路径来指定XML列表112的节点,如绑定节点。通常,节点可被分配到映射的XML列表112中的一行。节点可担当XML列表112的每一行的索引。更具体地,节点可指示在映射的XML列表112中存在的行的数量。
例如但不限于,图3所示的字段的父路径是“/CORP/DEPARTMENT”(如,“/CORP/DEPARTMENT/@NAME”的父路径)、“/CORP/DEPARTMENT”(如,“/CORP/DEPARTMENT/DEPARTMENTID”的父路径)、“/CORP/DEPARTMENT/MANAGERS/PERSON”(如,“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”的父路径)、“/CORP/DEPARTMENT/MANAGERS/PERSON”(如,“/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID”的父路径)、“/CORP/DEPARTMENT/CONTRACTORS/PERSON”(如,“/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME”的父路径)、“/CORP/DEPARTMENT/CONTRACTORS/PERSON”(如,“/CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID”的父路径)。映射单元106可指定“/CORP/DEPARTMENT/MANAGERS/PERSON”(如,“/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME”的父路径)和“/CORP/DEPARTMENT/CONTRACTORS/PERSON”(如,“/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME”的父路径)作为分支底部路径,因为它们是所生成的最长父路径,且都不彼此相等或是对方的子集。对于每一分支底部路径,映射单元106跟随分支底部路径以确定结果节点。映射的XML列表112的行624、627、630、633、636、639和列603、606、609、612、615、618的值可通过跟随每一分支底部路径到每一对应的字段路径来确定。
图7A-7C示出了依照本发明的一个示例性实施例将有效负载数据映射到电子表格列表112的方法700的流程图表示。映射单元106将从负载存储单元115接收的有效负载数据映射到从电子表格存储单元109接收的XML列表,而不使用模式。
在步骤701开始之后,映射单元106前进到步骤703,映射单元703从电子表格存储单元109接收电子表格数据。电子表格数据可包括XML列表112。下一步,在步骤706,映射单元106确定是否需要对任何XML列表112求值。如果在步骤706映射单元106确定不需要对任何XML列表112求值,则映射单元106依照步骤715的方法700暂停操作。然而,如果在步骤706映射单元106确定有要被求值的XML列表112存在,则映射单元106前进到步骤709,映射单元106确定是否要对XML列表112内的任何字段路径求值。如果在步骤709映射单元106确定不需要对任何字段路径求值,则映射单元106如下所述地前进到步骤718。然而,如果在步骤709映射单元106确定存在需要求值的字段路径,则映射单元106前进到步骤712,映射单元106生成字段路径的父路径。映射单元106然后如上所述地前进到步骤709。
在步骤718,映射单元106确定是否从XML列表112的字段路径生成了任何父路径。如果在步骤718映射单元106确定没有生成任何父路径,则映射单元106如上所述地前进到步骤706。否则,如果在步骤718映射单元106确定生成了父路径,则映射单元前进到步骤721,映射单元106标识不是彼此的子集的最长父路径(作出其列表)。下一步,在步骤724,映射单元106确定在最长父路径列表中是否存在任何重复。如果在步骤724映射单元106确定在最长父路径列表中没有重复,则映射单元106如下所述地前进到步骤730。然而,如果在步骤724映射单元106确定在最长父路径列表中存在重复,则映射单元106前进到步骤727,映射单元删除最长父路径列表中的所有重复。
下一步,在步骤730,映射单元106将每一最长父路径指定为底部路径(此处也称为“分支底部路径”),其中,每一底部路径表示一不同的分支。然后,在733,映射单元106将XML列表的每一字段与一个或多个分支底部路径相关联,使得字段的父路径是相关联的分支底部路径的子集。字段的父路径可以是一个以上分支底部路径的子集。映射单元106然后前进到步骤736,其中映射单元106确定是否有任何分支底部路径仍需要求值。如果在步骤736映射单元106确定没有分支底部路径需要求值,则映射单元依照745处的方法700暂停操作。否则,如果在步骤736映射单元106确定存在仍需要求值的分支底部路径,则映射单元106前进到739,其中映射单元106对有效负载数据上的分支底部路径求值,以生成绑定节点列表。通过将每一父路径与一个或多个分支底部路径组合,可通过从绑定节点开始遍历从有效负载数据获得XML列表的每一字段(列)的值(如果有的话)。下一步,在742,映射单元106通过从一行的绑定节点开始沿路径到每一对应的字段路径,从有效负载数据获取与该行中的分支底部路径相关联的所有字段(列)的值。如果字段属于不与分支底部路径相关联的父路径,则字段值保留为空。映射单元106然后如上所述地前进到步骤736。
尽管以细节描述了本发明,然而可以理解,如在上文中描述且在所附权利要求书中定义的,可以在不脱离本发明的精神和范围的情况下作出各种变化和修改。所附权利要求书中所有装置加功能元件(如果有的话)的对应结构、材料、动作和等效技术方案旨在包括用于结合特别地要求保护的其它要求保护的元素来执行功能的任何结构、材料或动作。