CN1558348A - 将基于模式的分级数据结构转换成平面数据结构的方法以及系统 - Google Patents
将基于模式的分级数据结构转换成平面数据结构的方法以及系统 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating 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的所述系统,其中所述平面数据结构是电子制表软件容易使用的。
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)
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)
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)
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 |
-
2003
- 2003-02-28 US US10/376,442 patent/US7003722B2/en active Active
-
2004
- 2004-02-17 AU AU2004200627A patent/AU2004200627B2/en not_active Ceased
- 2004-02-18 EP EP04003684A patent/EP1452974A3/en not_active Ceased
- 2004-02-20 JP JP2004045246A patent/JP4104565B2/ja not_active Expired - Fee Related
- 2004-02-20 MY MYPI20040572A patent/MY143418A/en unknown
- 2004-02-24 ZA ZA2004/01487A patent/ZA200401487B/en unknown
- 2004-02-24 CA CA2458499A patent/CA2458499C/en not_active Expired - Fee Related
- 2004-02-26 TW TW093105001A patent/TW200506662A/zh unknown
- 2004-02-27 CN CNA2004100397582A patent/CN1558348A/zh active Pending
- 2004-02-27 PL PL36565104A patent/PL365651A1/xx unknown
- 2004-02-27 MX MXPA04001934A patent/MXPA04001934A/es active IP Right Grant
- 2004-02-27 RU RU2004105879/09A patent/RU2378690C2/ru not_active IP Right Cessation
- 2004-02-27 BR BR0400362-4A patent/BRPI0400362A/pt not_active Application Discontinuation
- 2004-02-28 KR KR1020040013750A patent/KR100898476B1/ko active IP Right Grant
-
2006
- 2006-01-06 US US11/326,892 patent/US8051373B2/en not_active Expired - Fee Related
Cited By (4)
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 |