CN1558348A - 将基于模式的分级数据结构转换成平面数据结构的方法以及系统 - Google Patents

将基于模式的分级数据结构转换成平面数据结构的方法以及系统 Download PDF

Info

Publication number
CN1558348A
CN1558348A CNA2004100397582A CN200410039758A CN1558348A CN 1558348 A CN1558348 A CN 1558348A CN A2004100397582 A CNA2004100397582 A CN A2004100397582A CN 200410039758 A CN200410039758 A CN 200410039758A CN 1558348 A CN1558348 A CN 1558348A
Authority
CN
China
Prior art keywords
data structure
data
characteristic
xsd
xml
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.)
Pending
Application number
CNA2004100397582A
Other languages
English (en)
Inventor
C����ϣ���˹
C·罗斯希勒
M·J·麦科麦克
R·纳塔拉间
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 Corp
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 CN1558348A publication Critical patent/CN1558348A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Abstract

提供了一种基于模式将分级数据结构转换为平面数据结构的方法和系统。所述分级数据结构的格式可以是XML。将遵从于一个模式的分级数据结构装载到应用程序中。所述数据结构包括以父子关系连接在一起的元素和属性。所述模式定义了分级数据结构中元素和属性之间的分级关系。在已装载了遵从所述模式的分级数据结构之后,基于所述模式将多个布局规则应用于所述分级数据以创建一个平面数据结构。所述布局规则确定所述分级数据将如何插入所述平面数据结构中。可以通过在所述模式中标识特性而应用所述布局规则,该特性标识所述模式中定义的元素的出现条件。在已将所述布局规则应用于所述分级数据之后,通过将数据插入于行与列而将所述分级数据再现于一个电子制表软件中。

Description

将基于模式的分级数据结构 转换成平面数据结构的方法以及系统
                          技术领域
本发明一般地涉及高度分级数据结构到不分级(或者平面的)数据结构的转换。更具体地,本发明涉及接收与标准格式的模式(schema)相关联的输入数据,并且基于该模式将其转换为平面数据结构。
                          背景技术
过去,计算机系统以及数据库包含不兼容格式的数据。由于利用这些系统和数据库的结构越来越自动化和计算机化,通过计算机网络例如因特网,来共享数据的需求就越来越普遍。由于这个需求,就开发了数据共享的标准格式。
开发的一种这样的标准格式是可扩展标记语言(“XML”)。XML是一种非常分级的数据格式,包括大量的具有父子关系的数据结构。在XML数据格式中,每一个父结点的子结点可以有更深一层的子结点,更深一层的子结点依次仍然可以有更深一层的子结点,依此类推。由于这种标准数据格式的出现,很多计算机用户已将如前所述的数据库转换成标准的XML数据格式。XML格式也允许计算机用户利用模式将他们的数据制作成适合特定的文档。模式提供了机制来定义并描述结构、内容、以及某种程度上还有XML文档的语义。
随着现代商业舞台中个人计算机的出现,许多实用的应用程序应运而生,所述应用程序包括那些利用电子制表软件的应用程序。电子制表软件通常对包含在一个矩阵单元(cells)中的数据进行操作,所述矩阵单元包括列和行。通常,这种数据格式包含在单一的表中,并且是一个非常平面的数据结构,因为这种数据不能被保持在XML所使用的分级数据结构中。
由于个人计算机的有效性所带来的轻松,许多用户对他们的计算机使用已经变得精通,尤其精通于电子制表应用程序的使用。虽然电子制表软件与现有的常规手段相比提供了许多优点,但是他们也利用了平面数据结构。随着大量数据以诸如XML分级格式存储,具有平面数据结构的电子制表软件无法存取如此大量的数据,因此,需要一种利用电子制表软件来存取大量数据的方法。虽然目前存在能够将XML格式的数据转换为电子制表软件的程序,但是目前的程序没有考虑在与分级格式文档相关的模式中定义的数据关系。结果,利用目前程序在电子表格中显示文档中所包含的分级数据可能与该文档的作者想要的显示大为不同。
基于这些构思以及其他问题而创造本发明。
                          发明内容
根据本发明,一种方法和系统解决了上述以及其他问题,所述方法和系统基于与分级数据结构相关联的模式将分级数据结构转换为平面数据结构,并且适用于电子制表中。
根据本发明的一个方面,提供了一种基于模式将分级数据结构转换为平面数据结构的方法和系统。分级数据结构的格式可以是XML。
首先,将遵从一模式的分级数据结构装载入一个应用程序中。所述的数据结构包括以父子关系连接在一起的元素和属性(attribute)。所述模式定义了分级数据结构中元素和属性之间的分级关系。
然后,基于所述模式将大量的布局规则应用于所述分级数据中。所述布局规则确定将如何把所述分级数据插入到所产生的平面数据结构中。可以通过识别所述模式中的特性(property)来应用所述布局规则,所述特性标识了所述模式中所定义的元素的出现条件。这些特性可以包括明确分级数据中元素出现的顺序以及每个元素可能出现的次数。一旦标识了所述特性,所述布局规则就基于已标识的特性而应用于所述分级数据。也可以基于模式中定义的元素类型来应用所述布局规则。这些元素类型可以包括属性、祖先元素以及兄弟元素。
最后,所述布局规则应用于分级数据中以创建一个平面数据结构,并且通过将数据插入行与列而将所述平面数据结构再现于电子表格中。
本发明的各方面可以用计算机进程、计算系统来实现,或者用诸如计算机程序产品或计算机可读媒质这样的制造产品来实现。计算机程序产品可以是一种计算机存储媒质,该存储媒质可由计算机系统读取并且对计算机程序指令进行编码以执行计算机进程。计算机程序产品也可以是一种载体上的传播信号,该信号可由计算读取并且对计算机程序指令进行编码以执行计算机进程。
表现本发明特征的这些和各种其他特点以及优势在对以下具体描述的阅读中和相关附图的浏览中将显而易见。
                         附图说明
图1是为本发明提供示例操作环境的计算机系统的结构图。
图2说明了根据本发明一实施例,基于输入的XML模式数据将XML数据转换为平面数据结构的操作流程。
图3说明了根据本发明各个实施例将布局规则应用于XML数据的操作流程。
图4是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照(screenshot)。
图5是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照。
图6是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照。
图7是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照。
图8是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照。
图9是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照。
图10是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照。
图11是说明根据本发明一说明性实施例从转化后的XML数据而产生的平面数据结构的屏幕快照。
                        具体实施方式
