NO333083B1 - System og fremgangsmate for a avbilde data uten bruk av skjema med nestede tabeller - Google Patents

System og fremgangsmate for a avbilde data uten bruk av skjema med nestede tabeller

Info

Publication number
NO333083B1
NO333083B1 NO20051482A NO20051482A NO333083B1 NO 333083 B1 NO333083 B1 NO 333083B1 NO 20051482 A NO20051482 A NO 20051482A NO 20051482 A NO20051482 A NO 20051482A NO 333083 B1 NO333083 B1 NO 333083B1
Authority
NO
Norway
Prior art keywords
path
parent element
spreadsheet
data
list
Prior art date
Application number
NO20051482A
Other languages
English (en)
Other versions
NO20051482D0 (no
NO20051482L (no
Inventor
Yiu-Ming Leung
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 NO20051482D0 publication Critical patent/NO20051482D0/no
Publication of NO20051482L publication Critical patent/NO20051482L/no
Publication of NO333083B1 publication Critical patent/NO333083B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • 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/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Et system og en fremgangsmåte for å avbilde nyttedata til en regnearkliste. Foreliggende oppfinnelse omfatter et system for å avbilde nyttedata til en regnearkliste som støtter nestede tabeller, uten bruk av et skjema. Etter mottak av en regnearkliste bestemmer foreliggende oppfinnelse moderelement-banen til hver felt-bane definert i regnearklisten. Den mest omfattende moderelement-banen kan brukes til å generere et sett av noder basert på nyttedataene. Dersom flere enn én unik moderelement-bane kvalifiserer som mest omfattende moderelement-bane, kan da disse moderelement-banene angis som gren-grunnbaner. Alle andre moderelement-baner kan deretter bindes til en tilhørende gren-grunnbane. Under bindingsprosessen kan hver gren-grunnbane evalueres for å generere resultatnoder, som kan brukes til å fremskaffe verdiene for regnearklistens felter.

Description

Teknikkens fagområde
Foreliggende oppfinnelse vedrører generelt systemer og fremgangsmåter for avbildning av data, og mer spesifikt systemer og fremgangsmåter for avbildning av data uten bruk av et skjema.
Oppfinnelsens bakgrunn
Etter hvert som XML (eXtensible Markup Language) har blitt mer vanlig ved overføring av data mellom applikasjoner, spesielt over Internett, har mange utbredte applikasjoner begynt å implementere web-relatert funksjonalitet (f.eks. publisering av dokumenter på Internett) med bruk av XML. Én slik applikasjon er MICROSOFT EXCEL, som tilbys av Microsoft Corporation i Redmond, Washington. XML-lister ble innført for å vise XML-formaterte nyttedata som følger et forbestemt skjema. Relasjonen mellom de XML-formaterte nyttedataene og en XML-listes oppbygning defineres typisk av en XML-avbildning, som er en del av definisjonen av regnearkets arbeidsbok ("workbook"). XML-avbildningen kan bestemme plasseringen av en XML-liste i arbeidsboken, antallet kolonner som vil bli avbildet og typen element eller attributt assosiert med hver kolonne. En XMLSS-(XML SpreadSheet)-fil beskriver regnearkets arbeidsbok, inklusive alle XML-lister som arbeidsboken inneholder. Elementer i det forbestemte skjemaet avbildes til et rutenett for å danne en avbildet XML-liste, der hver rad representerer en node-instans av nyttedataene. I alminnelighet definerer skjemaet XML-nyttedataenes form.
For at en regnearkapplikasjon skal kunne muliggjøre funksjonell interaktivitet over Internett må den sikre at en gitt arbeidsbok blir lastet og vist over et nettverk på samme måte som den ville blitt vist på et selvstendig system. En viktig del av dette er avbildningen av nyttedata til XML-lister. Denne avbildningen krever bruk av et forbestemt skjema.
Uheldigvis kan det å avhenge av et forbestemt skjema for å avbilde XML-formaterte nyttedata til en XML-liste være problematisk. Dersom for eksempel skjemaet er utilgjengelig eller skadet, vil dataene kunne bli avbildet på feil måte. I tillegg kan det å anvende et skjema på nyttedata og XML-lister kreve kapasitetskrevende prosessering av en datamaskins prosesseringsenhet (CPU). En slik belastning av prosessoren kan være upraktisk eller ugunstig for databehandlingssystemer som for eksempel tjenermaskiner eller håndholdte anordninger.
Det å avbilde nyttedata til en liste i et regneark uten bruk av et skjema kan være vanskelig på grunn av vanskelighetene forbundet med det å avbilde nestede tabeller. Nestede tabeller anvendes ofte for fremvisning av kompliserte eller koplede nyttedata, slik at en tabell kan omfatte flere tabeller (f.eks. undertabeller). Den rekursive naturen til nestede tabeller muliggjør fremvisning av innbyrdes forbundede nyttedata.
JOHN R. DURANT:"lmporting XML Maps, XML Lists, and Dynamic Chart Sources in Excel 2003", [online] 2003, XP002380149 viser hvordan en kan importere data inntil Microsoft Excel 2002 ved bruk av web-forespørsler. Det foreslås å lage et kart som dynamisk responderer til endringer i kildedata. Det er beskrevet hvordan Microsoft Office Excel 2003 leverer de samme resultater men med mindre innsats.
Følgelig er det behov for et system og en fremgangsmåte for å avbilde nyttedata til en liste for et regneark uten bruk av et skjema.
Det er også behov for et system og en fremgangsmåte for å avbilde nyttedata til en liste for et regneark uten bruk av et skjema, der resultatet i det vesentlige er det samme som ved skjemabasert avbildning av data.
Videre er det behov for et system og en fremgangsmåte for å avbilde nyttedata til en liste for et regneark som støtter nestede tabeller, uten bruk av et skjema.
Oppsummering av oppfinnelsen
Generelt beskrevet omfatter foreliggende oppfinnelse et system og en fremgangsmåte for å avbilde nyttedata til en liste for et regneark (f.eks. en XML-liste) som inneholder regnearkdata. Mer spesifikt omfatter foreliggende oppfinnelse et system for å avbilde nyttedata til en regnearkliste som støtter nestede tabeller, uten bruk av et skjema. Etter mottak av en regnearkliste genererer foreliggende oppfinnelse moderelementbanen, dvs. banen til moderelementet, til hver feltbane, dvs. banen til hvert felt, definert i regnearklisten. Den mest omfattende moderelementbanen (f.eks. grunnbanen) kan brukes til å generere et sett av bindingsnoder basert på nyttedataene. Foreliggende oppfinnelse kan avbilde hver bindingsnode til en rad i regnearklisten. Ved å gjennomløpe fra hver bindingsnode ved anvendelse av grunnbanen og feltbanene kan foreliggende oppfinnelse fremskaffe verdiene for alle de andre feltene i regnearklistens rader. Alternativt, dersom flere enn én moderelementbane kvalifiserer som mest omfattende moderelementbane og disse moderelementbanene ikke er like eller en delmengde av hverandre, kan da disse moderelementbanene bli angitt som grengrunnbaner. Alle andre moderelementbaner kan deretter bindes til en tilhørende grengrunnbane. Under bindingsprosessen kan hver grengrunnbane evalueres for å generere resultatnoder, som kan brukes til å fremskaffe verdiene for regnearklistens felter.
Foreliggende oppfinnelse avbilder nyttedata til en regnearkliste uten bruk av et skjema. Foreliggende oppfinnelse gir et resultat som i det vesentlige er det samme som et oppnådd med bruk av et skjema. I tillegg støtter foreliggende oppfinnelse bruk av nestede tabeller i en regnearkliste. Følgelig fjerner foreliggende oppfinnelse avhengigheten av et skjema for å avbilde nyttedata til en regnearkliste, og reduserer derfor sannsynligheten forfeil i forbindelse med avbildning av data. I tillegg vil det å fjerne en slik avhengighet (f.eks. av kapasitetskrevende avbildning av data) frigjøre verdifulle ressurser i datamaskinens prosesseringsenhet til viktigere oppgaver.
Andre trekk og fordeler ved foreliggende oppfinnelse vil tydeliggjøres av den følgende beskrivelsen, når den leses sammen med de vedlagte figurene.
Spesielt fordelaktige trekk ved oppfinnelsen fremkommer av de selvstendige patentkravene, fordelaktige utførelser fremkommer fra de uselvstendige kravene.
Kort beskrivelse av tegningene
Figur 1 er et blokkdiagram som illustrerer et system for avbildning av regnearkdata ifølge et eksempel på utførelse av foreliggende oppfinnelse. Figur 2 er et blokkdiagram som illustrerer et databehandlingsmiljø og datasystemer i dette som foreliggende oppfinnelse kan anvende i et utførelseseksempel. Figur 3 er en pseudokoderepresentasjon av regnearkdata omfattende en regnearkliste ifølge et eksempel på utførelse av foreliggende oppfinnelse. Figur 4 er en pseudokoderepresentasjon av nyttedata ifølge et eksempel på utførelse av foreliggende oppfinnelse. Figur 5 er et blokkdiagram som illustrerer nyttedata i henhold til et eksempel på utførelse av foreliggende oppfinnelse. Figur 6 er et blokkdiagram som illustrerer en avbildet regnearkliste i henhold til et eksempel på utførelse av foreliggende oppfinnelse. Figurene 7A-7C er et flytdiagram som illustrerer en fremgangsmåte for å avbilde nyttedata til en regnearkliste ifølge et eksempel på utførelse av foreliggende oppfinnelse.
Detaljert beskrivelse av oppfinnelsen
Det henvises nå til figurene, der like referansenummer representerer like komponenter eller trinn. Figur 1 er et blokkdiagram som illustrerer et system 100 for avbildning av regnearkdata ifølge et eksempel på utførelse av foreliggende oppfinnelse. Systemet 100 kan omfatte en kommunikasjonsanordning 103 som omfatter, men ikke er begrenset til, en regnearklagringsenhet 109, en nyttedatalagringsenhet 105 og en avbildningsenhet 106. Kommunikasjonsanordningen 103 kan omfatte maskinvare- og programvarekomponenter tilsvarende de i velkjente datasystemer, -miljøer og/eller -anordninger, som beskrevet mer i detalj nedenfor i forbindelse med figur 2.
Regnearklagringsenheten 109 har kommunikasjonsforbindelse med avbildningsenheten 106. Regnearklagringsenheten 109 lagrer regnearkdata inklusive regnearklister så som, men ikke begrenset til, XML-lister 112, som beskrevet mer i detalj nedenfor i forbindelse med figur 3. Regnearklagringsenheten 109 omfatteren lagringsanordning med mulighet til lagring og fremhenting av data som kan omfatte, men ikke er begrenset til, direkteminne (RAM), flashminne, magnetiske lagringsanordninger, optiske lagringsanordninger, harddiskstasjoner, flyttbare volatile eller ikke-volatile lagringsanordninger, optiske lagringsmedier, magnetiske lagringsmedier eller RAM-minnekort. Alternativt kan regnearklagringsenheten 109 omfatte en fjernlokalisert lagringsanordning som kan aksesseres via et kablet og/eller trådløst nettverkssystem. I tillegg kan regnearklagringsenheten 109 omfatte et lagringssystem som omfatter et flertrinnssystem av primære og sekundære lagringsanordninger, som beskrevet ovenfor. Den primære lagringsanordningen og den sekundære lagringsanordningen kan fungere som hurtigbufre for hverandre, eller den sekundære lagringsanordningen kan tjene som oppbakking for den primære lagringsanordningen. I nok en annen arkitektur kan regnearklagringsenheten 109 omfatte en lagringsanordning i form av en enkel databasefil eller i form av en søkbar relasjonsdatabase som anvender et spørrespråk, så som SQL.
Nyttedatalagringsenheten 115 har kommunikasjonsforbindelse med avbildningsenheten 106. Nyttedatalagringsenheten 115 lagrer nyttedata, der nyttedataene kan være avbildet til en motsvarende XML-liste 112 av regnearkdataene. Nyttedata er beskrevet mer i detalj nedenfor i forbindelse med figur 4. Nyttedatalagringsenheten 115 omfatter en lagringsanordning som er tilsvarende lagringsanordningene beskrevet ovenfor i forbindelse med regnearklagringsenheten 109.
Avbildningsenheten 106 har kommunikasjonsforbindelse med regnearklagringsenheten 109 og nyttedatalagringsenheten 115. Avbildningsenheten 106 omfatter maskinvare og programvare (se figur 2) nødvendig for å utføre oppgaver og tilveiebringe trekk og funksjonalitet som beskrevet her. Avbildningsenheten 106 kan være innrettet for avbilde nyttedata lagret på nyttedatalagringsenheten 115 til XML-lister 112 lagret på regnearklagringsenheten 109.
I drift mottar avbildningsenheten 106 regnearkdata fra regnearklagringsenheten 109 og mottar nyttedata fra nyttedatalagringsenheten 115. Regnearkdataene kan omfatte XML-lister 112 som kan være definert ved en gruppe av felter (også referert til her som "kolonner"). Et felt kan typisk være beregnet eller avbildet. Beregnede felter kan være definert ved en formel eller konstant verdi, mens avbildede felter kan være definert ved en "bane" eller "peker" til nyttedata. Avbildningsenheten 106 kan bruke banene til feltene til å generere en liste av noder (noen ganger referert til som "bindingsnoder") basert på nyttedataene, hvoretter avbildningsenheten 106 kan avbilde hver node til en rad i en XML-liste 112. Avbildningsenheten 106 kan oppnå verdier fra nyttedataene for alle feltene i XML-listen 112 ved å følge en bane fra nodene til de ønskede feltene.
I en alternativ utførelsesform av foreliggende oppfinnelse omfatter kommunikasjonsanordningen 103 videre et brukergrensesnitt 118 som kan være innrettet for å vise data for en bruker og motta brukerinnmating. Brukergrensesnittet 118 har kommunikasjonsforbindelse med avbildningsenheten 106. Avbildningsenheten 106 kan sende avbildede XML-lister 112 til brukergrensesnittet 118, som kan vise de avbildede XML-listene 112 for brukeren på en fremvisningsanordning (ikke vist). Fagmannen vil forstå at brukergrensesnittet 118 kan være i en rekke forskjellige former og formater og kan variere fra en enkel til en mer kompleks utførelse. I et eksempel på utførelse av foreliggende oppfinnelse kan brukergrensesnittet 118 omfatte et tastatur, en fremvisningsanordning, en berøringsskjerm eller en annen hensiktsmessig anordning, og kan også omfatte programmoduler eller maskininstruksjoner som utfører de forbestemte oppgavene, som kan bli eksekvert av en prosesseringsenhet 212.
I tillegg kan kommunikasjonsanordningen 103 omfatte et nettverksgrensesnitt 121 for å lette kommunikasjon fra
kommunikasjonsanordningen 103 til et nettverk 124. Nettverksgrensesnittet 121 står i kommunikasjon med avbildningsenheten 106 og et nettverk 124. Avbildningsenheten 106 kan sende avbildede XML-lister 112 til nettverksgrensesnittet 121, som kan sende de avbildede XML-listene 112 til en annen kommunikasjonsanordning i nettverket 124. Nettverksgrensesnittet 121 kan typisk være en maskinvareanordning, så som et nettverkskort eller et utvidelseskort i kommunikasjonsanordningen 103, som letter kommunikasjon mellom kommunikasjonsanordningen 103 og nettverket 124. Selv om det ikke er vist i figur 1, kan nettverksgrensesnittet 121 omfatte en radiosender og -mottaker som muliggjør trådløs kommunikasjon mellom kommunikasjonsanordningen 103 og et aksesspunkt (ikke vist) i nettverket 124.
Fagmannen vil vite at et nettverk 124 typisk omfatter infrastruktur og mekanismer som er egnet til å sammenkople en gruppe av to eller flere kommunikasjonsanordninger 103 (omfattende, uten begrensning, et antall tjener-eller klientanordninger). Et slikt nettverk 124, kommunikasjonsanordninger 103 og tjenere kan være anordnet i forskjellige nettverkstopologier, omfattende, men ikke begrenset til, stjerne-, buss- eller ringnettverk. Videre kan et nettverk 124, kommunikasjonsanordninger 103 og tjenere generelt kategoriseres som tilhørende en gitt arkitektur, omfattende, men ikke begrenset til "peer-to-peer"- eller klient/tjener-arkitekturer. Nettverket 124 kan i tillegg klassifiseres ved den geografiske plasseringen av kommunikasjonsanordningene 103 eller tjenerne og deres type. For eksempel kalles et nettverk 124 som kopler sammen et antall datasystemer eller tjenere som befinner seg i nærheten av hverandre, for eksempel innenfor en bygning, et lokalt nettverk (LAN); dersom datamaskinsystemene befinner seg lengre fra hverandre, kalles nettverket 124 generelt for et regionalt nettverk (WAN), så som Internett; dersom datamaskinsystemene befinner seg innenfor et begrenset geografisk område, for eksempel et universitetsområde eller en militærforlegning, kalles nettverket 124 for et CAN (Campus-Area Network); dersom datamaskinsystemene er koplet sammen innenfor en by eller storby, kalles nettverket 124 for et MAN (Metropolitan-Area Network); og dersom datamaskinsystemene er koplet sammen innenfor en husstand, kalles nettverket 124 for et HAN (Home-Area Network).
Fagmannen vil vite at en kommunikasjonsforbindelse kan omfatte en hvilken som helst egnet type forbindelse for toveis kommunikasjon av signaler og/eller medier, omfattende, men ikke begrenset til analoge, digitale, kablede og trådløse kommunikasjonskanaler. Slike kommunikasjonskanaler kan anvende, men er ikke begrenset til, kobberledningbaserte, fiberoptiske, radiofrekvens-baserte, infrarødtbaserte, satellittbaserte eller andre innretninger og medier.
Selv om flere utførelsesformer av foreliggende oppfinnelse refererer til XML-regnearkdata, XML-lister og XML-formaterte nyttedata, vil fagmannen forstå at andre typer dataformater kan anvendes innenfor oppfinnelsens ramme, og foreliggende oppfinnelse er derfor ikke begrenset til data formatert i XML.
Figur 2 er et blokkdiagram som illustrerer et databehandlingsmiljø 200 og datasystemer 210, 280 i dette som foreliggende oppfinnelse kan anvende i et utførelseseksempel. Databehandlingsmiljøet 200 og datasystemene 210, 280 i dette er bare ett eksempel på passende databehandlingsmiljø og datasystemer for praktisering av foreliggende oppfinnelse, og er ikke ment å antyde noen som helst begrensning hva angår omfanget av oppfinnelsens bruksområde eller funksjonalitet. Heller ikke skal datasystemene 210, 280 forstås å ha noen som helst avhengighet av eller krav vedrørende noen enkelt komponent eller kombinasjon av komponenter som er illustrert i det eksemplifiserte databehandlingsmiljøet 200.
Følgelig skal det være underforstått at foreliggende oppfinnelse kan anvendes med en rekke forskjellige andre generelle eller spesialiserte datasystemer, -miljøer eller -anordninger. Eksempler på velkjente kommunikasjonsanordninger 103 samt datasystemer, -miljøer og/eller-anordninger som kan være egnet eller passende til bruk med foreliggende oppfinnelse omfatter, men er ikke begrenset til, personlige datamaskiner, tjener-datamaskiner, håndholdte anordninger eller laptopanordninger, flerprosessorsystemer, mikroprosessorbaserte systemer, "set top"-bokser, programmerbar forbrukerelektronikk, personlige datamaskiner i nettverk, minidatamaskiner, stormaskiner, distribuerte databehandlingsmiljøer som omfatter hvilke som helst av de ovennevnte systemer eller anordninger, og liknende.
Foreliggende oppfinnelse kan også beskrives i den generelle sammenhengen datamaskineksekverbare instruksjoner, så som programmoduler, som eksekveres av et datasystem. Generelt omfatter programmoduler rutiner, programmer, programmering, objekter, komponenter, data og/eller datastrukturer som utfører konkrete oppgaver eller implementerer spesifikke abstrakte datatyper. Foreliggende oppfinnelse kan praktiseres i distribuerte databehandlingsmiljøer der oppgaver blir utført av fjerne prosesseringsanordninger som er forbundet gjennom et kommunikasjonsnettverk. I et distribuert databehandlingsmiljø kan progammoduler befinne seg i både lokale og fjerne datalagringsmedier, for eksempel, uten begrensning, i minnelagringsanordninger.
Med henvisning til figur 2 omfatter et eksempel på databehandlingsmiljø 200 ifølge foreliggende oppfinnelse en generell databehandlingsanordning i form av et datasystem 210. Komponenter i datasystemet 210 kan omfatte, men er ikke begrenset til, en prosesseringsenhet 220, et systemminne 230 og en systembuss 221 som kopler forskjellige systemkomponenter inklusive systemminnet 230 til prosesseringsenheten 220 for toveis kommunikasjon av data og/eller instruksjoner. Systembussen 221 kan være en hvilken som helst av flere typer busstrukturer, inklusive en minnebuss eller minnekontroller, en ekstern buss og en lokal buss, som anvender en hvilken som helst av en rekke mulige bussarkitekturer. Som eksempler, og uten begrensning, omfatter slike arkitekturer en ISA-(lndustry Standard Architecture)-buss, en MCA-(Micro Channel Architecture)-buss, en EISA-(Enhanced ISA)-buss, en lokal VESA-(Video Electronics Standards Association)-buss og en PCI-(Peripheral Component lnterconnect)-buss (også kjent som en Mezzanine-buss).
Datasystemet 210 omfatter typisk en rekke forskjellige datamaskinlesbare medier. Et datamaskinlesbart medium kan omfatte et hvilket som helst tilgjengelig medium som kan aksesseres, leses fra eller skrives til av datasystemet 210, og kan omfatte både volatile og ikke-volatile samt flyttbare og stasjonære medier. Som eksempler, og uten begrensning, kan datamaskinlesbare medier omfatte datalagringsmedier og kommunikasjonsmedier. Datalagringsmedier omfatter både volatile og ikke-volatile samt flyttbare og stasjonære medier som er realisert med en hvilken som helst metode eller teknologi for lagring av informasjon, for eksempel datamaskinlesbare instruksjoner, data, datastrukturer, programmoduler, programmer, programmering eller programrutiner. Datalagringsmedier omfatter, men er ikke begrenset til, RAM, ROM, EEPROM, flashminne eller annen minneteknologi, CD-ROM, DVD (Digital Versatile Disk) eller andre optiske platelagre, magnetkassetter, magnetbånd, kombinerte magnetiske og optiske lagringsanordninger, magnetplatelagre eller andre magnetiske lagringsanordninger, eller et hvilket som helst annet medium som kan anvendes for å lagre den ønskede informasjonen og som kan aksesseres av datasystemet 210. Kommunikasjonsmedier innlemmer typisk datamaskinlesbare instruksjoner, data, datastrukturer, programmoduler, programmer, programmering eller programrutiner i et modulert datasignal, så som en bærebølge eller en annen transportmekanisme, og omfatter ethvert informasjonsleveringsmedium. Med et "modulert datasignal" menes et signal som får én eller flere av sine karakteristika satt eller endret for å innkode informasjon i signalet. Som et eksempel, og ikke en begrensning, omfatter kommunikasjonsmedier kabelbaserte medier så som et kabelnettverk eller en direktekoplet forbindelse, og trådløse medier så som akustiske, RF-baserte, infrarødtbaserte og andre trådløse medier. Enhver kombinasjon av det ovennevnte er også omfattet innenfor rammen av datamaskinlesbare medier.
Systemminnet 230 omfatter datalagringsmedier i form av volatilt og/eller ikke-volatilt minne så som leseminne (ROM) 231 og direkteminne (RAM) 232. Et BIOS (Basic Input/Output System) 233, som inneholder de grunnleggende rutinene som styrer overføring av informasjon mellom elementer i datamaskinen 210, for eksempel under oppstart, er typisk lagret i ROM 231. RAM 232 lagrer typisk data og/eller programinstruksjoner som er umiddelbart tilgjengelige for og/eller som opereres på av prosesseringsenheten 220. Som et eksempel, og ikke en begrensning, illustrerer fig ur 2 et operativsystem 234, applikasjonsprogrammer 235, andre programmoduler 236 og programdata 237, som til tider helt eller delvis kan være inneholdt i RAM 232.
Datamaskinen 210 kan også omfatte andre flyttbare/stasjonære, volatile/ikke-volatile datalagringsmedier. Kun som et eksempel illustrerer figur 2 en harddiskstasjon 241 som leser fra eller skriver til ikke-flyttbare, ikke-volatile magnetiske medier, en magnetdiskstasjon 251 som leser fra eller skriver til en flyttbar, ikke-volatil magnetisk disk 252 og en optisk-disk stasjon 255 som leser fra eller skriver til en flyttbar, ikke-volatil optisk disk 256, så som et CD-ROM eller et annet optisk medium. Andre typer flyttbare/stasjonære, volatile/ikke-volatile datalagringsmedier som kan være tilveiebrakt i det eksemplifiserte databehandlingsmiljøet 200 omfatter, men er ikke begrenset til, magnetbåndkassetter, flashminnekort, DVD-plater, digitale bildebånd, "solid state" RAM, "solid state" ROM og liknende. Harddiskstasjonen 241 er typisk koplet til systembussen 221 via et grensesnitt for ikke-flyttbart minne, så som grensesnittet 240, og magnetdiskstasjonen 251 og optisk-disk stasjonen 255 er typisk koplet til systembussen 221 via et grensesnitt for flyttbart minne, så som grensesnittet 250.
Stasjonene 241, 251, 255 og deres tilknyttede datalagringsmedier beskrevet over besørger lagring av datamaskinlesbare instruksjoner, data, datastrukturer, programmoduler, programmer, programmering eller programrutiner for datasystemet 210.1 figur 2 er for eksempel harddiskstasjonen 241 vist som lagrende et operativsystem 244, applikasjonsprogrammer 245, andre programmoduler 246 og programdata 247. Merk at disse komponentene enten kan være de samme som eller forskjellige fra operativsystem 234, applikasjonsprogrammer 235, andre programmoduler 236 og programdata 237. Operativsystem 244, applikasjonsprogrammer 245, andre programmoduler 246 og programdata 247 er gitt forskjellige referansenummer her for å illustrere det at de i det minste er selvstendige kopier av operativsystem 234, applikasjonsprogrammer 235, andre programmoduler 236 og programdata 237. En bruker kan mate inn kommandoer og informasjon til datasystemet 210 via tilkoplede innmatingsanordninger så som et tastatur 262 og en pekeranordning 261, vanligvis omfattende en mus, en styreball eller en berøringsmatte. Andre tilkoplede innmatingsanordninger (ikke vist) kan omfatte en mikrofon, en styrespak, en spillkontroll, en parabolantenne, en skanner eller liknende. Disse og andre innmatingsanordninger er ofte koplet til prosesseringsenheten 220 via et brukerinnmatingsgrensesnitt 260 som er koplet til systembussen 221, men kan også være tilkoplet via andre grensesnittsstrukturer eller busstrukturer, så som en parallellport, en spillutgang eller en universell seriell buss (USB-port). En monitor 291 eller en annen type fremvisningsanordning er også koplet til systembussen 221 via et grensesnitt, så som et skjermgrensesnitt 290. I tillegg til monitoren kan datasystemet 210 også omfatte andre eksterne utmatingsanordninger så som høyttalere 297 og en skriver 296, som kan være tilkoplet via et grensesnitt 295 for utmating til eksterne enheter.
Datasystemet 210 kan kjøre i et nettverksmiljø som anvender toveis kommunikasjonsforbindelser til ett eller flere fjerne datasystemer, så som et fjernlokalisert datasystem 280. Det fjernlokaliserte datasystemet 280 kan være en personlig datamaskin, en bærbar datamaskin, en tjenermaskin, en ruter, en nettverks-PC, en peer-anordning eller en annen vanlig nettverksnode, og omfatter typisk mange av eller alle de komponentene som er beskrevet ovenfor i forbindelse med datasystemet 210, selv om kun en minnelagringsanordning 281 i det fjernlokaliserte datasystemet 280 er illustrert i figur 2. De toveis kommunikasjonsforbindelsene illustrert i figur 2 omfatter et lokalt nettverk (LAN) 271 og et regionalt nettverk (WAN) 273, men vil også kunne omfatte andre typer nettverk. Slike nettverksmiljøer er vanlige i kontorer, bedriftsomspennende datanettverk, intranett og Internett.
Når det står i kommunikasjonsforbindelse med et LAN 271, er datasystemet 210 koplet til LAN 271 via et nettverksgrensesnitt eller -kort 270. Når det står i kommunikasjonsforbindelse med WAN 273, omfatter datasystemet 210 typisk et modem 272 eller andre anordninger for å etablere en kommunikasjonsforbindelse over WAN 273, for eksempel Internett. Modemet 272, som kan være internt eller eksternt, kan være koplet til systembussen 221 via brukerinnmatingsgrensesnittet 260 eller en annen egnet mekanisme. I et nettverksmiljø kan programmoduler som er vist i datasystemet 210, eller deler av disse, være lagret i den fjerne minnelagringsanordningen 281. Som et eksempel, og ikke en begrensning, illustrerer figur 2 fjerne applikasjonsprogrammer 285 som lagret i lagringsanordningen 281. En vil forstå at de viste nettverksforbindelsene kun er eksempler, og at andre mekanismer for å etablere en toveis
kommunikasjonsforbindelse mellom datamaskinene kan anvendes.
Figur 3 viser en pseudokoderepresentasjon 300 av regnearkdata som omfatteren regnearkliste 112 ifølge et eksempel på utførelse av foreliggende oppfinnelse. Som beskrevet over omfatter regnearklagringsenheten 109 regnearklister 112 som kan bli fylt med nyttedata av avbildningsenheten 106.1 et eksempel på utførelse av foreliggende oppfinnelse er regnearklistene 112 formatert i XML-kode, og blir derfor heretter referert til som XML-lister 112.
XML støtter tilpassbare etiketter som muliggjør definisjon, validering, overføring og tolkning av data på tvers av systemer. Fagmannen vil vite at XML er avledet fra SGML (Standard Generalized Markup Language) og tilveiebringer et allment akseptert kodeformat for strukturering av data. Generelt er XML-etiketter kommandoer som anvendes innenfor et dokument eller kode og angir hvordan den aktuelle delen av et dokument eller koden skal formateres eller tolkes. XML-etiketter opptrer typisk parvis og omfatter en innledningsetikett og en avslutningsetikett. Innledningsetiketten dannes ofte av et etikettnavn mellom symbolene mindre enn ("<") og større enn (">"). Avslutningsetiketten er vanligvis identisk med innledningsetiketten, bortsett fra at det etter mindre enn-symbolet ("<") er en skråstrek ("/"). Som et eksempel, og ikke en begrensning, blir "range"-elementet 306 innledet med en "<range>"-etikettog avsluttet med en "</range>"-etikett. All tekst eller kode mellom den innledende "<range>"-etiketten og den avsluttende "</range>"-etiketten kan tolkes som del av "range"-elementet 306.
Mer spesifikt viser figur 3 en del av et XML-regneark som beskriver en regnearkarbeidsbok, inklusive XML-listen 112 inneholdt i denne. Elementet "entry" 303 (f.eks. <entry x2:id="list1">...</entry>) representerer én enkelt XML-liste 112 innenfor regnearkdataene. XML-listen 112 kan være definert av en gruppe av kolonner referert til som felter, som kan være representert i XML-listen 112 av feltelementene ("field") 312A-312F (f.eks. <field>...</field>). Feltelementene 312A-312F representerer derfor de resulterende kolonnene etter avbildning av nyttedata til XML-listen 112 av avbildningsenheten 106.
Et felt kan være beregnet eller avbildet. Et beregnet felt kan være definert av enten en formel eller en konstant verdi. Et avbildet felt kan være definert av en bane til nyttedataene. Som vist i figur 3 kan en bane til et feltelement være representert i XML-listen 112 av et "xpath"-element 309B-309G (f.eks.
<xpath>...</xpath>). Elementet "entry" 303 kan også ha en bane (noen ganger f.eks. referert til som "rotbanen") og kan også være representert ved et "xpath"-element 309A. Banene til feltelementene (xpath 309B-309G) er relativt banen til entry-elementet, og den komplette banen til et feltelement krever derfor sammenkjedning av banen til entry-elementet og banen til feltelementet. Som et eksempel, og uten begrensning, erfeltbanen representert ved xpath-elementet 309C i field-elementet 312B lik "DEPARTMENTID". Den fullstendige banen til feltet representert ved field-elementet 312B krever imidlertid sammenkjeding av banen representert ved xpath-elementet 309A med banen representert ved xpath-elementet 309C, hvilket gir en fullstendig bane lik
"/CORP/DE PARTM ENT/DE PARTM ENTID".
Et felt kan også være assosiert med en gitt data- eller definisjonstype så som, men uten begrensning til, en streng, en variabel eller et heltall. Et felts data-eller definisjonstype kan være representert, som illustrert i figur 3, ved et xsdtype-element 315A-315F. I eksempelet over er data- eller definisjonstypen representert ved xsdtype 315B i feltet representert ved field-elementet 312B lik "STRING".
Fagmannen vil forstå at en XML-liste 112 kan være strukturert på mange mulige måter, og kan omfatte en rekke forskjellige felter og baner. Følgelig er regnearkdataene illustrert i figur 3 kun for illustrasjonsformål og begrenser ikke oppfinnelsens ramme.
Figur 4 viser en pseudokoderepresentasjon 400 av nyttedata i henhold til et eksempel på utførelse av foreliggende oppfinnelse. Som beskrevet over omfatter nyttedatalagringsenheten 115 nyttedata som kan være avbildet til en XML-liste 112 i regnearkdataene. I et eksempel på utførelse av foreliggende oppfinnelse er nyttedataene formatert i XML-kode. Nyttedata svarer i alminnelighet til feltene definert eller beskrevet i XML-listen 112. Følgelig kan banene definert i en XML-liste 112 svare til XML-etiketter i nyttedataene.
Som et eksempel, og ikke en begrensning, korresponderer nyttedataene
illustrert i figur 4 med XML-listen definert i figur 3. Mer spesifikt svarer nyttedataelementene 403, 406, 409, 410, 412, 415 vist i figur 4 til de komplette feltbanene vist i figur 3. Tabell 1 viser korrelasjonen mellom de komplette feltbanene i figur 3 og nyttedataelementene i figur 4.
Som kan sees i tabell 1 svarer "department name"-elementene 403A, 403B til den komplette feltbanen 7CORP/DEPARTMENT/@NAME", mens "departmentid"-elementene 406A, 406B svarer til den komplette feltbanen 7CORP/DE PARTM ENT/DE PARTM E NTID", "person name"-elementene 412A-412F svarer til de komplette feltbanene
7CORP/DEPARTMENT/MANAGERS/PERSON/@NAME" og
7CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME" og "personid"-elementene 415A-415F svarer til de komplette feltbanene
7CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID" og
"CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID". I et eksempel på utførelse av foreliggende oppfinnelse angir symbolene 7@" i en bane til et felt at feltet er en attributt, mens symbolet 7" i en feltbane angir at feltet er et element. Følgelig er "NAME" en attributt i "DEPARTMENT", som angitt av banen 7CORP/DEPARTMENT/@NAME", mens "DEPARTMENTID" er et element i "DEPARTMENT", som angitt av banen
7CORP/DE PARTM ENT/DE PARTM E NTI D".
Fagmannen vil vite nyttedataenes format kan avhenge av eller overensstemme med strukturen til XML-listene 112. Følgelig er nyttedataene illustrert i figur 4 kun for illustrasjonsformål, og begrenser ikke oppfinnelsens ramme.
Figur 5 er et blokkdiagram som illustrerer nyttedata i henhold til et eksempel på utførelse av foreliggende oppfinnelse. Nyttedataene vist i figur 5 er tilsvarende nyttedataene beskrevet over i forbindelse med figur 4, bortsett fra at de ikke omfatter XML-etiketter. Mer spesifikt illustrerer figur 5 den hierarkiske strukturen til feltbanene i regnearkdataene (se figur 3) og nyttedataene forbundet med disse.
I et eksempel på utførelse av foreliggende oppfinnelse kan avbildningsenheten 106 bestemme "moderelementbanen" til hver feltbane i en XML-liste 112 (beskrevet mer detaljert nedenfor i forbindelse med figur 7). En bane til moderelementet til et gitt felt kan bestemmes ved å følge feltbanen ett steg bakover. Med andre ord er moderelementbanen ett trinn høyere opp i hierarkiet enn feltbanen. Som et eksempel, og ikke en begrensning, kan feltbanen
7CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID/" ha en
moderelementbane 7CORP/DEPARTMENT/MANAGERS/PERSON". Videre kan det beregnes en moderelementbane for både attributt- og elementfelter. En
attributtfeltbane 7a/b/@c" og en elementfeltbane 7a/b/c" kan ha samme moderelementbane, 7a/b". Figur 5 illustrerer også hvordan man kan følge en feltbane til de tilhørende nyttedataene. Foreksempel og uten begrensning kan avbildningsenheten 106 følge feltbanen 7CORP/DEPARTMENT/DEPARTMENTID" og finne de tilhørende verdiene "1001" og "1002". Motsatt kan en feltbane bli bestemt ut fra nyttedata. For eksempel og uten begrensning kan nyttedataene "John" ha en tilhørende feltbane 7CORP/DEPARTMENT/MANAGERS/PERSON/@NAME". Figur 6 er et blokkdiagram som illustrerer en avbildet regnearkliste 112 i henhold til et eksempel på utførelse av foreliggende oppfinnelse. Som beskrevet over kan avbildningsenheten 106 avbilde nyttedataene til en XML-liste 112 i regnearkdataene. Selv om denne avbildningen ikke avhenger av et skjema er den resulterende avbildede regnearklisten 112 i all vesentlighet tilsvarende en "skjemaavbildet" regnearkliste.
I et eksempel på utførelse av foreliggende oppfinnelse kan avbildningsenheten 106 angi en "grunnbane" for XML-listen 112 (beskrevet mer i detalj nedenfor i forbindelse med figur 7). Grunnbanen er typisk den mest omfattende banen til de tidligere genererte moderelementbanene (beskrevet ovenfor i forbindelse med figur 5). Dersom flere enn én moderelementbane kvalifiserer som den mest omfattende banen, kan da enten den moderelementbanen som ble generert først bli utpekt som grunnbanen, eller hver av moderelementbanene som kan kvalifisere som mest omfattende bane bli angitt som en grengrunnbane (beskrevet mer i detalj nedenfor i forbindelse med figur 7).
Avbildningsenheten 106 kan bruke grunnbanen til å angi nodene, for eksempel bindingsnodene, i XML-listen 112. Typisk kan nodene bli tilordnet til en rad i den avbildede XML-listen 112. Nodene kan tjene som indeks for hver rad i XML-listen 112. Mer spesifikt kan nodene angi antall rader i den avbildede XML-listen 112.
Som et eksempel, og ikke en begrensning, er moderelementbanene til feltene illustrert i figur 3 "/CORP/DEPARTMENT" (f.eks. moderelementbanen til
7CORP/DEPARTMENT/@NAME"), "/CORP/DEPARTMENT" (f.eks.
moderelementbanen til 7CORP/DEPARTMENT/DEPARTMENTID"), 7CORP/DEPARTMENT/MANAGERS/PERSON" (f.eks. moderelementbanen til
7C0RP/DEPARTMENT/MANAGERS/PERS0N/@NAME"),
7C0RP/DEPARTMENT/MANAGERS/PERS0N" (f.eks. moderelementbanen til
7CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID"),
"CORP/DEPARTMENT/CONTRACTORS/PERSON" (f.eks. moderelementbanen
til 7CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME") og
7CORP/DEPARTMENT/CONTRACTORS/PERSON" (f.eks. moderelementbanen
til 7CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID").
Avbildningsenheten 106 kan utpeke
7CORP/DEPARTMENT/MANAGERS/PERSON" (f.eks. moderelementbanen til
7CORP/DEPARTMENT/MANAGERS/PERSON/@NAME") og
7CORP/DEPARTMENT/CONTRACTORS/PERSON" (f.eks. moderelementbanen til 7CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME") som grengrunnbaner siden de er de mest omfattende moderelementbanene og hverken er en delmengde av eller lik hverandre. For hver grengrunnbane følger avbildningsenheten 106 en grengrunnbane for å bestemme resultatnodene. Verdiene i radene 624, 627, 630, 633, 636, 639 og kolonnene 603, 606, 609, 612, 615, 618 i den avbildede XML-listen 112 kan bestemmes ved å følge hver grengrunnbane til hver aktuelle feltbane.
Figurene 7A-7C er et flytdiagram som illustrerer en fremgangsmåte 700 for å avbilde nyttedata til en regnearkliste 112 ifølge et eksempel på utførelse av foreliggende oppfinnelse. Avbildningsenheten 106 avbilder nyttedata mottatt fra nyttedatalagringsenheten 115 til en XML-liste mottatt fra regnearklagringsenheten 109 uten bruk av et skjema.
Etter start i trinn 701 går avbildningsenheten 106 til trinn 703, der den mottar regnearkdata fra regnearklagringsenheten 109. Regnearkdataene kan omfatte XML-lister 112. Deretter bestemmer i trinn 706 avbildningsenheten 106 hvorvidt det finnes XML-lister 112 som krever evaluering. Dersom avbildningsenheten 106 i trinn 706 bestemmer at det ikke finnes XML-lister 112 som krever evaluering, avslutter avbildningsenheten 106 fremgangsmåten 700 i trinn 715. Dersom imidlertid avbildningsenheten 106 i trinn 706 bestemmer at det finnes XML-lister 112 som krever evaluering, fortsetter avbildningsenheten 106 til trinn 709 der avbildningsenheten 106 bestemmer hvorvidt det finnes feltbaner i en XML-liste 112 som trenger evaluering. Dersom avbildningsenheten 106 i trinn 709 bestemmer at ingen feltbaner krever evaluering, fortsetter avbildningsenheten 106 til trinn 718, som er beskrevet nedenfor. Dersom imidlertid avbildningsenheten 106 i trinn 709 bestemmer at det finnes feltbaner som krever evaluering, fortsetter avbildningsenheten 106 til trinn 712, der avbildningsenheten 106 genererer en moderelementbane for en feltbane. Avbildningsenheten 106 går deretter til trinn 709, som er beskrevet ovenfor.
I trinn 718 bestemmer avbildningsenheten 106 hvorvidt det ble generert noen moderelementbaner fra feltbanene i XML-listen 112. Dersom avbildningsenheten 106 i trinn 718 bestemmer at ingen moderelementbaner ble generert, fortsetter avbildningsenheten 106 til trinn 706, som er beskrevet ovenfor. I motsatt fall, dersom avbildningsenheten 106 i trinn 718 bestemmer at det ble generert moderelementbaner, fortsetter avbildningsenheten til trinn 721, der den identifiserer (lager en liste over) de mest omfattende moderelementbanene som ikke er delmengder av hverandre. Dernest, i trinn 724, sjekker avbildningsenheten 106 om det finnes dupliserte baner i listen over mest omfattende moderelementbaner. Dersom avbildningsenheten 106 i trinn 724 bestemmer at det ikke finnes dupliserte baner i listen over mest omfattende moderelementbaner, fortsetter avbildningsenheten 106 til trinn 730, som er beskrevet nedenfor. Dersom imidlertid avbildningsenheten 106 i trinn 724 bestemmer at det finnes dupliserte baner i listen over mest omfattende moderelementbaner, fortsetter avbildningsenheten 106 til trinn 727, der avbildningsenheten 106 fjerner alle dupliserte baner i listen over mest omfattende moderelementbaner.
Deretter, i trinn 730, angir avbildningsenheten 106 hver av de mest omfattende moderelementbanene som grunnbaner (også referert til her som "grengrunnbaner"), der hver grunnbane representerer en egen gren. Deretter, i trinn 733, assosierer avbildningsenheten 106 hvert felt i XML-listen med én eller flere grengrunnbaner, slik at feltets moderelementbane er en delmengde av den tilhørende grengrunnbanen. Banen til et felts moderelement kan være en delmengde av flere enn én grengrunnbane. Avbildningsenheten 106 fortsetter deretter til trinn 736, der den bestemmer hvorvidt det finnes flere grengrunnbaner som krever evaluering. Dersom avbildningsenheten 106 i trinn 736 bestemmer at ingen grengrunnbaner krever evaluering, avslutter da avbildningsenheten 106 fremgangsmåten 700 i trinn 745.1 motsatt fall, dersom avbildningsenheten 106 i trinn 736 bestemmer at det fortsatt finnes en grengrunnbane som krever evaluering, fortsetter avbildningsenheten 106 til trinn 739, der den evaluerer grengrunnbanen i nyttedataene for å generere en liste over bindingsnoder. Gjennom gruppering av hver moderelementbane med én eller flere grengrunnbaner, kan verdien, om noen eksisterer, til hvert felt (kolonne) i XML-listen oppnås fra nyttedataene ved å gjennomløpe fra bindingsnoden. Dernest, i trinn 742, henter avbildningsenheten 106 verdier fra nyttedataene til alle felter (kolonner) assosiert med grengrunnbanen innenfor en rad ved å følge banen fra bindingsnoden for denne raden til hver aktuelle feltbane. Dersom et felt hører til en moderelementbane som ikke er assosiert med grengrunnbanen, forblir da dette feltet tomt. Avbildningsenheten 106 fortsetter da til trinn 736, som er beskrevet ovenfor.
Selv om foreliggende oppfinnelse er beskrevet i detalj er det underforstått at variasjoner og modifikasjoner kan gjøres innenfor oppfinnelsens ramme og idé, som beskrevet over og som definert i de etterfølgende kravene. De tilhørende strukturer, materialer, handlinger og ekvivalenter i alle "anordning-pluss-funksjon"-elementer, om noen, i kravene nedenfor er ment å omfatte hvilke som helst strukturer, materialer eller handlinger for å utføre funksjonene i kombinasjon med andre spesifikt krevde elementer.

Claims (17)

1. System for å avbilde nyttedata (400) til regnearklister, omfattende: en regnearklagringsenhet (109) innrettet for å lagre regnearkdata (112,300) som omfatter minst én regnearkliste, der den minst ene regnearkliste inkluderer i det minste en bane assosiert med en avbildet fil, en nyttedatalagringsenhet (115) innrettet for å lagre nyttedata (400), og en avbildningsenhet (106) innrettet for å motta regnearkdata fra nevnte regnearklagringsenhet, motta nyttedata fra nevnte nyttedatalagringsenhet og avbilde nevnte nyttedata til nevnte minst ene regnearkliste ved å generere minst ett sett av moderelementbaner for den minst ene bane, bestemme en mest omfattende bane av nevnte sett av moderelementbaner, å peke ut et moderelement fra nevnte sett av moderelementbaner som en grunnbane, og å generere et sett av noder fra nyttedata, der nevnte sett av noder er generert ved evaluering av nevnte grunnbane på nevnte nyttedata.
2. System ifølge krav 1, der nevnte minst ene regnearkliste omfatter, eXtensible Markup Language-formaterte, XML-formaterte, lister (112).
3. System ifølge krav 1, videre omfattende: et brukergrensesnitt (118) innrettet for å motta nevnte minst ene avbildede regnearkliste (600) fra nevnte avbildningsenhet (106) og vise nevnte minst ene avbildede regnearkliste til en bruker.
4. System ifølge krav 1, videre omfattende: et nettverksgrensesnitt (121) innrettet for å motta nevnte minst ene avbildede regnearkliste (600) fra nevnte avbildningsenhet (106) og sende nevnte minst ene avbildede regnearkliste til et nettverk (124).
5. System ifølge krav 1, der nevnte minst ene regnearkliste (600) omfatter minst én feltbane assosiert med nevnte nyttedata.
6. System ifølge krav 1, der nevnte avbildningsenhet (106) videre er innrettet for å avbilde nevnte minst ene resultatnode til en rad i en regnearkliste.
7. System ifølge krav 6, der nevnte rad omfatter flere felter, og der nevnte avbildningsenhet (106) videre er innrettet for fremskaffe verdier for nevnte flere felter ved å anvende nevnte minst ene grengrunnbane og nevnte minst ene resultatnode med nevnte nyttedata (400).
8. Fremgangsmåte for å avbilde nyttedata (400) til regnearklister, omfattende de trinn å: motta regnearkdata (112, 300) som omfatter minst én regnearkliste, der nevnte minst ene regnearkliste (600) omfatter minst én bane assosiert med et felt, motta nyttedata (400), der nevnte nyttedata er assosiert med nevnte regnearkdata, og avbilde nevnte nyttedata (400) til nevnte minst ene regnearkliste ved å . generere et sett av moderelementbaner for nevnte minst ene bane, bestemme en mest omfattende moderelementbane fra nevnte sett av moderelementbaner og å peke ut et moderelement fra nevnte sett av moderelementbaner som en grunnbane, og generere et sett av noder fra nyttedata, der nevnte sett av noder genereres ved å evaluere nevnte minst ene grengrunnbane på nevnte nyttedata.
9. Fremgangsmåte ifølge krav 8, der det trinn å avbilde nevnte nyttedata (400) til nevnte minst ene regnearkliste (600) ved å anvende nevnte minst ene bane videre omfatter de trinn å: avbilde en node fra nevnte sett av noder til en rad i nevnte minst ene regnearkliste, og fremskaffe en verdi for nevnte felt i nevnte rad ved å følge nevnte minst ene grengrunnbane til nevnte minst ene bane assosiert med nevnte felt i nevnte regnearkdata.
10. Fremgangsmåte ifølge krav 8, der det trinn å generere et sett av moderelementbaner for nevnte minst ene bane omfatter de trinn å: lage en liste over nevnte minst ene bane i nevnte regnearkdata, følge nevnte minst ene listede bane tilbake til et forutgående felt, og sette inn en bane til nevnte forutgående felt i nevnte sett av moderelementbaner.
11. Fremgangsmåte ifølge krav 8, der det trinn å angi minst én moderelementbane fra nevnte sett av moderelementbaner som minst én grengrunnbane omfatter de trinn å: bestemme minst én mest omfattende moderelementbane fra nevnte sett av moderelementbaner, og angi nevnte minst ene mest omfattende moderelementbane som minst én grengrunnbane dersom en første moderelementbane av nevnte minst ene mest omfattende moderelementbane ikke er en delmengde av en andre moderelementbane av nevnte minst ene mest omfattende moderelementbane.
12. Fremgangsmåte ifølge krav 8, videre omfattende det trinn å assosiere en tredje moderelementbane fra nevnte sett av moderelementbaner med nevnte minst ene grengrunnbane, der nevnte tredje moderelementbane er en delmengde av nevnte minst ene grengrunnbane.
13. Datamaskinlesbart medium som omfatter datamaskineksekverbare instruksjoner for å avbilde nyttedata (400) til regnearklister, der de datamaskineksekverbare instruksjonene utfører de trinn å: motta regnearkdata (112, 300) som omfatter minst én regnearkliste, der nevnte minst ene regnearkliste omfatter minst én bane assosiert med et felt, motta nyttedata (400), der nevnte nyttedata er assosiert med nevnte regnearkdata, og avbilde nevnte nyttedata til nevnte minst ene regnearkliste ved å ved å generere minst ett sett av moderelementbaner for den minst ene bane, bestemme en mest omfattende bane av nevnte sett av moderelementbaner, å peke ut et moderelement fra nevnte sett av moderelementbaner som en grunnbane, og å generere et sett av noder fra nyttedata, der nevnte sett av noder er generert ved evaluering av nevnte grunnbane på nevnte nyttedata.
14. Datamaskinlesbart medium ifølge krav 13, der det å avbilde nevnte nyttedata (400) til nevnte minst ene regnearkliste (600) ved å anvende nevnte minst ene bane videre omfatter de trinn å: avbilde en node fra nevnte sett av noder til en rad i nevnte minst ene regnearkliste, og fremskaffe en verdi for nevnte felt i nevnte rad ved å følge nevnte minst ene grengrunnbane til nevnte minst ene bane assosiert med nevnte felt i nevnte regnearkdata (112, 300).
15. Datamaskinlesbart medium ifølge krav 13, der det å generere et sett av moderelementbaner for nevnte minst ene bane omfatter de trinn å: lage en liste over nevnte minst ene bane i nevnte regnearkdata (112, 300), følge nevnte minst ene listede bane tilbake til et forutgående felt, og sette inn en bane assosiert med nevnte forutgående felt i nevnte sett av moderelementbaner.
16. Datamaskinlesbart medium ifølge krav 13, der det å angi minst én moderelementbane fra nevnte sett av moderelementbaner som minst én grengrunnbane omfatter de trinn å: bestemme minst én mest omfattende moderelementbane fra nevnte sett av moderelementbaner, og angi nevnte minst ene mest omfattende moderelementbane som minst én grengrunnbane dersom en første moderelementbane av nevnte minst ene mest omfattende moderelementbane ikke er en delmengde av en andre moderelementbane av nevnte minst ene mest omfattende moderelementbane.
17. Datamaskinlesbart medium ifølge krav 13, der de datamaskineksekverbare instruksjonene videre utfører det trinn å assosiere en tredje moderelementbane fra nevnte sett av moderelementbaner med nevnte minst ene grengrunnbane, der nevnte tredje moderelementbane er en delmengde av nevnte minst ene grengrunnbane.
NO20051482A 2004-03-22 2005-03-21 System og fremgangsmate for a avbilde data uten bruk av skjema med nestede tabeller NO333083B1 (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/805,896 US20050172217A1 (en) 2004-02-04 2004-03-22 System and method for schemaless data mapping with nested tables

Publications (3)

Publication Number Publication Date
NO20051482D0 NO20051482D0 (no) 2005-03-21
NO20051482L NO20051482L (no) 2005-09-23
NO333083B1 true NO333083B1 (no) 2013-02-25

Family

ID=34862024

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20051482A NO333083B1 (no) 2004-03-22 2005-03-21 System og fremgangsmate for a avbilde data uten bruk av skjema med nestede tabeller

Country Status (18)

Country Link
US (2) US20050172217A1 (no)
EP (1) EP1580671A3 (no)
JP (1) JP4711708B2 (no)
KR (1) KR101122841B1 (no)
CN (1) CN100435143C (no)
AU (1) AU2005200999B2 (no)
BR (1) BRPI0501150A (no)
CA (1) CA2501608A1 (no)
CO (1) CO5680122A1 (no)
IL (1) IL167313A (no)
MX (1) MXPA05003138A (no)
MY (1) MY154396A (no)
NO (1) NO333083B1 (no)
NZ (1) NZ538934A (no)
RU (1) RU2370808C2 (no)
SG (1) SG115773A1 (no)
TW (1) TWI353527B (no)
ZA (1) ZA200502315B (no)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126889B2 (en) 2002-03-28 2012-02-28 Telecommunication Systems, Inc. Location fidelity adjustment based on mobile subscriber privacy profile
US9460129B2 (en) 2013-10-01 2016-10-04 Vmware, Inc. Method for tracking a schema in a schema-less database
US20050172217A1 (en) * 2004-02-04 2005-08-04 Yiu-Ming Leung System and method for schemaless data mapping with nested tables
US6985105B1 (en) 2004-10-15 2006-01-10 Telecommunication Systems, Inc. Culled satellite ephemeris information based on limiting a span of an inverted cone for locating satellite in-range determinations
US7836104B2 (en) * 2005-06-03 2010-11-16 Sap Ag Demonstration tool for a business information enterprise system
US7825780B2 (en) 2005-10-05 2010-11-02 Telecommunication Systems, Inc. Cellular augmented vehicle alarm notification together with location services for position of an alarming vehicle
US7899450B2 (en) * 2006-03-01 2011-03-01 Telecommunication Systems, Inc. Cellular augmented radar/laser detection using local mobile network within cellular network
US9167553B2 (en) 2006-03-01 2015-10-20 Telecommunication Systems, Inc. GeoNexus proximity detector network
US9330149B2 (en) * 2007-12-18 2016-05-03 Oracle International Corporation Techniques for query and DML over relational tables using spreadsheet applications
US8001155B2 (en) * 2008-06-20 2011-08-16 Microsoft Corporation Hierarchically presenting tabular data
US20090327213A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Document index for handheld application navigation
EP2347395A4 (en) 2008-10-14 2016-11-02 Telecomm Systems Inc Location Based Approach Alert
US8892128B2 (en) 2008-10-14 2014-11-18 Telecommunication Systems, Inc. Location based geo-reminders
US8423512B2 (en) * 2009-09-08 2013-04-16 Oracle International Corporation Leveraging XML capabilities of a database to enhance handling of document data
US8365066B2 (en) * 2010-02-09 2013-01-29 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for processing markup language specified spreadsheet styles
US8359308B2 (en) * 2010-04-01 2013-01-22 Microsoft Corporation Inline data correlation and hierarchical datasets
US8315599B2 (en) 2010-07-09 2012-11-20 Telecommunication Systems, Inc. Location privacy selector
US8649806B2 (en) 2011-09-02 2014-02-11 Telecommunication Systems, Inc. Aggregate location dynometer (ALD)
US10546057B2 (en) * 2011-10-28 2020-01-28 Microsoft Technology Licensing, Llc Spreadsheet program-based data classification for source target mapping
US20130311864A1 (en) * 2012-05-16 2013-11-21 N. Nagaraj Intelligent and robust context based XML data parsing from spreadsheets
US10191955B2 (en) * 2013-03-13 2019-01-29 Microsoft Technology Licensing, Llc Detection and visualization of schema-less data
CN104978307A (zh) * 2015-06-25 2015-10-14 中铁四局集团有限公司 一种清单处理方法及装置
CN105069542A (zh) * 2015-06-25 2015-11-18 中铁四局集团有限公司 一种责任成本预算编制方法及系统
CN104881762A (zh) * 2015-06-25 2015-09-02 中铁四局集团有限公司 一种工程量清单分解方法及系统
CN116050362B (zh) * 2023-03-23 2023-07-04 青岛诺亚信息技术有限公司 一种Web表格动态数据绑定方法、介质及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ239657A (en) 1991-09-03 1995-07-26 Norman Michael Rorke Transferring data from database to spreadsheet file cells
WO2000023915A1 (en) 1998-10-16 2000-04-27 Commontown Pte Ltd A virtual space
US6920608B1 (en) * 1999-05-21 2005-07-19 E Numerate Solutions, Inc. Chart view for reusable data markup language
US6631497B1 (en) * 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6766330B1 (en) * 1999-10-19 2004-07-20 International Business Machines Corporation Universal output constructor for XML queries universal output constructor for XML queries
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US6502101B1 (en) * 2000-07-13 2002-12-31 Microsoft Corporation Converting a hierarchical data structure into a flat data structure
US6941511B1 (en) * 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US6947947B2 (en) * 2001-08-17 2005-09-20 Universal Business Matrix Llc Method for adding metadata to data
AU2002334721B2 (en) * 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US6925470B1 (en) * 2002-01-25 2005-08-02 Amphire Solutions, Inc. Method and apparatus for database mapping of XML objects into a relational database
US20030188264A1 (en) * 2002-03-29 2003-10-02 Full Degree, Inc. Method and apparatus for XML data normalization
US7457810B2 (en) * 2002-05-10 2008-11-25 International Business Machines Corporation Querying markup language data sources using a relational query processor
US7017112B2 (en) * 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US20050172217A1 (en) * 2004-02-04 2005-08-04 Yiu-Ming Leung System and method for schemaless data mapping with nested tables
US7421646B1 (en) * 2004-02-04 2008-09-02 Microsoft Corporation System and method for schemaless data mapping

Also Published As

Publication number Publication date
EP1580671A2 (en) 2005-09-28
US8584003B2 (en) 2013-11-12
RU2370808C2 (ru) 2009-10-20
CO5680122A1 (es) 2006-09-29
JP2005302008A (ja) 2005-10-27
CN100435143C (zh) 2008-11-19
CA2501608A1 (en) 2005-09-22
JP4711708B2 (ja) 2011-06-29
AU2005200999A1 (en) 2005-10-06
MXPA05003138A (es) 2005-10-05
SG115773A1 (en) 2005-10-28
ZA200502315B (en) 2006-12-27
MY154396A (en) 2015-06-15
NZ538934A (en) 2007-05-31
NO20051482D0 (no) 2005-03-21
RU2005107873A (ru) 2006-10-10
CN1677398A (zh) 2005-10-05
AU2005200999B2 (en) 2010-05-20
KR20060044561A (ko) 2006-05-16
US20070124318A1 (en) 2007-05-31
KR101122841B1 (ko) 2012-03-22
TWI353527B (en) 2011-12-01
IL167313A (en) 2014-01-30
TW200540651A (en) 2005-12-16
EP1580671A3 (en) 2006-06-28
NO20051482L (no) 2005-09-23
US20050172217A1 (en) 2005-08-04
BRPI0501150A (pt) 2005-11-01

Similar Documents

Publication Publication Date Title
NO333083B1 (no) System og fremgangsmate for a avbilde data uten bruk av skjema med nestede tabeller
US9075833B2 (en) Generating XML schema from JSON data
US7590935B2 (en) Dynamic generation of WSDL documents based on database metadata
US8613007B2 (en) Server independent deployment of plug-ins
US20060064666A1 (en) Business rules for configurable metamodels and enterprise impact analysis
CN101295311B (zh) 一种大规模发布订阅系统的语义匹配算法
US20110161373A1 (en) User Interface for Establishing Mappings from Internal Metadata to External Metadata
US20130191404A1 (en) Using views of subsets of nodes of a schema to generate data transformation jobs to transform input files in first data formats to output files in second data formats
JP2013077246A (ja) 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
Sukhobok et al. Tabular data cleaning and linked data generation with Grafterizer
Dai et al. A flexible extension of WSDL to describe non-functional attributes
CN101794223B (zh) Wade服务消息架构的设计方法
US20060242169A1 (en) Storing and indexing hierarchical data spatially
US7421646B1 (en) System and method for schemaless data mapping
US20220156240A1 (en) Hierarchical script database and database applications
CN108427664A (zh) 一种文档解析方法和装置
US8407209B2 (en) Utilizing path IDs for name and namespace searches
US20090276472A1 (en) Data processing system and method
US7801856B2 (en) Using XML for flexible replication of complex types
US9424243B1 (en) Mechanism to support composite data models in HTML form
JP6293083B2 (ja) データ処理プログラム、データ処理方法および情報処理装置
US20080126368A1 (en) Document Glossaries For Linking To Resources
CN115481346A (zh) 一种资源信息处理方法、装置、设备及存储介质
JP2005107884A (ja) インタフェース定義記述を生成する方法、およびインタフェース定義記述生成装置
Carvalho et al. xml2pm: A Tool for Automatic Creation of Object Definitions Based on XML Instances

Legal Events

Date Code Title Description
CHAD Change of the owner's name or address (par. 44 patent law, par. patentforskriften)

Owner name: MICROSOFT TECHNOLOGY LICENSING, US

MM1K Lapsed by not paying the annual fees