Source: https://patents.google.com/patent/US8051373?oq=flatulence
Timestamp: 2018-04-19 13:53:08
Document Index: 743122541

Matched Legal Cases: ['Application No. 200410039758', 'Application No. 2004105879', 'Application No. 2004200627', 'Application No. 2004105879', 'Application No. 200410039758', 'Application No. 200410039758', 'Application No. 200410039758', 'Application No. 04', 'Application No. 04', 'Application No. 10', 'Application No. 200410039758', 'Application No. 2004200627', 'Application No. 200410039758', 'art1']

US8051373B2 - Method and system for converting a schema-based hierarchical data structure into a flat data structure - Google Patents
US8051373B2
US8051373B2 US11326892 US32689206A US8051373B2 US 8051373 B2 US8051373 B2 US 8051373B2 US 11326892 US11326892 US 11326892 US 32689206 A US32689206 A US 32689206A US 8051373 B2 US8051373 B2 US 8051373B2
Expired - Fee Related, expires 2026-04-02
US11326892
US20060117251A1 (en )
This patent application is a continuation of U.S. patent application Ser. No. 10/376,442, entitled “METHOD AND SYSTEM FOR CONVERTING A SCHEMA-BASED HIERARCHICAL DATA STRUCTURE INTO A FLAT DATA STRUCTURE,” filed Feb. 28, 2003 and assigned to the same assignee as this application. The aforementioned patent application is expressly incorporated herein by reference.
Next, the operational flow continues to application operation 215 where the XML flattening program module 36 determines how the loaded XML data is to be inserted based on constructs within the schema which has been mapped to the spreadsheet. The XML flattening program module 36 makes its determination by applying a series of “layout rules” to the data. The layout rules are based on known schema constructs and govern how the data is to be inserted or “flattened.” It will also be appreciated that the XML flattening program module 36 may flatten the entire input XML data 37 or a fragment of the data. The XML flattening program module 36 flattens fragments from the beginning of the fragment, considering the closest common parent of all the nodes of the fragment. After applying the layout rules, the XML flattening program module 36 creates the flat data structure. The steps comprising application operation 215 are shown in FIG. 3 and will be described in greater detail below. Finally, the operational flow continues to rendering operation 220 where the XML flattening program module 36 renders the “flattened” XML data in the spreadsheet. Illustrative screenshots showing how the data is rendered in the spreadsheet based on the layout rules is shown in FIGS. 4-11 and will be described in greater detail below.
Choice: This property specifies that elements do not share a relationship with each other and must be chosen (only one occurrence per choice). The chosen element, or group may occur zero to more than once. The choice itself may also occur more than once. If the schema contains a Choice property, the XML flattening program module 36 will display the elements within this compositor on separate rows in the spreadsheet
<xsd:element name=“root”>
<xsd:element name=“A” 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” />
<C>c2</C>
<E>e2</E>
<D>d2</D>
The input XML schema data 38 illustrated in the above example defines a base element “A” of the XML data structure. Elements “B,” “C,” “D,” and “E” are elements which must be contained within the element “A” and are defined within the All compositor. The “b1,” “c1,” “d1,” and “e1” in the input XML data 37 for the schema represent the data contained within the elements “B,” “C,” “D,” and “E.” The “</B>, </C>, </D>, and </E> following the aforementioned data signifies the end of each element. Similarly, the input XML data 37 also indicates “C,” “B,” “E” and “D” elements containing data “c2,” “b2,” “e2,” and “d2” respectively, also contained within the element “A.”
An illustrative resulting flat data structure 39 for the data in the input XML data 37 for the unbounded sequence in the above example is shown in FIG. 5. As shown on line 505 in FIG. 5, the column headings represent the elements “B,” “C,” “D,” and “E” defined within the Sequence compositor in the input XML schema data 38. On lines 510-525, the “b1,” “c1,” “d1,” and “e1” data are inserted on separate rows. Similarly, on lines 530-545, the “b2,” “c2,” “d2,” and “e2” data are also inserted on separate rows. In an unbounded sequence the children of the sequence can appear any number of times. Thus, there is no apparent relationship between the siblings. For example, in the input XML data file of the example shown in FIG. 5, it is impossible to determine that the data sets “b1,” “c1,” “d1,” and “e1” and b2,” “c2,” “d2,” and “e2” are not related to each other because they have a common parent.
<xsd:element name“A” maxOccurs=“unbounded”>
The input XML schema data 38 illustrated in the above example defines elements “B,” “C,” “D,” and “E” as choice elements within the Choice compositor <xsd:choice>, indicating that the data contained within these elements do not share a relationship with each other. As a result, the XML flattener program module 36 will insert each element on a separate row in the spreadsheet.
An illustrative resulting flat data structure 39 for the data in the input XML data 37 for the above example is shown in FIG. 6. As shown on line 605 in FIG. 6, the column headings represent the elements “B,” “C,” “D,” and “E” defined within the Choice compositor in the input XML schema data 38. On lines 610-625, the “e1,” “c2,” “d1,” and “b1” data are inserted on separate rows.
The input XML schema data 38 illustrated in the above example defines elements “B” and “E” as Sequence elements indicating that the data contained within these elements must occur in the specified order. The input XML schema data 38 also defines elements “C” and “D” as Choice elements indicating that the data contained within these elements do not share a relationship with each other. Thus, according to the XML schema data 38. elements “B” and “E” may be in sequence with element “C” or element “D.” The XML data 37 indicates that the elements “B,” “C,” and “E” contain the data “b1,” “c1,” and “e1” respectively. The XML data 37 also indicates that the elements “B,” “D,” and “E” contain the data “b2,” “d1,” and “e2.” As discussed above, the XML flattener program module 36 inserts data within Sequence elements on the same row in the spreadsheet (unless maxOccurs>1) and inserts data within Choice elements on separate rows in the spreadsheet.
<xsd:attribute name=“ATTA” type=“xsd:integer” />
<A ATTA=“1”>A1</A>
<A ATTA=“2”>A2</A>
<A ATTA=“3”>A3</A>
An illustrative resulting flat data structure 39 for the data in the input XML data 37 for the above example is shown in FIG. 8. As shown on line 805 in FIG. 8, the column headings represent the attribute “ATTA” and the parent element “A” defined in the input XML schema data 38. On lines 810-820, the integer attribute values “1,” “2,” and “3” are inserted are each inserted on the same row as parent element “A” data “A1,” “A2,” and “A3.”
<xsd:element name=“B”>
<A ATTA=“213”>
<xsd:element name=“B” type=“xsd:string” max/>
<xsd:element name=“A” maxOccurs=“unbounded”/>
1. A method for converting a hierarchical data structure into a flat data structure comprising:
in an application program, loading a schema and loading hierarchical data conforming to the schema wherein the hierarchical data includes data fields and data content linked together in a hierarchical relationship, wherein the schema defines hierarchical relationships between the data fields and attributes appearing in the hierarchical data; wherein the schema is separate from the hierarchical data; wherein the schema to load is identified by the loaded hierarchical data;
examining the loaded schema to identify properties and element types in the schema; wherein the properties identify occurrence requirements for the data fields and the data content defined in the schema, the properties comprising: a first property that specifies that data fields may occur in any order but may only occur once and that data fields within the first property are displayed within a same row; a second property that specifies that data fields must occur in the specified order and may occur zero to more than once and that data fields within the second property are displayed on a same row unless the loaded schema defines an element as occurring more than once; and a third property that specifies that data fields do not share a relationship with each other and are chosen and that data fields within the third property are displayed on separate rows;
applying a plurality of layout rules to the hierarchical data based on the examining of the loaded schema to create the flat data structure; and
organizing the hierarchical data so that the hierarchical data is inserted in rows and columns in the flat data structure.
2. The method of claim 1, wherein applying a plurality of layout rules to the hierarchical data based on the schema comprises:
applying the plurality of layout rules based on the identified properties and the data fields.
3. The method of claim 1, further comprising mapping the schema to the flat data structure.
4. The method of claim 3, wherein mapping the schema to the flat data structure comprises receiving the mapping by a user input.
5. The method of claim 1, wherein the layout rules include inserting each data field on the same row within a spreadsheet according to at least one of the properties.
6. The method of claim 1, wherein the layout rules include inserting each data field on a separate row within the flat data structure according to the first property if a maximum number of occurrences of each data field is greater than one.
7. The method of claim 1, wherein the layout rules include inserting each chosen data field on a separate row within the flat data structure according to at least one of the properties.
8. The method of claim 1, wherein the application program is a spreadsheet application program.
9. The method of claim 1, wherein the flat data structure is readily usable by an electronic spreadsheet.
10. A computer system for converting a hierarchical data structure into a flat data structure comprising:
the hierarchical data structure,
a schema associated with the flat data structure, and
the flat data structure; and
loading the schema and loading the hierarchical data conforming to the schema, wherein the hierarchical data includes data fields and data content linked together in a hierarchical relationship, wherein the schema defines hierarchical relationships between the data fields the and attributes; wherein the schema is separate from the hierarchical data and wherein the schema to load is identified by the hierarchical data;
identifying properties from the schema, wherein the properties identify occurrence requirements for the data fields defined in the schema, the properties comprising: a first property that specifies that data fields may occur in any order but may only occur once and that data fields within the first property are displayed within a same row; a second property that specifies that data fields must occur in the specified order and may occur zero to more than once and that data fields within the second property are displayed on a same row unless the loaded schema defines an element as occurring more than once; and a third property that specifies that data fields do not share a relationship with each other and are chosen and that data fields within the third property are displayed on separate rows;
rendering the hierarchical data so that the hierarchical data is inserted in rows and columns in the flat data structure.
11. The system of claim 10, wherein the rendering is within a spreadsheet.
12. The system of claim 10, further comprising mapping the schema to the flat data structure.
13. The system of claim 12, wherein mapping the schema to the flat data structure comprises receiving the mapping by a user input.
14. The system of claim 11, wherein the layout rules include inserting each data field on a separate row within the spreadsheet according to at least one of the properties.
15. The system of claim 12, wherein the layout rules include inserting each chosen data field on a separate row of the spreadsheet according to at least one of the properties.
16. The system of claim 11, wherein the layout rules include inserting the data content within the flat data structure.
17. The system of claim 11, wherein the application program is a spreadsheet application program.
18. The system of claim 11, wherein the flat data structure is readily usable by an electronic spreadsheet.
19. A computer-readable storage medium having computer-executable instructions which, when executed on a computer, cause the computer to perform a method for converting a hierarchical data structure into a flat data structure, the method comprising:
in an application program, loading a schema and loading hierarchical data conforming to a schema wherein the hierarchical data includes data fields and data content linked together in a hierarchical relationship, wherein the schema defines hierarchical relationships between the data fields; wherein the schema is separate from the hierarchical data; wherein the schema to load is identified by the hierarchical data;
determining properties of the schema, the properties comprising: a first property that specifies that data fields may occur in any order but may only occur once and that data fields within the first property are displayed within a same row; a second property that specifies that data fields must occur in the specified order and may occur zero to more than once and that data fields within the second property are displayed on a same row unless the loaded schema defines an element as occurring more than once; and a third property that specifies that data fields do not share a relationship with each other and are chosen and that data fields within the third property are displayed on separate rows;
20. The computer-readable storage medium of claim 19, wherein applying a plurality of layout rules to the hierarchical data based on the schema comprises:
applying the plurality of layout rules based on the data fields and the identified properties.
US11326892 2003-02-28 2006-01-06 Method and system for converting a schema-based hierarchical data structure into a flat data structure Expired - Fee Related US8051373B2 (en)
US10376442 US7003722B2 (en) 2003-02-28 2003-02-28 Method and system for converting a schema-based hierarchical data structure into a flat data structure
US11326892 US8051373B2 (en) 2003-02-28 2006-01-06 Method and system for converting a schema-based hierarchical data structure into a flat data structure
US20060117251A1 true US20060117251A1 (en) 2006-06-01
US8051373B2 true US8051373B2 (en) 2011-11-01
US10376442 Active 2024-07-22 US7003722B2 (en) 2003-02-28 2003-02-28 Method and system for converting a schema-based hierarchical data structure into a flat data structure
US11326892 Expired - Fee Related US8051373B2 (en) 2003-02-28 2006-01-06 Method and system for converting a schema-based hierarchical data structure into a flat data structure
JP5632593B2 (en) * 2009-07-01 2014-11-26 キヤノン株式会社 The information processing apparatus, control method, and program
US20150066684A1 (en) 2013-08-30 2015-03-05 Prasanth K. V Real-time recommendation browser plug-in
WO2001006418A1 (en) 1999-07-19 2001-01-25 International Business Machines Corporation Spreadsheet cell-data source binding
WO2001082133A2 (en) 2000-04-11 2001-11-01 Informatica Corporation Xml flattener
WO2001098927A2 (en) 2000-06-21 2001-12-27 Microsoft Corporation Authoring arbitrary xml documents using dhtml and xslt
US6501101B2 (en) * 2000-09-04 2002-12-31 Sharp Kabushiki Kaisha Light emitting diode
US20040006563A1 (en) * 2002-06-26 2004-01-08 Arthur Zwiegincew Manipulating schematized data in a database
"Altova markup your mind!", http://web.archive.org/web/20021204211721/http://altova.com/products-ide.html, Dec. 2002, pp. 1-3.
"Altova markup your mind!", http://web.archive.org/web/20021204211721/http://altova.com/products—ide.html, Dec. 2002, pp. 1-3.
"BizTalk Server 2002 Compiling Data", http://msdn.microsoft.com/library/en-us/bts-2002/htm/lat-xmltools-map-concept-drgl.a..., Microsoft Corporation, 1999-2001, pp. 1.
"BizTalk Server 2002 Compiling Data", http://msdn.microsoft.com/library/en-us/bts—2002/htm/lat—xmltools—map—concept—drgl.a..., Microsoft Corporation, 1999-2001, pp. 1.
"BizTalk Server 2002 Mapper User Interface", http://msdn.microsoft.com/library/en-us/bts—2002/htm/lat—xmltools—map—concept—codw..., Microsoft Corporation, 1999-2001, pp. 1.
"BizTalk Server 2002 Testing Maps", http://msdn.microsoft.com/library/en-us/bts—2002/htm/lat—xmltools—map—concept—fhhy.a..., Microsoft Corporation, 1999-2001, pp. 1-2.
"BizTalk Server 2002 View Links and Functoids by Using Grid Preview", http://msdn.microsoft.com/library/en-us/bts—2002/htm/lat—xmltools—map—check—fuwn.as..., Microsoft Corporation, 1999-2001, pp. 1.
"Corel XMetal 4 and Interwoven TeamXML", http://web.archive.org/web/20030807211225/www.corel.com/futuretense-cs/ccurl/corel+xml+4+and+interwoven+teamxml.pdf, Aug. 2003, pp. 1-2.
"Corel XMetal 4 and Interwoven TeamXML", http://web.archive.org/web/20030807211225/www.corel.com/futuretense—cs/ccurl/corel+xml+4+and+interwoven+teamxml.pdf, Aug. 2003, pp. 1-2.
"Corel XMetal4, Making XML Content Creation Easy", http://web.archive.org/web/20031118215158/www.corel.com/servlet/Satellite?pagename, Nov. 2003, pp. 1-2.
"From XML Schema to Relations: A Cost-Based Approach to XML Storage", by Bohannon et al., Bell Laboratories, Proceedings of the 18th International Conference on Data Engineering (ICD' 02), 2002 IEEE. *
"Integrated Development Environment (IDE)", http://web.archive.org/web/20020602032242/http://altova.com/products-ide.html, Jun. 2002, pp. 1-2.
"Integrated Development Environment (IDE)", http://web.archive.org/web/20020602032242/http://altova.com/products—ide.html, Jun. 2002, pp. 1-2.
"Integrating with External Systems: iPlanet™ Unified Development Server", Sun Microsystems, Inc., Ver. 5.0, Aug. 2001, pp. 127-156.
"Microsoft BizTalk Server 2002—Using BizTalk Mapper", http://msdn.Microsoft.com/library/en-us/bts—2002/htm/lat—xmltools—map—intro—zkqb.asp..., Microsoft Corporation, 1999-2001, pp. 1-2.
"Q&A: How ‘XDocs’ Alters the Paradigm for Gathering Business-Critical Information", http://www.microsoft.com/presspass/press/2002/oct02/10-09officefamily.mspx, Microsoft Corporation, Oct. 2002-Feb. 2003, pp. 1-4.
"The Corel-XyEnterprise XML Solution", http://web.archive.org/web/20030807154355/www.corel.com/futuretense-cs/ccurl/corel+and+XY+enterprise+XML+solution.pdf, Aug. 2003, pp. 1-2.
"The Corel-XyEnterprise XML Solution", http://web.archive.org/web/20030807154355/www.corel.com/futuretense—cs/ccurl/corel+and+XY+enterprise+XML+solution.pdf, Aug. 2003, pp. 1-2.
"The StarOffice™ 6.0 Suite: New Features Guide", Sun Microsystems, V. 1.1, Jul. 2002, pp. 1-31.
"XML Compliance, 100% Pure XML", http:web.archive.org/web/20021209185855/www.arbortext.com/html/xml-compliance, Dec. 2002, pp. 1-3.
"XML Compliance, 100% Pure XML", http:web.archive.org/web/20021209185855/www.arbortext.com/html/xml—compliance, Dec. 2002, pp. 1-3.
Bohannon-IEEE Feb. 26-Mar. 1, 2002-From XML Schema to Relations.pdf. *
Bohannon—IEEE Feb. 26-Mar. 1, 2002—From XML Schema to Relations.pdf. *
Eisenberg, D., "Using XML", Retrieved from the Internet: http://www.alistapart.com/stories/usingxml/, Retrieved on Feb. 7, 2006, 7 pages.
McGrath, S.; "I am new to XML and I'm wondering what the difference is between valid and well-formed? I know that valid XML is that which conforms to a DTD like HTML4, but what is well-formed?"; Dec. 3, 2001; accessed at http://searchsoa.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid26-gci784 397,00.html on Oct. 7, 2009; 2 pgs.
McGrath, S.; "I am new to XML and I'm wondering what the difference is between valid and well-formed? I know that valid XML is that which conforms to a DTD like HTML4, but what is well-formed?"; Dec. 3, 2001; accessed at http://searchsoa.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid26—gci784 397,00.html on Oct. 7, 2009; 2 pgs.
Office Action mailed Aug. 3, 2007, in CN Application No. 200410039758.2, w/Translation.
Office Action mailed Dec. 11, 2008, in RU Application No. 2004105879, w/Translation.
Office Action mailed Feb. 12, 2010, in AU Application No. 2004200627.
Office Action mailed Jan. 16, 2008, in RU Application No. 2004105879, w/Translation.
Office Action mailed Jan. 6, 2011, in CN Application No. 200410039758.2, w/Translation.
Office Action mailed Jun. 19, 2009, in CN Application No. 200410039758.2, w/Translation.
Office Action mailed Jun. 6, 2008, in CN Application No. 200410039758.2, w/Translation.
Office Action mailed May 2, 2008, in EP Application No. 04 003 684.0.
Office Action mailed Nov. 16, 2009, in EP Application No. 04 003 684.0.
Office Action mailed Nov. 20, 2009, in MY Application No. PI 20040572.
Office Action mailed Nov. 27, 2008, in KR Application No. 10-2004-13750, w/Translation.
Office Action mailed Oct. 16, 2009, in CN Application No. 200410039758.2, w/Translation.
Office Action mailed Sep. 14, 2009, in AU Application No. 2004200627.
Office Action mailed Sep. 17, 2010, in CN Application No. 200410039758.2, w/Translation.
Petropoulos et al., XML Query Forms (XQForms): Declarative Specification of XML Query Interfaces, WWW10, May 1-5, 2001, Hong Kong. *
Rice, F. C., "Transform XML Files with XSLT When Importing into Microsoft Excel 2002", Retrieved from the Internet: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexcl2k2/html/odc-xlflatnr.asp, Retrieved on Feb. 7, 2006, 11 pages.
Rice, F. C., "Transform XML Files with XSLT When Importing into Microsoft Excel 2002", Retrieved from the Internet: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexcl2k2/html/odc—xlflatnr.asp, Retrieved on Feb. 7, 2006, 11 pages.
St. Laurent, S.; "Describing your Data: DTDs and XML Schemas"; Dec. 1, 1999; accessed at http://www.xml.com/lpt/a/481 on Oct. 7, 2009; 4 pgs.
Tittel Ed, et al.; "XML for Dummies-4th Edition"; Wiley Publishing, Inc.; 2005; XP007910498; 4 pgs.
Tittel Ed, et al.; "XML for Dummies—4th Edition"; Wiley Publishing, Inc.; 2005; XP007910498; 4 pgs.
Tittel Ed; Online document fragment of "XML for Dummies" Snippet view Ed. 3; 2002; accessed at http://books.google.de/books?hl=en&id=QpoQ8A63kpgC&q=%22#search-anchor> on Sep. 7, 2009; XP00797910499; 3 pgs.
Tittel Ed; Online document fragment of "XML for Dummies" Snippet view Ed. 3; 2002; accessed at http://books.google.de/books?hl=en&id=QpoQ8A63kpgC&q=%22#search—anchor> on Sep. 7, 2009; XP00797910499; 3 pgs.
Van Der Vliest, E.; "Using W3C XML Schema"; online document accessed at http://xml.co9m/pub/a/2000/11/29/schemas/part1.html on Oct. 17, 2001; XP002972461; 1 pg.
Wegener, L., et al. "Orthogonality in DBMS Design: the XML Approach"; International Workshop on Foundations of Models for Information Integration; Sep. 17, 2001; XP002366510; Viterbo, Italy.
US9128963B2 (en) 2013-01-24 2015-09-08 International Business Machines Corporation Decomposing XML schema documents into subsets
US20060117251A1 (en) 2006-06-01 application
JP4104565B2 (en) 2008-06-18 grant
US7003722B2 (en) 2006-02-21 grant
CA2458499C (en) 2012-12-04 grant
US20040172590A1 (en) 2004-09-02 application
EP1452974A3 (en) 2006-04-05 application
CA2458499A1 (en) 2004-08-28 application
JP2004265405A (en) 2004-09-24 application
RU2378690C2 (en) 2010-01-10 grant
RU2004105879A (en) 2005-08-10 application
KR100898476B1 (en) 2009-05-21 grant
KR20040077573A (en) 2004-09-04 application
EP1452974A2 (en) 2004-09-01 application
CN1558348A (en) 2004-12-29 application