本发明目的在于一种基于与输入XML数据相关的模式对该数据进行平面化的方法和系统。在一个实施例中,本发明被纳入到微软公司(华盛顿雷德蒙)上市的一套“OFFICE”应用程序中。简要地说,本发明提供了接收在分级数据结构中格式化的数据。这种格式的一个范例可以包括XML,然而本领域的技术人员会理解,许多其他数据库结构都是高度分级的。
在下面的具体描述中,通过说明具体实施例或者范例的方式对形成本申请部分内容的附图作出了参考说明。现在参照附图说明本发明的一些方面以及示例的操作环境,在这些附图中相同的数字代表相同的元件。
现参照图1,显示了一种实现本发明一说明性实施例的说明性操作环境。在所述说明性操作环境中,本发明可以用以便于基于模式将符合该模式的XML数据结构平面化为平面数据结构。不过,本领域技术人员应该理解,本发明可以在任何类型的计算机操作环境中实现,例如手持装置、多处理器系统、基于多处理器的或者可编程的消费者电子设备、小型计算机、大型计算机等等。本发明也可以在分布式计算机环境中实现,在所述分布式计算机环境中,由远程处理设备来执行任务。
用XML平面化程序模块36的一般上下文来描述本发明的说明性实施例,所述XML平面化程序模块36接收输入的XML模式数据38以及来自输入XML数据37的数据,并且基于所述模式数据将所述数据转换为平面数据结构39。所述平面数据结构39可以通过电子制表软件插入到应用程序中。本领域技术人员会认同,本发明可以与各种其他程序模块(未示出)结合而实现。通常,程序模块包括例程、程序、组件、数据结构等等,它们执行特殊的任务或者实现特殊的抽象数据类型。而且,本领域技术人员会理解,本发明可以利用除了所示计算机系统配置之外的其他计算机系统配置来实现,该计算机系统配置是通过通信网络连接的。在分布式计算机环境中,程序模块既可以存储在本地存储装置也可以存储在远程的存储装置中。
用于实现本发明的说明性操作环境10包括常规的个人计算机系统20,个人计算机系统20包括处理单元21、系统存储器22以及将系统存储器和处理单元21相耦合的系统总线23。系统存储器22包括只读存储器(ROM)24以及随机存取存储器(RAM)25。在ROM24中存储了基本输入输出系统26(BIOS),它包含基本的例程,基本例程协助在个人计算机20的元件间传送信息,例如在启动期间。个人计算机20还包括:硬盘驱动器27、例如对可移动盘29进行读写的磁盘驱动器28以及例如对CD-ROM盘31或者对其他光学媒质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33以及光盘驱动器接口34连接到系统总线23。所述驱动器以及他们相关的计算机可读媒质为个人计算机20提供非易失性存储。尽管以上对计算机可读媒质的描述中提到的是硬盘、可移动磁盘以及CD-ROM盘,但是本领域技术人员应该理解,其他类型的计算机可读媒质,例如磁带、闪存卡、数字视频磁盘、伯努利(Bernoulli)存储匣以及类似的可读媒质,也可以用于示范的操作环境中。
许多程序模块可以存储在驱动器以及RAM25中,包括操作系统35、XML平面化程序模块36、输入的XML数据37、输入的XML模式数据38、平面数据结构39以及其他程序模块(未示出)。
用户可以通过键盘40以及如鼠标42这样的指示设备将命令和信息输入到个人计算机系统20中。其他输入装置(未示出)可以包括麦克风、操纵杆、游戏操作杆(game pad)、圆盘式卫星电视天线、扫描仪等等。这些以及其他输入装置经常通过连接到系统总线的串行端口接口46连接到处理单元21,但是也可以通过其他接口连接,例如游戏端口或者通用串行总线(USB)。显示器47或者其他类型的显示装置,例如视频适配器48,也通过接口连接到系统总线23。除了显示器之外,个人计算机通常还包括其他外围输出设备(未示出),例如扬声器或者打印机。
个人计算机系统20可以工作在利用与一个或多个远程计算机逻辑连接的网络环境中,例如到远程计算机49。远程计算机49可以是服务器、路由器、对等装置或者其他公共网络节点,并且通常包括关于个人计算机20所描述的许多或者全部元件,尽管图1中只说明了存储装置50。图1中所描述的逻辑连接包括局域网(LAN)51以及广域网(WAN)52。这种网络环境在办公室、企业范畴的计算机网络、企业内联网以及因特网中都是常见的。
当用于LAN网络环境时,个人计算机系统20通过网络接口53连接到LAN51。当用于WAN网络环境时,个人计算机系统20通常包括调制解调器54或者其他用于在WAN52(例如因特网)上建立通信连接的装置。所述调制解调器54可以是内部的或者外部的,它通过串行端口接口46连接到系统总线23。在网络环境中,关于个人计算机20或者它的一部分所描述的程序模块可以存储在远程存储装置中。可以理解的是,所示的网络连接是说明性的并且可以利用在计算机之间建立通信连接的其他方式。可以进一步理解的是,本发明除了在个人计算机系统上实现,同样能够在主机或者服务器计算机系统中等价地实现,并且除了通过CD-ROM,同样能够通过例如网络接口53之类的装置被等价地发送到主机计算机系统。
本发明可以在动态连接库(DLL)中实现。微软公司(华盛顿雷德蒙)上市的一套“OFFICE”应用程序所提供的MSO.DIL就是这样的一个DLL示例。所述DLL包含一个可执行函数的库,应用程序通过创建与DLL的静态或动态连接对所述库进行存取。静态连接在程序执行过程中一直保持不变,而动态连接根据需要时由程序创建。
图2显示了由所述XML平面化程序模块36所执行的说明性逻辑操作,该XML平面化程序模块36基于上述个人计算机系统20中的输入XML模式数据38而将输入XML数据37转换为平面数据结构39。本发明各个实施例的逻辑操作被实现为:(1)作为计算机实现的动作的序列或者在计算机系统中运行的程序模块和/或(2)作为计算机系统中的互连机器逻辑电路或者电路组件而执行。依据实现本发明的计算机系统的性能要求来选择上述的实现。因此,这里所述构成本发明实施例的逻辑操作指得是不同的操作、结构装置、动作或者模块。本领域技术人员会认同,这些操作、结构装置、动作或者模块可以用软件、硬件、专用数字逻辑电路以及它们的任何组合来实现,而不背离由本文所附权利要求所限定的本发明的要旨和范围。
逻辑操作从装载操作210开始,在装载操作210中,包含分级数据的输入XML数据37被装载到例如RAM25这样的存储器中以备应用程序的使用,例如电子制表应用程序。所述输入XML数据37可以包括一个嵌入数据中的模式,该模式定义了出现在数据中的XML元素与属性之间的父子关系。任选地,所述输入XML数据37可以包括一个指示所述输入XML模式数据38的指针,所述输入XML模式数据38可以被存储在个人计算机系统20中或者被存储在个人计算机系统20能够通过网络接口53访问的远程计算机中(例如远程计算机49)。可以理解的是,所述输入XML模式数据38中的模式要被“映射”到应用程序的平面数据结构39中,以便使电子制表软件的行与列对应于所定义的分级关系。所述模式可以由用户映射(也就是通过将模式元素拖拽和放入电子制表软件中)或者,由电子制表应用程序自动执行映射。一旦“被映射的”模式被装载到应用程序中,它就会与输入XML数据37中的数据相关联。
接下来,操作流程继续到应用操作215,在应用操作215中,基于已被映射到电子制表软件的模式中的结构,所述XML平面化程序模块36确定将如何插入所装载的XML数据。所述XML平面化程序模块36通过将一系列“布局规则”应用于数据而做出决定。所述布局规则是基于已知的模式结构并且支配将如何插入或者“平面化”所述数据。也可以理解的是,所述XML平面化程序模块36可以将全部的输入XML数据37或者所述数据的一个片断平面化。考虑到分段所有节点最靠近的共同父节点,所述XML平面化程序模块36从分段的开始处对分段进行平面化。应用了布局规则之后,所述XML平面化程序模块36创建了平面数据结构。包括应用操作215的步骤如图3所示,并且下面会进行详细描述。最后,操作流程继续到再现操作220,在再现操作220中,所述XML平面化程序模块36在电子制表软件中再现“平面化”的XML数据。图4-11显示了基于布局规则如何在电子制表软件中再现数据的示例屏幕快照,并且下面会进行详细描述。
图3说明了用于描述图2中应用操作215步骤的操作流程,在应用步骤215中,基于被映射到电子制表软件的模式,所述XML平面化程序模块36将布局规则应用于所装载的XML数据。操作流程开始于识别操作310,在识别操作310中,所述XML平面化程序模块36识别模式中定义的特性和元素类型。下面详述了特性和元素类型以及与它们相关联的布局规则。
                             特性
全部(All):这个特性规定元素可以以任何顺序出现,但是可能只出现一次。如果所述模式包含全部(All)特性,则所述XML平面化程序模块36将在电子制表软件的同一行中显示这一特性中的元素。
序列(Sequence):这个特性规定元素必须以指定的顺序出现并且可以出现零次到一次以上。该序列本身也可以出现任何多次。如果所述模式包含序列(Sequence)特性,则所述XML平面化程序模块36将在电子制表软件的同一行中显示这一特性内的元素,除非所述模式定义元素出现一次以上。
选择(Choice):这个特性规定元素互相之间不共有一个关系并且元素必须被选择(每次选择只出现一次)。被选择的元素或者组可以出现零次到一次以上。选择本身也可以出现一次以上。如果所述模式包含选择(Choice)特性,则所述XML平面化程序模块36将在电子制表软件的各个行中显示该排序(compositor)中的元素。
                            元素类型
属性(Attribute):属性等同于模式中的子元素。如果所述模式包含一个属性,则所述XML平面化程序模块36将在电子制表软件中显示同一行中的属性作为其父元素。所述XML平面化程序模块36也能用模式中定义的其他子元素“向下填充”属性。
祖先(Ancestor):有后代节点(例如子节点)的元素是祖先元素。所述XML平面化程序模块36将用它们的后代节点来“向下填充”祖先元素。
兄弟(Sibling):具有共同父节点的两个或更多元素为兄弟元素。所述XML平面化程序模块36将用其他的兄弟元素“向下填充”兄弟元素,除非一个或更多兄弟元素出现一次以上。
在此说明书以及所附权利要求书中使用的术语“向下填充”被定义为在表格中重复一个数值的动作。因此,即使数据在XML数据中只可以出现一次,它在表格中可以被显示一次以上。应该理解,All(全部)、Sequence(序列)以及Choice(选择)特性也称为排序(Compositors)。正如本领域技术人员所知,排序是XML模式结构,它们标识了元素的直接后代节点的出现条件或者期望值。在同一个排序中的成员被认为是兄弟。在步骤315中,所述XML平面化程序模块36回顾所述模式以确定它是否包含All(全部)排序。如果该模式包含All(全部)排序,那么在步骤320中,所述XML平面化程序模块36会将该排序中的元素插入到所产生的平面数据结构中的同一行中。如果该模式不包含All(全部)排序,那么在步骤325中,所述XML平面化程序模块36就确定所述模式是否包含Sequence(序列)排序。
如下所示,示出定义All(全部)排序内元素的输入XML模式数据38和相应的输入XML数据37的例子:
模式数据
  <xsd:element name=″root″>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name=″A″maxOccurs=″unbounded″>
          <xsd:complexType>
            <xsd:all>
              <xsd:element name=″B″type=″xsd:string″/>
              <xsd:element name=″C″type=″xsd:string″/>
              <xsd:element name=″D″type=″xsd:string″/>
              <xsd:element name=″E″type=″xsd:string″/>
            </xsd:all>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
数据
    <root>
      <A>
          <B>b1</B>
          <C>c1</C>
          <D>d1</D>
          <E>e1</E>
      </A>
      <A>
          <C>c2</C>
          <B>b2</B>
          <E>e2</E>
          <D>d2</D>
      </A>
    </root>
上述例子中说明的输入XML模式数据38定义了XML数据结构的基本元素“A”。元素“B”、“C”、“D”以及“E”是必须被包含在元素“A”中的元素,并且在All(全部)排序中被定义。所述模式的输入XML数据37中的“b1”、“c1”、“d1”以及“e1”代表元素“B”、“C”、“D”以及“E”中所包含的数据。在上述数据之后的“</B>”、“</C>”、“</D>”以及“</E>”表示每个元素的结束。类似地,所述输入XML数据37也表明分别包含数据“c2”、“b2”、“e2”以及“d2”的元素“C”、“B”、“E”以及“D”,“C”、“B”、“E”以及“D”元素也被包含在元素“A”中。
图4示出上述例子中所述输入XML数据37中数据的一个说明性所产生的平面数据结构39。如图4中405一行所示,列标题代表在所述输入XML模式数据38中All(全部)排序中所定义的元素“B”、“C”、“D”以及“E”。在410一行,“b1”、“c1”、“d1”以及“e1”数据被显示在同一行。类似地,在415一行,“b2”、“c2”、“d2”以及“e2”数据也被显示在同一行。正如以上的简要描述,所述All(全部)排序规定元素可以以任何顺序显示。因此,可以理解的是,元素显示的顺序可以与图4中显示的顺序不同。
现在返回图3,在步骤325中,所述XML平面化程序模块36回顾所述模式以确定它是否包含Sequence(序列)排序。如果所述模式包含Sequence(序列)排序,那么在步骤330中,所述XML平面化程序模块36会将该排序内的元素插入到同一行中,与图4所示的All(全部)排序相同,除非所述模式将一个元素定义为出现一次以上。如果所述模式不包含Sequence(序列)排序,那么在步骤335中,所述XML平面化程序模块36确定该模式是否包含Choice排序。
如下所示,示出定义Sequence(序列)排序内元素的输入XML模式数据38和相应的输入XML数据37的例子:
模式数据
  <xsd:element name=″root″>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name=″A″maxOccurs=″unbounded″>
          <xsd:complexType>
            <xsd:sequence maxOccurs=″unbounded″>
              <xsd:element name=″B″type=″xsd:string″/>
              <xsd:element name=″C″type=″xsd:string″/>
              <xsd:element name=″D″type=″xsd:string″/>
              <xsd:element name=″E″type=″xsd:string″/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
数据
<root>
  <A>
      <B>b1</B>
      <C>c1</C>
      <D>d1</D>
  <E>e1</E>
      <B>b2</B>
      <C>c2</C>
      <D>d2</D>
      <E>e2</E>
  </A>
</root>
在以上例子中所述输入XML模式数据38将元素“B”、“C”、“D”以及“E”定义为Sequence(序列)排序中的自由元素(也就是,maxOccurs=“自由”),Sequence(序列)排序中的自由元素表明这些元素中所包含的数据必须按照指定的顺序出现,并且每一个元素可以出现一次以上。
图5示出上述例子中所述自由序列的输入XML数据37中数据的一个说明性所产生的平面数据结构39。如图5中505一行所示,列标题代表在所述输入XML模式数据38中的Sequence(序列)排序中所定义的元素“B”、“C”、“D”以及“E”。在行510-525中,“b1”、“c1”、“d1”以及“e1”数据被插入到分开的行中。类似地,在行530-545中,“b2”、“c2”、“d2”以及“e2”数据也被插入到分开的行中。在一个自由序列中,序列的子节点能够出现任意多次。因此,兄弟之间没有明显的关系。例如,在图5所示的输入XML数据文件中,无法确定数据集“b1”、“c1”、“d1”以及“e1”与“b2”、“c2”、“d2”以及“e2”之间不互相关联,这是因为它们有共同的父节点。
现在返回图3,在步骤335中,所述XML平面化程序模块36回顾所述模式以确定该模式是否包含Choice(选择)排序。如果所述模式包含Choice(选择)排序,那么在步骤340中,所述XML平面化数据模块36会将该排序内的元素插入到分开的行中。如果所述模式不包含Choice(选择)排序,那么在步骤355中,所述XML平面化数据模块36确定所述模式是否包含Attribute(属性)特性。
如下所示,示出定义Choice(选择)排序内元素的输入XML模式数据38和相应的输入XML数据37的例子:
模式数据
<xsd:element name=″root″>
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name=″A″maxOccurs=″unbounded″>
        <xsd:complexType>
          <xsd:choice>
            <xsd:element name=″B″type=″xsd:string″/>
            <xsd:element name=″C″type=″xsd:string″/>
            <xsd:element name=″D″type=″xsd:string″/>
            <xsd:element name=″E″type=″xsd:string″/>
          </xsd:choice>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
数据
<root>
  <A>
    <E>e1</E>
  </A>
  <A>
    <C>c2</C>
  </A>
  <A>
    <D>d1</D>
  </A>
  <A>
    <B>b1</B>
  </A>
</root>
在上述例子中说明的输入XML模式数据38将元素“B”、“C”、“D”以及“E”定义为Choice(选择)排序<xsd:choice>中的选择元素,这些选择元素表明这些元素中包含的数据互相之间不共有一个关系。因此,所述XML平面化程序模块36将每个元素插入电子制表软件的一个单独的行中。
图6示出上述例子中所述输入XML数据37中数据的一个说明性所产生的平面数据结构39。正如图6中605一行所示,列标题代表在所述输入XML模式数据38中的Choice(选择)排序内定义的元素“B”、“C”、“D”以及“E”。在行610-625中,“e1”、“c2”、“d1”以及“b1”数据被插入于分开的行中。
应该理解的是,所述输入XML模式数据38可以包括嵌入其他排序中的排序。例如,XML模式数据可以在Choice(选择)排序内的元素,所述Choice(选择)排序嵌入于Sequence(序列)排序内定义的元素中。在对所嵌入的元素进行平面化时,所述XML平面化程序模块36根据每一个排序的布局规则插入每一个元素的数据。如下所示,是一个定义了序列排序元素内嵌入的Choice(选择)排序元素的输入XML模式数据38和相应的输入XML数据37的例子:
模式数据
  <xsd:element name=″root″>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name=″A″maxOccurs=″unbounded″>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name=″B″type=″xsd:string″/>
              <xsd:choice>
                <xsd:element name=″C″type=″xsd:string″/>
                <xsd:element name=″D″type=″xsd:string″/>
              </xsd:choice>
              <xsd:element name=″E″type=″xsd:string″/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
数据
  <root>
    <A>
        <B>b1</B>
        <C>c1</C>
        <E>e1</E>
    </A>
    <A>
        <B>b2</B>
        <D>d1</D>
        <E>e2</E>
    </A>
  </root>
在上述的例子中说明的输入XML模式数据38将元素“B”、“E”定义为Sequence(序列)元素,该序列元素表示这些元素中包含的数据必须以指定的顺序出现。所述输入XML模式数据38还将元素“C”、“D”定义为Choice(选择)元素,该选择元素表示这些元素中包含的数据互相之间不共有一个关系。因此,根据所述XML模式数据38,元素“B”以及“E”可以顺次于元素“C”或元素“D”。所述XML数据37表示元素“B”、“C”以及“E”分别包含数据“b1”、“c1”以及“e1”。所述XML数据37还表示元素“B”、“D”以及“E”包含数据“b2”、“d1”以及“e2”。正如以上讨论的,所述XML平面化程序模块36将Sequence(序列)内的数据插入电子制表软件中的同一行(除非maxOccours>1)并且将Choice(选择)元素内的数据插入电子制表软件中的分开的行。
图7示出上述例子中所述相应的输入XML数据37中数据的一个说明性所产生的平面数据结构39。正如图7中705行所示,列标题代表所述输入XML模式数据38中的Sequence(序列)和Choice(选择)排序中所定义的元素“B”、“C”、“D”以及“E”。在行710中,“b1”以及“e1”Sequence(序列)数据插入与“c1”Choice(选择)数据的同一行中,而在行715,“b2”以及“e2”Sequence(序列)数据也插入与“d1”Choice(选择)数据的同一行中。因此,如图7所示,既满足了Sequence(序列)排序的布局规则也满足了Choice(选择)排序的布局规则。Choice(选择)数据“c1”以及“d1”出现在不同的行中,而Sequence(序列)数据“b1”、“e1”、“b2”以及“e2”顺次于Choice(选择)数据。
现在返回图3,在步骤345中,所述XML平面化程序模块36回顾所述模式以确定该模式是否定义了输入XML数据37的属性。如果所述模式定义了属性,那么在步骤350中,所述XML平面化程序模块36将属性插入到与它们的父元素内容的同一行中。在步骤360中,所述XML平面化程序模块36也会用模式中定义的每一个父元素的后代(如子元素)来“向下填充”属性。如果所述模式没有定义属性,那么在步骤355中,所述XML平面化程序模块36确定所述模式是否定义了祖先元素。
如下所示,是一个定义属性的输入XML模式数据38以及相应的输入XML数据37的例子:
模式数据
          <xsd:element name=″root″>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name=″A″maxOccurs=″unbounded″>
          <xsd:complexType>
            <xsd:simpleContent>
              <xsd:restriction base=″xsd:string″>
        <xsd:attribute name=″ATTA″type=″xsd:integer″/>
      </xsd:restriction>
    </xsd:simpleContent>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
数据
  <root>
    <A ATTA=″1″>A1</A>
    <A ATTA=″2″>A2</A>
    <A ATTA=″3″>A3</A>
  </root>
上述例子中说明的所述输入XML模式数据38定义了元素“A”以及属性“ATTA”,该属性“ATTA”进一步被定义为具有整数值(在输入XML数据中被指定为“1”、“2”或者“3”)。
图8示出上述例子中的输入XML数据37中数据的一个说明性所产生的平面数据结构39。正如图8中805一行所示,列标题代表在所述输入XML模式数据38中定义的属性“ATTA”以及父元素“A”。在行810-820中,整数属性值“1”、“2”以及“3”每一个都被插入与父元素“A”数据“A1”、“A2”以及“A3”的同一行中。
如下所示,是定义属性的输入XML模式数据38和相应的输入XML数据37的另一个例子:
模式数据
      <xsd:element name=″root″>
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name=″A″maxOccurs=″unbounded″>
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name=″B″>
                        <xsd:complexType>
                    <xsd:sequence>
          <xsd:element name=″C″type=″xsd:string″/>
                <xsd:element name=″D″type=″xsd:string″/>
                            </xsd:sequence>
                        </xsd:complexType>
                          </xsd:element>
            </xsd:sequence>
            <xsd:attribute name=″ATTA″type=″xsd:integer″/>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
数据
  <root>
    <A ATTA=″213″>
      <B>
          <C>C1</C>
          <D>D1</D>
      </B>
      <B>
          <C>C2</C>
          <D>D2</D>
      </B>
    </A>
  </root>
上述例子中说明的所述输入XML模式数据38定义了父元素“A”以及元素“B”中的子元素“C”和“D”的属性“ATTA”(具有整数值“213”)。
图9示出上述例子中的输入XML数据37中数据的一个说明性所产生的平面数据结构39。正如图9中行905所示,列标题代表属性“ATTA”以及重复的子元素“C”和“D”。重复子元素“C”和“D”的数据被插入在行910以及915中。属性“ATTA”的数值“213”也被插入在行910以及915中子元素“C”和“D”的数据旁边。因此,不重复的属性“ATTA”的数据被重复的子元素“C”和“D”的数据所向下填充。
现在返回图3,在步骤355中,所述XML平面化程序模块36回顾所述模式以确定该模式是否定义了所述输入XML数据37的祖先元素。如果所述模式定义了祖先元素,那么在步骤365中,所述XML平面化程序模块36将用它们的后代“向下填充”所述祖先元素。如果所述模式没有定义祖先元素,那么在步骤370中,所述XML平面化程序模块36确定该模式是否定义了兄弟元素。
如下所示,是定义祖先元素的输入XML模式数据38和相应的输入XML数据37的例子:
模式数据
  <xsd:element name=″root″>
    <xsd:complexType>
      <xsd:sequence>
          <xsd:element name=″A″maxOccurs=″unbounded″>
            <xsd:sequence>
                <xsd:element name=″B″type=″xsd:string″max/>
              </xsd:sequence>
            </xsd:element>
          <xsd:element name=″C″type=″xsd:string″/>
        </xsd:sequence>
     </xsd:complexType>
  </xsd:element>
数据
  <root>
    <A>
      <B>B1</B>
    </A>
    <A>
      <B>B2</B>
    </A>
    <C>C1</C>
  </root>
上述例子中说明的所述输入XML模式数据38规定元素“C”是元素“B”的祖先。在所述输入XML数据37中,元素“B”包含数据“B1”和“B2”,而元素“C”包含内容“C1”。
图10示出上述例子中的输入XML数据37中数据的一个说明性所产生的平面数据结构39。正如图10中1005一行所示,列标题代表元素“B”和“C”。重复元素“B”的数据被插入行1010以及1015中。祖先元素“C”的数据连同元素“B”的数据一起“向下填充”。
现在返回图3,在步骤370中,所述XML平面化程序模块36回顾所述模式以确定该模式是否定义了所述输入XML数据37的兄弟元素。如果所述模式定义了兄弟元素,那么所述XML平面化程序模块36将用其他兄弟元素“向下填充”这些兄弟元素,除非一个或更多兄弟元素出现不止一次。如果所述模式没有定义兄弟元素,操作流程就继续到步骤380,在步骤380中,所述XML平面化程序模块36返回所述模式以确定是否还有特性。如果还有更多所述模式中定义的特性,那么操作流程返回步骤315,在步骤315中,所述XML平面化程序模块36确定下一个特性的标识。如果不再有所述模式中定义的特性,那么操作流程返回图2中的再现操作220。
如下所示,是定义兄弟元素的输入XML模式数据38和相应的输入XML数据37的例子:
模式数据
    <xsd:element name=″root″>
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name=″A″maxOccurs=″unbounded″/>
          <xsd:element name=″B″type=″xsd:string″/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
数据
  <root>
    <A>A1</A>
    <A>A2</A>
    <B>B1</B>
  </root>
上述例子中说明的所述输入XML模式数据38规定元素“A”和“B”是兄弟元素。在所述输入XML数据37中,元素“A”包含数据“A1”和“A2”,而元素“B”包含内容“B1”。
图12示出上述例子中的输入XML数据37中数据的一个说明性所产生的平面数据结构39。正如图11中1105一行所示,列标题代表元素“A”和“B”。重复元素“A”的数据被插入行1110以及1115中。兄弟元素“B”的数据连同元素“A”的数据一起“向下填充”。
应该理解的是,当两个或更多兄弟元素、祖先元素或者祖先兄弟元素在一个模式中被定义为出现不止一次时,则创建笛卡尔乘积。笛卡尔乘积是元素没有任何定义的被组合成几个组合物的结果。例如:如果兄弟元素“A”和“B”在一个模式中都被定义为是自由的(例如,出现不止一次),那么任何数量的元素“A”可能不得不与任何数量的元素“B”一同插入。因为笛卡尔乘积通常导致巨大的数据集,所以它们经常是不期望的。例如,假如两列数据分别为“m”和“n”行,那么当“m”行与“n”行的数据相乘时所得到的就是笛卡尔乘积。随着行数目和列数目的增加,这可能导致相当大的数据集。而且,特别是因为数据集原先根本不关联,因此很难确定导致相当大的数据集的笛卡尔乘积中数据的相互关系。因此,所述XML平面化程序模块36不“向下填充”这些元素。
由前所述,可以理解的是,本发明提供了一种基于模式将分级数据结构转换为平面数据结构的方法和系统。虽然本发明特别地已经参照其实施例进行了说明和描述,然而本领域技术人员会理解,可以不背离本发明的要旨和范围而在形式上和细节上做出显而易见的其他修改。

Claims (39)

1、一种将分级数据结构转换为平面数据结构的方法包括:
在一个应用程序中,装载遵从一个模式的分级数据,其中所述分级数据包括以父子关系连接在一起的元素和属性,其中所述模式定义了所述元素和属性之间的分级关系;
基于所述模式将多个布局规则应用于分级数据中以创建所述平面数据结构;以及
再现所述分级数据以便使所述分级数据被插入所述平面数据结构的行和列中。
2、如权利要求1的所述方法,其中所述基于所述模式将多个布局规则应用于分级数据中包括:
标识所述模式中的特性,其中所述特性标识模式中定义的元素的出现条件;以及
基于所标识的特性来应用多个布局规则。
3、如权利要求2的所述方法,其中所述特性包括第一特性,其规定:
元素在所述分级数据中出现的顺序;以及
每一个元素在所述分级化数据中可能出现的最小和最大次数。
4、如权利要求2的所述方法,其中所述特性包括第二特性,其规定:所选择的元素在所述分级数据中可以出现的最小和最大次数。
5、如权利要求3的所述方法,其中第一特性是一个序列排序。
6、如权利要求3的所述方法,其中第一特性是一个全部排序。
7、如权利要求4的所述方法,其中第二特性是一个选择排序。
8、如权利要求3的所述方法,其中所述布局规则包括根据第一特性将每一个元素插入平面数据结构内的同一行中。
9、如权利要求3的所述方法,其中所述布局规则包括:如果每一个元素的最大出现次数大于1,那么根据第一特性将每一个元素插入所述平面数据结构内分开的一行中。
10、如权利要求4的所述方法,其中所述布局规则包括根据第二特性将每一个所选择的元素插入所述平面数据结构内分开的一行中。
11、如权利要求1的所述方法,其中所述布局规则包括将每一个属性插入所述平面数据结构中。
12、如权利要求1的所述方法,其中所述布局规则包括将每一个属性插入所述平面数据结构中与它的父元素内容的同一行中。
13、如权利要求1的所述方法,其中所述布局规则包括:为相应内容的每一次出现,将每个属性插入所述平面数据结构中与其亲代元素内容的同一行中。
14、如权利要求1的所述方法,其中所述分级数据包括祖先元素和兄弟元素。
15、如权利要求14的所述方法,其中所述布局规则包括:为所述后代的每一次出现,将祖先元素插入所述平面数据结构中与它们后代的同一行中。
16、如权利要求14的所述方法,其中所述布局规则包括:为出现一次以上的每一个兄弟,将兄弟元素插入同一行中。
17、如权利要求14的所述方法,其中所述布局规则包括:如果多个兄弟元素的最大出现次数大于1,那么将每一个兄弟元素相应地插入平面数据结构内分开的一行中。
18、如权利要求1的所述方法,其中所述分级数据是XML数据。
19、如权利要求1的所述方法,其中所述应用程序是一个电子制表应用程序。
20、如权利要求1的所述方法,其中所述平面数据结构是电子制表软件易于使用的。
21、一种具有执行权利要求1所述方法的计算机可执行指令的计算机可读媒介。
22、一种将分级数据结构转换为平面数据结构的计算机系统,包括:
存储器,用于存储所述分级数据结构、与所述平面数据结构相关的模式以及所述平面数据结构;以及
功能性地连接于存储器、用于执行计算机可执行指令的处理单元,所述计算机可执行指令可用于:
装载遵从所述模式的所述分级数据,其中所述分级数据包括以父子关系连接在一起的元素和属性,其中所述模式定义了所述元素和属性之间的分级关系;
标识所述模式中的特性,其中所述特性标识了模式中定义的元素的出现条件;
基于所标识的特性应用多个布局规则以创建所述平面数据结构;以及
再现所述分级数据以便使所述分级数据被插入所述平面数据结构的行和列中。
23、如权利要求22的所述系统,其中所述特性包括第一特性,其规定:
元素在所述分级数据中出现的顺序;以及
每一个元素在所述分级化数据中出现的最小和最大次数。
24、如权利要求22的所述系统,其中所述特性包括第二特性,其规定:
所选择的元素在所述分级化数据中可以出现的最小和最大次数。
25、如权利要求23的所述系统,其中所述第一特性是一个序列排序。
26、如权利要求23的所述系统,其中所述第一特性是一个全部排序。
27、如权利要求24的所述系统,其中所述第二特性是一个选择排序。
28、如权利要求23的所述系统,其中所述布局规则包括根据第一特性将每一个元素插入所述平面数据结构中的同一行中。
29、如权利要求23的所述系统,其中所述布局规则包括:如果每一个元素的最大出现次数大于1,那么根据第一特性将每一个元素插入所述平面数据结构内分开的一行中。
30、如权利要求24的所述系统,其中所述布局规则包括按照第二特性将每一个选择的元素插入所述平面数据结构中分开的一行中。
31、如权利要求22的所述系统,其中所述布局规则包括将每一个具有内容的元素插入所述平面数据结构中。
32、如权利要求22的所述系统,其中所述布局规则包括将每一个属性插入于所述平面数据结构中。
33、如权利要求22的所述系统,其中所述布局规则包括将每一个属性插入所述平面数据结构中与它的父元素内容的同一行中。
34、如权利要求22的所述系统,其中所述布局规则包括:为相应内容的每一次出现,将每一个属性插入所述平面数据结构中与其父元素内容的同一行中。
35、如权利要求22的所述系统,其中所述布局规则包括:为所述后代的每一次出现,将祖先元素插入所述平面数据结构中与它们后代的同一行中。
36、如权利要求22的所述系统,其中所述布局规则包括:为出现一次以上的每一个兄弟,将兄弟元素插入同一行中。
37、如权利要求22的所述系统,其中所述分级数据是XML数据。
38、如权利要求22的所述系统,其中所述应用程序是电子制表应用程序。
39、如权利要求22的所述系统,其中所述平面数据结构是电子制表软件容易使用的。
CNA2004100397582A 2003-02-28 2004-02-27 将基于模式的分级数据结构转换成平面数据结构的方法以及系统 Pending CN1558348A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/376,442 2003-02-28
US10/376,442 US7003722B2 (en) 2003-02-28 2003-02-28 Method and system for converting a schema-based hierarchical data structure into a flat data structure

Publications (1)

Publication Number Publication Date
CN1558348A true CN1558348A (zh) 2004-12-29

Family

ID=32771492

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004100397582A Pending CN1558348A (zh) 2003-02-28 2004-02-27 将基于模式的分级数据结构转换成平面数据结构的方法以及系统

Country Status (14)

Country Link
US (2) US7003722B2 (zh)
EP (1) EP1452974A3 (zh)
JP (1) JP4104565B2 (zh)
KR (1) KR100898476B1 (zh)
CN (1) CN1558348A (zh)
AU (1) AU2004200627B2 (zh)
BR (1) BRPI0400362A (zh)
CA (1) CA2458499C (zh)
MX (1) MXPA04001934A (zh)
MY (1) MY143418A (zh)
PL (1) PL365651A1 (zh)
RU (1) RU2378690C2 (zh)
TW (1) TW200506662A (zh)
ZA (1) ZA200401487B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142951A (zh) * 2013-05-09 2014-11-12 阿里巴巴集团控股有限公司 一种数据处理方法
CN106557454A (zh) * 2015-09-30 2017-04-05 腾讯科技(深圳)有限公司 文档到表格的转换方法及转换系统
CN106557531A (zh) * 2015-09-30 2017-04-05 伊姆西公司 将复杂结构对象转换成平面化数据

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US6948135B1 (en) * 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US6874143B1 (en) * 2000-06-21 2005-03-29 Microsoft Corporation Architectures for and methods of providing network-based software extensions
US7003722B2 (en) * 2003-02-28 2006-02-21 Microsoft Corporation Method and system for converting a schema-based hierarchical data structure into a flat data structure
US20040181748A1 (en) * 2003-03-10 2004-09-16 International Business Machines Corporation Thin client framework deployment of spreadsheet applications in a web browser based environment
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7275216B2 (en) * 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7370066B1 (en) * 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) * 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7007033B1 (en) * 2003-04-28 2006-02-28 Microsoft Corporation Management of markup language data mappings available to a spreadsheet application workbook
US20040220954A1 (en) * 2003-04-29 2004-11-04 International Business Machines Corporation Translation of data from a hierarchical data structure to a relational data structure
JP4014160B2 (ja) * 2003-05-30 2007-11-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、プログラム、及び記録媒体
US7197515B2 (en) * 2003-06-30 2007-03-27 Microsoft Corporation Declarative solution definition
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US20050010896A1 (en) * 2003-07-07 2005-01-13 International Business Machines Corporation Universal format transformation between relational database management systems and extensible markup language using XML relational transformation
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US20050071750A1 (en) * 2003-09-30 2005-03-31 Nelson Brent Dalmas Method and system for automated metamodel system file generation
WO2005065278A2 (en) * 2003-12-24 2005-07-21 Morgan Stanley Investment database application
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7337395B2 (en) * 2004-02-27 2008-02-26 Sap Ag System and method for hierarchical data document modification
US20070240036A1 (en) * 2004-04-08 2007-10-11 Justsystems Corporation Document Processing Device and Document Processing Method
US7496837B1 (en) * 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
US7281018B1 (en) 2004-05-26 2007-10-09 Microsoft Corporation Form template data source change
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7536634B2 (en) * 2005-06-13 2009-05-19 Silver Creek Systems, Inc. Frame-slot architecture for data conversion
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
JP2006139764A (ja) * 2004-10-14 2006-06-01 Hitachi Systems & Services Ltd 階層構造情報生成装置
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US20060107224A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Building a dynamic action for an electronic form
US7409635B2 (en) * 2004-11-16 2008-08-05 Zalag Corporation Display/layout methods and apparatuses including content items and display containers
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7437376B2 (en) * 2004-12-20 2008-10-14 Microsoft Corporation Scalable object model
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7725834B2 (en) * 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US7543228B2 (en) * 2005-06-27 2009-06-02 Microsoft Corporation Template for rendering an electronic form
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US7657549B2 (en) * 2005-07-07 2010-02-02 Acl Services Ltd. Method and apparatus for processing XML tagged data
US20070036433A1 (en) * 2005-08-15 2007-02-15 Microsoft Corporation Recognizing data conforming to a rule
EP1941345A1 (en) * 2005-10-17 2008-07-09 Middlemarch Holdings Pty Ltd A method and apparatus for improved processing and analysis of complex hierarchic data
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7779343B2 (en) * 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US8095923B2 (en) * 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
US20080005721A1 (en) * 2006-06-29 2008-01-03 Augusta Systems, Inc. Method and System for Rapidly Developing Sensor-Enabled Software Applications
US8015547B2 (en) * 2006-06-29 2011-09-06 Augusta Systems, Inc. Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications
US8954396B2 (en) 2006-11-10 2015-02-10 Microsoft Corporation Validating and enabling validation of package structures
US8566375B1 (en) * 2006-12-27 2013-10-22 The Mathworks, Inc. Optimization using table gradient constraints
US8108768B2 (en) * 2007-07-20 2012-01-31 International Business Machines Corporation Improving efficiency of content rule checking in a content management system
US9021064B2 (en) * 2007-10-19 2015-04-28 Oracle International Corporation Web service architecture for product configuration
US8645434B2 (en) * 2008-03-18 2014-02-04 Apple Inc. Techniques for schema production and transformation
US8001155B2 (en) * 2008-06-20 2011-08-16 Microsoft Corporation Hierarchically presenting tabular data
JP5632593B2 (ja) * 2009-07-01 2014-11-26 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US20110072340A1 (en) * 2009-09-21 2011-03-24 Miller Darren H Modeling system and method
EP2518644A1 (de) * 2011-04-29 2012-10-31 Siemens Aktiengesellschaft Verfahren zur Steuerung der Übersetzung von vorgegebenen Regeln und/oder eingehenden Daten eines Datenstroms
US10546057B2 (en) * 2011-10-28 2020-01-28 Microsoft Technology Licensing, Llc Spreadsheet program-based data classification for source target mapping
US9201558B1 (en) 2011-11-03 2015-12-01 Pervasive Software Inc. Data transformation system, graphical mapping tool, and method for creating a schema map
US9430114B1 (en) 2011-11-03 2016-08-30 Pervasive Software Data transformation system, graphical mapping tool, and method for creating a schema map
US20130339399A1 (en) * 2012-06-18 2013-12-19 Dexter A. Dorris Dynamic Schema
US9063959B2 (en) 2013-01-24 2015-06-23 International Business Machines Corporation Decomposing XML schema documents into subsets
RU2527201C1 (ru) * 2013-01-24 2014-08-27 Общество с ограниченной ответственностью "Системное моделирование и анализ" Способ конверсии данных, устройство конверсии данных и система конверсии данных
US9298685B2 (en) * 2013-02-28 2016-03-29 Ricoh Company, Ltd. Automatic creation of multiple rows in a table
US11074231B1 (en) 2013-03-15 2021-07-27 Informatica Llc Validating modifications to mapping statements for processing hierarchical data structures
US20150066684A1 (en) 2013-08-30 2015-03-05 Prasanth K. V Real-time recommendation browser plug-in
EP2887240B1 (en) * 2013-12-23 2016-08-31 Sap Se Electronic product information display system
US9514118B2 (en) * 2014-06-18 2016-12-06 Yokogawa Electric Corporation Method, system and computer program for generating electronic checklists
US20170185662A1 (en) * 2015-12-29 2017-06-29 International Business Machines Corporation Means to process hierarchical json data for use in a flat structure data system
US10984184B2 (en) * 2018-12-11 2021-04-20 Change Healthcare Holdings, Llc Maintenance of a metafile using spreadsheet software
US10983969B2 (en) 2019-02-18 2021-04-20 Boomi, Inc. Methods and systems for mapping flattened structure to relationship preserving hierarchical structure
US11748560B2 (en) 2020-08-14 2023-09-05 Kyndryl, Inc. Converting between tabular and structured data formats
US11537785B1 (en) * 2021-07-14 2022-12-27 Sap Se Spreadsheet flat data extractor
US20230034198A1 (en) * 2021-07-28 2023-02-02 Red Hat, Inc. Using dynamic data structures for storing data objects
WO2023110084A1 (en) * 2021-12-15 2023-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Intelligent plane network functions for generating and sharing data across applications and network functions
US11947559B1 (en) 2022-10-10 2024-04-02 Bank Of America Corporation Dynamic schema identification to process incoming data feeds in a database system

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634053A (en) * 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US5767854A (en) * 1996-09-27 1998-06-16 Anwar; Mohammed S. Multidimensional data display and manipulation system and methods for using same
US6487566B1 (en) 1998-10-05 2002-11-26 International Business Machines Corporation Transforming documents using pattern matching and a replacement language
US6480865B1 (en) 1998-10-05 2002-11-12 International Business Machines Corporation Facility for adding dynamism to an extensible markup language
US6480860B1 (en) 1999-02-11 2002-11-12 International Business Machines Corporation Tagged markup language interface with document type definition to access data in object oriented database
US6418446B1 (en) 1999-03-01 2002-07-09 International Business Machines Corporation Method for grouping of dynamic schema data using XML
US6476833B1 (en) 1999-03-30 2002-11-05 Koninklijke Philips Electronics N.V. Method and apparatus for controlling browser functionality in the context of an application
JP3492247B2 (ja) 1999-07-16 2004-02-03 富士通株式会社 Xmlデータ検索システム
US6631497B1 (en) 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6502112B1 (en) 1999-08-27 2002-12-31 Unisys Corporation Method in a computing system for comparing XMI-based XML documents for identical contents
US6366299B1 (en) * 2000-02-21 2002-04-02 Verizon Laboratories Inc. Multidimensional information visualization using attribute rods
WO2001082133A2 (en) * 2000-04-11 2001-11-01 Informatica Corporation Xml flattener
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
AU2001277868A1 (en) * 2000-07-11 2002-01-21 Juice Software, Inc. A method and system for integrating network-based functionality into productivity applications and documents
US6502101B1 (en) * 2000-07-13 2002-12-31 Microsoft Corporation Converting a hierarchical data structure into a flat data structure
JP2002032263A (ja) 2000-07-13 2002-01-31 Atl Systems:Kk 異なる構造のxmlファイルを使用したシステムどうしの接続方法
JP2002151734A (ja) * 2000-09-04 2002-05-24 Sharp Corp 発光ダイオード
US6684222B1 (en) * 2000-11-09 2004-01-27 Accenture Llp Method and system for translating data associated with a relational database
JP2002207721A (ja) 2001-01-11 2002-07-26 Axis Software Kk 階層構造データの二次元データ変換手段
US7853553B2 (en) * 2001-03-26 2010-12-14 Siebel Systems, Inc. Engine for converting data from a source format to a destination format using user defined mappings
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
JP3773426B2 (ja) * 2001-07-18 2006-05-10 株式会社日立製作所 データマイニングにおける前処理方法及び前処理システム
US20030172368A1 (en) * 2001-12-26 2003-09-11 Elizabeth Alumbaugh System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
US20030187716A1 (en) * 2002-03-29 2003-10-02 International Business Machines Corporation Method and visual user interface for interactive visual analysis of business expenditure
US6917935B2 (en) * 2002-06-26 2005-07-12 Microsoft Corporation Manipulating schematized data in a database
US7428697B2 (en) * 2002-07-31 2008-09-23 Hewlett-Packard Development Company, L.P. Preserving content or attribute information during conversion from a structured document to a computer program
US7395255B2 (en) * 2002-09-13 2008-07-01 General Motors Corporation Data management system having a common database infrastructure
US7490097B2 (en) * 2003-02-20 2009-02-10 Microsoft Corporation Semi-structured data storage schema selection
US7003722B2 (en) * 2003-02-28 2006-02-21 Microsoft Corporation Method and system for converting a schema-based hierarchical data structure into a flat data structure

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142951A (zh) * 2013-05-09 2014-11-12 阿里巴巴集团控股有限公司 一种数据处理方法
CN106557454A (zh) * 2015-09-30 2017-04-05 腾讯科技(深圳)有限公司 文档到表格的转换方法及转换系统
CN106557531A (zh) * 2015-09-30 2017-04-05 伊姆西公司 将复杂结构对象转换成平面化数据
CN106557531B (zh) * 2015-09-30 2020-07-03 伊姆西Ip控股有限责任公司 复杂结构对象转换成平面化数据的方法、设备和存储介质

Also Published As

Publication number Publication date
ZA200401487B (en) 2005-06-29
US20040172590A1 (en) 2004-09-02
AU2004200627A1 (en) 2004-09-16
JP2004265405A (ja) 2004-09-24
BRPI0400362A (pt) 2004-12-28
RU2378690C2 (ru) 2010-01-10
CA2458499C (en) 2012-12-04
EP1452974A3 (en) 2006-04-05
CA2458499A1 (en) 2004-08-28
JP4104565B2 (ja) 2008-06-18
EP1452974A2 (en) 2004-09-01
PL365651A1 (en) 2004-09-06
US7003722B2 (en) 2006-02-21
TW200506662A (en) 2005-02-16
US8051373B2 (en) 2011-11-01
RU2004105879A (ru) 2005-08-10
KR100898476B1 (ko) 2009-05-21
MXPA04001934A (es) 2005-09-08
AU2004200627B2 (en) 2010-06-24
US20060117251A1 (en) 2006-06-01
MY143418A (en) 2011-05-13
KR20040077573A (ko) 2004-09-04

Similar Documents

Publication Publication Date Title
CN1558348A (zh) 将基于模式的分级数据结构转换成平面数据结构的方法以及系统
CN1097795C (zh) 结构式文件处理方法和装置
CN1109994C (zh) 文件处理装置与记录媒体
CN1194319C (zh) 对表格式数据进行查找、列表及分类的方法和装置
CN1271505C (zh) 用于进行图像检索的图像处理装置及方法
CN1285051C (zh) 图像处理装置及其方法
CN1144145C (zh) 用于数据仓库的选择聚集层和交叉产品层的方法和装置
CN1230767C (zh) 数字内容作成方法
CN1501285A (zh) 排版系统、排版程序和排版方法
CN1271545C (zh) 语言翻译系统
CN1794231A (zh) 具有替换格式的上下文无关的文档部分
CN101044484A (zh) 信息处理装置、方法以及程序
CN1276575A (zh) 数据库存取系统
CN1959705A (zh) 信息处理装置、方法和程序
CN1752963A (zh) 文档信息处理设备、文档信息处理方法及处理程序
CN1744036A (zh) 报告软件中支持定制图形表示的系统和方法
CN1290889A (zh) 程序对象的串行化和解串行的版本适应
CN1014845B (zh) 在结构式文件中制作、扩展及收缩组元标记的技术
CN1647082A (zh) 集成电路的开发方法和存储了集成电路的开发方法的程序存储媒体、以及asic和可编程逻辑器件同时开发系统、开发程序和开发方法
CN1231452A (zh) 字体共享系统和方法及存储实行该方法的程序的记录媒体
CN1321923A (zh) 画面程序作成方法、记录媒体
CN1749958A (zh) 使用形状的公用图表
CN1763743A (zh) 图表上的自动标签放置系统和方法
CN1551016A (zh) 文件管理方法及其装置和注解信息产生方法及其装置
CN1629871A (zh) 工作流管理设备及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20041229