KR101122841B1 - 중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법 - Google Patents

중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법 Download PDF

Info

Publication number
KR101122841B1
KR101122841B1 KR1020050023677A KR20050023677A KR101122841B1 KR 101122841 B1 KR101122841 B1 KR 101122841B1 KR 1020050023677 A KR1020050023677 A KR 1020050023677A KR 20050023677 A KR20050023677 A KR 20050023677A KR 101122841 B1 KR101122841 B1 KR 101122841B1
Authority
KR
South Korea
Prior art keywords
path
spreadsheet
parent
payload data
list
Prior art date
Application number
KR1020050023677A
Other languages
English (en)
Other versions
KR20060044561A (ko
Inventor
와이우-밍 레옹
Original Assignee
마이크로소프트 코포레이션
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 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060044561A publication Critical patent/KR20060044561A/ko
Application granted granted Critical
Publication of KR101122841B1 publication Critical patent/KR101122841B1/ko

Links

Images

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

Abstract

페이로드 데이터를 스프레드시트 리스트에 매핑하는 시스템과 방법에 관한 것이다. 본 발명은 스키마의 사용 없이, 중첩된 표(nested table)의 구현을 지원하면서 페이로드 데이터를 스프레드시트 리스트에 매핑하기 위한 시스템을 포함한다. 스프레드시트 리스트를 수신한 후에, 본 발명은 상기 스프레드시트 내에서 정의된 각 필드 경로의 부모 경로를 만든다. 최장의 부모 경로는 페이로드 데이터로부터 일련의 노드를 생성하는데 사용될 수 있다. 두 개 이상의 고유한 부모 경로가 최장 부모 경로의 자격을 가지면, 그런 부모 경로들은 분기 바닥 경로(branch bottom path)로 지명될 수 있다. 모든 다른 부모 경로는 적절한 분기 바닥 경로와 연관되어 있을 수 있다. 바인딩 처리 중에, 각 분기 바닥 경로는 결과 노드를 만들기 위해 평가될 수 있는데, 상기 스프레드시트 필드의 값을 획득하기 위해 사용될 수 있다.
Mapping, Nested table, Schema

Description

중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과 방법{SYSTEM AND METHOD FOR SCHEMALESS DATA MAPPING WITH NESTED TABLES}
도 1은 본 발명의 예시적인 실시예에 따른 스프레드시트 데이터 매핑 시스템의 블록도.
도 2는 본 발명의 예시적인 실시예에 따른 본 발명이 사용할 수 있는 컴퓨팅 환경과 컴퓨터 시스템의 블록도.
도 3은 본 발명의 예시적인 실시예에 따른 스프레드시트 리스트를 포함하는 스프레드시트 데이터의 의사 코드 표현.
도 4는 본 발명의 예시적인 실시예에 따른 페이로드 데이터의 의사코드.
도 5는 본 발명의 예시적인 실시예에 따른 페이로드 데이터의 블록도.
도 6은 본 발명의 예시적인 실시예에 따른 매핑된 스프레드시트의 블록도(flow chart).
도 7A-7C는 본 발명의 예시적인 실시예에 따른 페이로드 데이터를 스프레드시트 리스트에 매핑하는 방법을 나타내는 흐름도.
< 도면의 주요 부분에 대한 부호 설명 >
103 : 통신 장치
106 : 매핑 유닛
109 : 스프레드시트 저장 유닛
112 : XML 리스트들
115 : 페이로드 데이터 저장 유닛
118 : 사용자 인터페이스
121 : 네트워크 인터페이스
124 : 네트워크
본 발명은 일반적으로, 데이터 매핑 시스템과 방법에 관련되어 있고 더 구체적으로, 스키마를 사용하지 않는 데이터 매핑 시스템과 방법에 관한 것이다.
확장성 생성 언어(extensible markup language; XML)가 애플리케이션 간에, 특히 인터넷을 통해, 데이터 이동을 위해 점점 보급됨에 따라, 인기 있는 애플리케이션들은 XML을 사용한 웹 관련 능력(예를 들어, 웹으로의 문서 출판)을 채택해 왔다. 그런 애플리케이션으로는 미국 워싱턴(Washington)주 레드모드(Redmond) 시의 Micorsoft Corporation 사의 MICROSOFT EXCEL이 있다. 전형적으로, XML 페이로드 데이터와 XML의 마크업 간의 관계는 XML 맵으로 정의되고, 맵은 스프레드시트 워크북(workbook) 정의의 일부분이다. 워크북(workbook) 내의 XML 리스트의 위치, 매핑된 열들(columns)의 개수와 각 열에 연관된 요소(element)나 속성(attribute)의 종류를 정한다. XML 스프레드시트(XMLSS) 파일은 워크북이 갖고 있는 모든 XML 리스트를 포함해, 스프레드시트 워크북을 기술한다. 미리 정해진 스키마의 요소들은 페이로드 데이터의 노드 인스턴스(node instance)를 나타내는 각 행으로, 그리드에 매핑되어 매핑된 XML 리스트를 생성한다. 일반적으로, 상기 스키마는 XML 페이로드 데이터의 모양을 정의한다.
스프레드시트 애플리케이션이 인터넷을 통해 효과적인 상호작용을 제공하기 위해, 스프레드시트 애플리케이션은 주어진 워크북이 로딩되어 있고 단일 시스템인 것처럼 네트워크를 디스플레이되는 것을 확보해야만 한다. 이 의무의 중요 부분은 페이로드를 XML 리스트로 매핑하는 것이다. 그런 매핑은 미리 정해진 스키마의 사용을 필요로 한다.
XML 페이로드 데이터를 XML 리스트에 매핑하기 위해 미리 정한 스키마에의 의존하는 것은 문제의 소지가 있다. 예를 들어, 상기 스키마가 사용할 수 없거나 훼손되었다면, 상기 데이터는 바르게 매핑될 수 없다. 또, 스키마를 페이로드 데이터와 XML 리스트에 적용하는 것은 CPU에 의한 집중적인 처리가 필요할 수 있다. 그런 프로세서에의 부담은 서버나 핸드헬드 장치와 같은 컴퓨팅 시스템은 비실용적이고 불리하다.
페이로드 데이터를 스키마를 사용하지 않고 스프레드 시트에 매핑하는 것은 중첩된 표(nested table) 매핑의 복잡함 때문에 어려울 수 있다. 중첩된 표는 복잡한 페이로드 데이터를 디스플레이하는데 자주 사용되어 표가 다중 표(예를 들어, 하위 표)를 포함할 수도 있다. 중첩된 표의 회귀적 특성은 상호연관된 페이로드 데이터의 디스플레이를 허락한다.
따라서, 페이로드 데이터를 스프레드시트에 스키마의 사용 없이 매핑하는 시스템과 방법에 대한 필요가 있다.
페이로드 데이터를 스프레드 시트 리스트에 스키마의 사용 없이 매핑하고 그 결과가 스키마를 사용한 것과 실질적으로 유사한 시스템과 방법에 대한 기술도 필요하다.
나아가, 페이로드 데이터를 스프레드시트에 스키마의 사용 없이, 중첩된 표의 구현을 지원하는 매핑하는 시스템과 방법에 대한 필요가 본 기술분야에서는 있다.
넓게 기술하면, 본 발명은 페이로드 데이터를 스프레드시트 데이터의 스프레드시트 리스트(예를 들어, XML 리스트)로의 매핑을 위한 시스템과 방법을 포함한다. 더 구체적으로, 본 발명은 스키마를 사용하지 않고 중첩된 표를 지원하면서 페이로드 데이터를 스프레드시트 리스트에 매핑하기 위한 시스템을 포함한다. 스프레드시트 리스트를 수신한 후, 본 발명은 상기 스프레드시트 내에 정의된 각 필드 경로의 부모 경로(parent path)를 만든다. 최장의 부모 경로(예를 들어, 하부 경로(bottom path))는 상기 페이로드 데이터로부터 일련의 바인드 노드들(bind nodes)을 생성하는데 사용될 수 있다. 본 발명은 각 바인드 노드를 상기 스프레드시트 리스트의 행(row)으로 매핑한다. 각 바인드 노드로부터 하부 경로와 필드 경로를 탐색해, 본 발명은 상기 스프레드시트 리스트의 행들의 다른 필드의 값을 획득할 수 있다. 또, 둘 이상의 부모 경로가 최장 부모 경로의 자격을 가지고 그런 부모 경로가 같지 않고 상호 간의 부분집합(subset)도 아니면, 그런 부모 경로들은 분기 바닥 경로(branch bottom path)로 지명될 수 있다. 모든 다른 부모 경로는 적절한 분기 바닥 경로와 연관되어 있을 수 있다. 바인딩 처리 중에, 각 분기 바닥 경로는 결과 노드(result node)를 만들기 위해 평가될 수 있는데, 결과 노드들은 상기 스프레드시트 필드의 값을 얻기 위해 사용될 수 있다.
본 발명의 장점으로 페이로드 데이터를 스프레드시트에 스키마의 사용 없이 매핑할 수 있다. 본 발명은 스키마를 사용한 것과 실질적으로 동일한 결과를 제공한다. 또, 본 발명은 스프레드시트 리스트 내에 중첩된 표의 구현을 지원한다. 따라서, 본 발명은 페이로드 데이터에서 스프레드시트 리스트로 매핑하기 위한 스키마에 대한 의존성을 없애고 데이터 매핑 실패의 잠재성을 줄인다. 또, 그런 의존성(과도한 프로세서 데이터 매핑)의 제거는 더 중요한 일을 위한 가치 있는 컴퓨터 프로세싱 자원을 자유롭게 한다.
본 발명의 다른 특징들과 장점들은 첨부한 도면과 함께 본 명세서를 읽고 이해하면 명확해 질 것이다.
도면들을 참조하면, 같은 참조번호는 여러 그림을 통틀어 같은 컴포넌트나 단계를 나타내고, 도 1은 본 발명의 예시적인 실시예에 따라 스프레드시트 데이터 매핑 시스템(100)의 블록도를 나타낸다. 스프레드 시트 데이터 매핑 시스템(100)은 스프레드시트 저장 유닛(109), 페이로드 데이터 저장 유닛(105)와 매핑 유닛(106)을 포함하는 통신 장치(103)를 포함할 수 있는데, 이에 한정되는 것은 아니다. 통 신 장치(103)는 도 2를 참조해 아래에 좀 더 자세히 기술될 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성에서 찾을 수 있는 것과 유사한 하드웨어와 소프트웨어에 의해 지원될 수 있다.
스프레드시트 저장 유닛(109)은 매핑 유닛(106)에 통신할 수 있도록 연결되어 있다. 스프레드시트 저장 유닛(109)은 한정적인 것은 아니지만, 확장성 생성 언어(XML) 리스트(112)와 같은 스프레드시트 리스트를 포함한 스프레드시트를 저장하며 도 3을 참조해 더 자세히 설명될 것이다. 스프레드시트 저장 유닛(109)은 데이터를 저장하거나 회수할 수 있는 메모리 장치를 포함하는데, 이에는 랜덤 액세스 메모리(RAM), 플래시 메모리, 자기 메모리 장치, 광학 메모리 장치, 하드 디스크 드라이브, 착탈식 휘발성이나 비착탈식 메모리 장치, 광학 기록 매체, 자기 기억 매체나 RAM 메모리 카드를 포함하는데, 이에 한정되는 것은 아니다. 또, 스프레드시트 저장 유닛(109)은 유선 및/또는 무선 네트워크 시스템으로 접속가능한 원격 저장 설비를 포함한다. 또, 스프레드시트 저장 유닛(109)은 상술한 주메모리 장치와 부메모리 장치의 다단계 시스템을 포함하는 메모리 시스템을 포함한다. 상기 주메모리 장치와 부메모리 장치는 상호 간에 캐시로 동작할 수 있거나, 부메모리 장치는 주메모리 장치의 백업용으로 공급될 수 있다. 또 다른 배열에선, 스프레드시트 저장 유닛(109)은 간단한 데이터베이스 파일이나 찾기가 가능한 SQL과 같은 쿼리 언어를 사용한 관계적 데이터베이스로 구성된 메모리 장치를 포함한다.
페이로드 데이터 저장 유닛(115)은 통신할 수 있도록 매핑 유닛(106)에 연결되었다. 페이로드 데이터 저장 유닛(115)은 페이로드 데이터를 저장하는데, 페이 로드 데이터는 상기 스프레드시트 데이터의 해당 XML 리스트(112)에 매핑될 수 있다. 페이로드 데이터는 아래의 도 4를 참조해서 좀 더 자세히 기술된다. 페이로드 데이터 저장 유닛(115)은 스프레드시트 저장 유닛(109)에 관해 상술한 메모리와 유사한 메모리 장치로 구성된다.
매핑 유닛(106)은 통신할 수 있도록 스프레드시트 저장 유닛(109)과 페이로드 데이터 저장 유닛(115)에 연결된다. 매핑 유닛(106)은 태스크를 수행하고 여기에 기술된 능력 및 기능성을 제공하기 위해 변형된 하드웨어와 소프트웨어로 구성되어 있다. 매핑 유닛(106)은 페이로드 데이터 저장 유닛(115)에 저장된 페이로드 데이터를 스프레드 저장 유닛(109)에 저장된 XML 리스트(112)에 매핑하기에 적합하게 될 수 있다.
동작 중, 매핑 유닛(106)은 스프레드시트 저장 유닛(109)에서 스프레드시트 데이터를 수신하고 페이로드 저장 유닛(115)에서는 페이로드 데이터를 수신한다. 스프레드시트 데이터는 필드(여기에선 “열”로 언급됨)들의 집합으로 일반적으로 정의되는 XML 리스트(112)를 포함할 수 있다. 전형적으로, 필드는 평가되거나 매핑될 수도 있다. 평가된 필드는 공식이나 상수에 의해 정의될 수 있는 반면에, 매핑된 필드는 페이로드 데이터에 대한“경로”나“포인터(pointer)”로 정의될 수 있다. 매핑 유닛(106)은 페이로드 데이터에서 노드의 리스트(예를 들어, 가끔 “바인드 노드들”로 언급됨)를 얻기 위해 필드 경로를 사용할 수 있고 그것에 의해 각 노드는 그 후 매핑 유닛(106)에 의해 XML 리스트(112) 안의 행으로 매핑될 수 있다. 매핑 유닛(106)은 노드로부터 원하는 필드까지의 패스를 따르는 것에 의해 XML 리스트(112) 내의 모든 필드에 대한 페이로드 데이터로부터 값을 얻을 수 있다.
본 발명의 다른 실시예에서, 통신 장치(103)는 데이터를 표시하고 사용자 입력을 수신하기 위해 변형된 사용자 인터페이스(118)를 더 포함할 수 있다. 사용자 인터페이스(118)는 통신할 수 있도록 매핑 유닛(106)에 연결된다. 매핑 유닛(106)은 매핑된 XML 리스트(112)를 사용자 인터페이스(118)에 제공할 수 있는데 사용자 인터페이스는 매핑된 XML 리스트(112)를 사용자에 디스플레이(도시 안 됨)할 수 있다. 당업자는 사용자 인터페이스(118)는 다양한 실시예와 형태로 설계될 수 있고 간단한 것에서 좀 더 복잡한 구성까지 될 수 있다. 본 발명의 예시적인 실시예에서, 사용자 인터페이스(118)는 키패드, 디스플레이, 터치 스크린 또는 다른 편리한 장치를 포함할 수 있고, 프로그램 모듈이나 미리 정해진 태스크를 수행하는 머신 명령어들을 역시 포함할 수 있는데, 명령어들은 프로세싱 유닛(220) 상에서 실행될 수 있다.
또 통신 장치(103)는 통신 장치(103)에서 네트워크(124)로의 통신을 원활히 하기 위해 네트워크 인터페이스(121)를 포함할 수 있다. 네트워크 인터페이스(121)는 통신할 수 있도록 매핑 유닛(106)과 네트워크(124)에 연결된다. 매핑 유닛(106)은 매핑된 XML 리스트(112)를 네트워크 인터페이스(121)에 제공할 수 있는데, 상기 네트워크 인터페이스는 상기 매핑된 XML 리스트(112)를 네트워크(124) 내의 다른 통신장치에 제공할 수 있다. 상기 네트워크 인터페이스(121)는 전형적으로 네트워크 인터페이스 카드나 통신 장치(103)의 확장 카드와 같은 하드웨어 장치일 수 있는데, 그것은 통신 장치(103)와 네트워크(124)의 연결성을 용이하게 한다. 도 1에서 도시되지는 않았지만, 네트워크 인터페이스(121)는 통신 장치(103)와 네트워크(124)의 액세스 포인트(도시되지 않음)간의 무선 통신을 가능하게 하는 라디오 트랜스미터와 리시버를 포함할 수 있다.
당업자는 네트워크(124)가 둘 이상의 통신 장치(103)의 집합(무제한으로 복수의 서버나 클라이언트 장치를 포함해)를 연결하기 위해 적절한 설비와 인프라구조(infrea structure)를 전형적으로 포함한다. 그런 네트워크(124), 통신 장치(103)와 서버는 다중 위상들로 구성될 수 있는데, 한정적이지 않지만, 스타(star), 버스 또는 링 구성을 포함한다. 네트워크(124), 통신 장치(103) 및 서버는 넓게 피어 투 피어 나 클라이언트/서버 아키텍처들을 포함한 특정 아키텍처로 분류될 수 있는데 이에 한정되는 것은 아니다. 또 네트워크(124)는 통신 장치(103)나 서버 및 그것의 종류의 지리학적 위치로 분류될 수 있다. 예를 들어, 빌딩 내와 같이 복수의 컴퓨터 시스템이나 서버들이 서로 가까이 위치한 네트워크(124)는 근거리망(LAN), 컴퓨터 시스템이 멀리 떨어져 있으면 인터넷과 같은 원거리통신망(WAN), 컴퓨터가 대학 내나 군사기지 내와 같이 한정된 지리학적 영역 내에 위치하면 대학구내망(CAN), 시나 마을 내의 컴퓨터 시스템이 연결되어 있으면 대도시통신망(MAN), 사용자 집 내에서 컴퓨터 시스템이 연결되어 있으면 택내통신망(HAN)이라 한다.
당업자는 통실 할 수 있는 연결이 아날로그, 디지털, 유선과 무선 통신 채널 (이에 한정하는 것은 아님)를 포함하는 신호 및/또는 매체의 양방향 통신을 위한 임의의 적절한 종류의 연결을 포함하거나 필요할 수 있다는 것을 알 수 있다. 그 런 통신 채널은 구리선, 광섬유, 라디오 주파수, 적외선 또는 다른 설비나 매체를 사용할 수 있는데, 이에 한정되는 것은 아니다.
본 발명의 여러 실시예가 여러 XML 스프레드시트 데이터, XML 리스트들과 XML 페이로드 데이터를 참조하지만, 당업자는 다른 종류의 데이터 구성들도 본 발명의 범위 내에서 사용될 수 있고, 본 발명은 XML 내에서 구성된 데이터에 한정되는 것은 아니다.
도 2는 예시적인 실시예를 따라 사용될 수 있는 컴퓨팅 환경(200)과 컴퓨터 시스템(210,280)의 블록도를 도시한다. 여기의 컴퓨팅 환경(200)과 컴퓨터 시스템(210,280)은 본 발명의 실시를 위한 적절한 컴퓨팅 환경과 컴퓨터 시스템의 한 예일 뿐이고, 본 발명의 사용이나 기능성의 범위에 관한 어떤 제한을 제시하는 것을 의도하는 것은 아니다. 컴퓨터 시스템(210, 280)은 예시적인 컴퓨팅 환경(200)에서 도시된 컴포넌트의 임의의 하나 또는 조합과 관계된 어떤 종속관계나 요구를 가지고 해석해서는 안 된다.
그래서 본 발명이 많은 다른 범용이나 특수 목적 컴퓨팅 시스템 환경이나 구성에서 동작할 수 있다. 본 발명의 사용에 적절하거나 어울릴 수 있는 적절한 잘 알려진 통신 장치(103), 컴퓨팅 시스템, 환경 및/또는 구성의 예들은 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드 컴퓨터나 랩톱 컴퓨터 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램 가능 소비자 전자장치, 네트워크 개인용 컴퓨터, 미니 컴퓨터, 메인 프레임 컴퓨터, 임의의 상기의 시스템이나 장치를 포함하는 분산 컴퓨팅 환경 등을 포함하는데, 이에 한정되는 것은 아니다.
본 발명은 프로그램 모듈과 같이, 컴퓨터 시스템에 의해 시행될 수 있는 컴퓨터 실행가능 명령어들을 포함하는 일반적인 콘텍스트로도 기술될 수 있다. 일반적으로, 프로그램 모듈은 루틴, 프로그램, 프로그래밍, 객체, 컴포넌트, 데이터 및/또는 특정 태스크를 수행하거나 특정 추상적 데이터형을 구현하는 데이터 구조를 포함한다. 본 발명은 태스크가 통신 네트워크로 연결된 원격 프로세싱 장치를 통해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경 내에서, 프로그램 모듈은 메모리 저장 장치를 포함해 제한 없이, 지역과 원격 컴퓨터 저장 매체 양쪽에 있을 수 있다.
도 2를 참조해, 본 발명의 예시적인 컴퓨팅 환경(200)은 컴퓨터 시스템(210) 형태인 범용 컴퓨팅 장치를 포함한다. 컴퓨터 시스템(210)의 컴포넌트는 프로세싱 유닛(220), 시스템 메모리(230)와 양방향 데이터 및/또는 명령 통신을 위한 시스템 메모리(230)를 포함한 다양한 시스템 컴포넌트를 상기 프로세싱 유닛(220)에 연결하는 시스템 버스(221)를 포함하는데, 이에 한정되는 것은 아니다. 시스템 버스(221)는 여러 버스 아키텍처 중 임의의 것을 사용하는 메모리 버스 또는 메모리 컨트롤러, 주변 버스와 지역 버스를 포함하는 버스 구조의 여러 종류 중 임의의 것일 수 있다. 예로서, 구조는 ISA(Industray Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standard Association) 지역 버스와 메자닌(Mezzanine) 버스라 알려진 PCI(Peripheral Component Interconnect) 버스를 포함하는데 이에 한정되는 것은 아니다.
컴퓨터 시스템(210)은 다양한 컴퓨터 판독 가능 매체를 전형적으로 포함한다. 컴퓨터 판독가능 매체는 컴퓨터 시스템(210)에 의해 접속될 수 있는 임의의 가용 매체일 수 있고 휘발형과 비휘발형, 착탈식과 비착탈식 양쪽을 포함할 수 있다. 예를 들어, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체와 통신 매체를 포함할 수 있는데 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 판독 가능 명령어, 데이터 구조, 프로그램 모듈이나 다른 데이터 같은 정보의 저장에 있어서 임의의 방법이나 기술에서 구현되는 휘발성과 비휘발성, 착탈식과 비착탈식 매체 모두를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD)이나 다른 광 디스크 저장, 자기 카세트, 자기 테이프, 자기 디스크 저장이나 다른 자기 저장 장치 또는 원하는 정보를 저장하는데 사용할 수 있고 컴퓨터(210)에 의해 접속될 수 있는 임의의 다른 매체를 포함하는데 이에 한정되는 것은 아니다. 통신 매체는 전형적으로 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 프로그램, 프로그래밍 또는 반송파나 다른 전송 메커니즘과 같은 변조된 데이터 신호 안의 루틴을 구현하고 임의 정보 전달 매체를 포함한다. “변조된 데이터 신호”라는 용어는 신호형태로 정보를 인코딩하기 위해 그런 방법으로 설정되거나 변화된 하나 이상의 자신의 특징을 가진 신호를 의미한다. 예를 들어, 통신매체는 유선 네트워크나 직접 유선 연결과 같은 유선 매체와 음파, RF, 적외선 및 다른 무선 PAN, 무선 LAN, 무선 WAN과 같은 다른 무선 매체를 포함하는데, 이에 한정되는 것은 아니다. 상기의 임의 조합도 컴퓨터 판독가능 매체의 범위 내에 포함된다.
시스템 메모리(230)는 판독 전용 메모리(read only memory; ROM)(231)와 임의 액세스 메모리(random access memory; RAM)(232)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 기본 입출력체계(basic input/output system; BIOS)(233)는 시동(start-up) 중에, 컴퓨터(210) 내의 요소들 간의 정보 전달을 돕는 기본 루틴을 포함하고 전형적으로 ROM(231)에 저장된다. RAM(232)은 전형적으로 데이터 및/또는 프로세싱 유닛(220)에 의해, 즉시 접속할 수 있고/있거나 현재 운영되어 지고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서 도 2는 운영 체제(234), 응용 프로그램(235), 다른 프로그램 모듈(236)과 가끔 전체나 부분으로 RAM(232)에 상주할 수 있는 프로그램 데이터(237)를 예시하는데 이에 한정되는 것은 아니다.
컴퓨터(210)는 다른 착탈식/비착탈식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예로서, 도 2는 비착탈식/비휘발성 자기매체에 대해 판독하거나 기록하기 위한 하드 디스크 드라이브(241), 착탈식/비휘발성 자기 디스크(252)에 대해 판독하거나 기록하기 위한 자기 디스크 드라이브(251)와 CD ROM이나 다른 광학 매체와 같은 착탈식/비휘발성 광학 디스크(256)에서 판독하거나 기록하기 위한 광학 디스크 드라이브(255)를 예시한다. 상기 예시적인 운영 환경(200)에서 사용될 수 있는 다른 착탈식/비착탈식, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프, 플래시 메모리 카드, 디지털 다기능 디스크, 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하는데, 이에 한정되는 것은 아니다. 하드 디스크 드라이브(241)는 전형적으로 인터페이스(240)와 같은 비착탈식 메모리 인터페이스 를 통해 시스템 버스(221)에 연결되고, 자기 디스크 드라이브(251)와 광학 디스크 드라이브(255)는 전형적으로 인터페이스(250)와 같은 착탈식 메모리 인터페이스에 의해 시스템 버스(221)에 연결된다.
상술한 드라이브(241, 251, 255)와 연관된 컴퓨터 저장 장치는 컴퓨터 시스템(210)에 대한 루틴, 컴퓨터 판독 가능 명령, 데이터, 데이터 구조, 프로그램 모듈이나 프로그램의 저장을 제공한다. 도 2에서, 예를 들어, 하드 디스크 드라이브(241)는 운영 체제(244), 응용 프로그램(245), 다른 프로그램 모듈(246)과 프로그램 데이터(247)를 저장하는 것으로 예시되어 있다. 이런 컴포넌트들은 운영체제(234), 응용 프로그램(235), 다른 프로그램 모듈(236)과 프로그램 데이터(237)와 동일하거나 다를 수 있다. 운영체제(244), 응용 프로그램(245), 다른 프로그램 모듈(246)과 프로그램 데이터(247)는 최소한 그것들이 다른 것임을 도시하기 위해 다른 참조번호가 주어졌다. 사용자는 명령어와 정보를 컴퓨터(210)에 키보드(262)와 보통 마우스, 조이스틱, 게임 패드라 언급되는 위치 지정 장치(261)와 같은 입력 장치들을 통해 입력한다. (예시되지는 않은) 다른 입력 장치는 마이크로 폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이러한 입력 장치 및 다른 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(260)를 통해 프로세싱 유닛(220)에 자주 연결되나, 병렬 포트, 게임 포트나 범용 직렬 버스(USB)와 같은 다른 인터페이스와 버스 구조에 대해 연결될 수 있다. 모니터(291)나 다른 종류의 디스플레이 장치도 비디오 인터페이스(290)와 같은 인터페이스를 통해 시스템 버스(221)에 연결된다. 상기 모니터에 추가해, 컴 퓨터는 다른 스피커(297)와 프린터(296)와 같은 다른 출력 장치도 포함할 수 있고, 이들은 출력 주변 인터페이스(295)를 통해 연결될 수 있다.
컴퓨터 시스템(210)은 원격 컴퓨터 시스템(280)과 같은 하나 이상의 원격 컴퓨터로의 양방향 통신 링크를 사용해 네트워크화된 환경 내에서 동작할 수 있다. 원격 컴퓨터(280)는 개인용 컴퓨터, 랩톱 컴퓨터, 서버 컴퓨터, 라우터, 네트워크 PC, 피어 장치나 다른 공통 네트워크 노드일 수 있고 원격 컴퓨터 시스템(280)의 메모리 저장 장치(281)만 도 2에 예시되어 있어도, 전형적으로 상기 컴퓨터 시스템(210)과 관련된 상술한 많은 요소들의 다수 또는 전부를 포함한다. 도 2에서 묘사된 양방향 통신 접속 링크는 근거리 통신망(local area network; LAN)(271)과 광역 통신망(wide are network; WAN)(273)을 포함하나 다른 네트워크도 포함할 수 있다. 그런 네트워킹 환경은 사무실이나 기업 광역 컴퓨터 네트워크와 인터넷에 흔한 것이다.
컴퓨터 시스템(210)은 LAN(271)에 접속하는 경우, 네트워크 인터페이스나 어댑터(270)를 통해 상기 LAN(271)에 접속된다. 컴퓨터 시스템(210)은 WAN(273)에 접속하는 경우, 전형적으로 모뎀(272)이나 인터넷과 같은 상기 WAN(273)을 통한 통신 링크를 설정하기 위한 다른 수단을 포함한다. 내장형이거나 외장형일 수 있는 모뎀(272)은 사용자 입력 인터페이스(260)이나 다른 적절한 메커니즘을 통해 시스템 버스(221)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터 시스템(210)에 관하여 묘사된 프로그램 모듈 또는 그것의 일부가 원격 메모리 저장 장치(281)에 저장될 수도 있다. 예를 들어. 도 2는 원격 응용 프로그램(285)이 메모리 장치(281)에 있는 것으로 예시하는데 이에 한정되는 것은 아니다. 도시된 네트워크 접속은 예시적이고 컴퓨터 간에 통신 링크를 설정하기 위한 다른 수단들이 사용될 수 있음을 알 수 있다.
도 3은 본 발명의 예시적인 실시예를 따라, 스프레드시트 리스트(112)를 포함한 스프레드시트 데이터의 의사 코드 표현(pseudo-code representation)(300)을 나타낸다. 상술한 것처럼, 스프레드시트 저장 유닛(109)은 매핑 유닛(106)에 의해 페이로드 데이터와 매핑되는 스프레드시트 리스트(112)를 포함한다. 본 발명의 예시적인 실시예에서, 상기 스프레드시트 리스트(112)는 XML 코드 내에서 구성되므로, 이후에는 XML 리스트(112)로 언급된다.
XML은 복수의 시스템들 간의 데이터의 정의(definition), 유효화(validation), 전송(transmission)과 해석(interpretation)을 허용하는 주문 가능 태그(customizable tag)를 제공한다. 당업자는 XML이 SGML(Standard generalized markup language)에서 파생되었고, 데이터의 구성에 관해 널리 받아들여진 코드 포맷을 제공한다는 것을 안다. 일반적으로, XML 태그는 문서나 코드의 부분이 어떻게 포맷 되고 해석되어야 하는 지를 나타내는 문서나 코드 내에서 사용되는 명령어들이다. XML 태그들은 전형적으로, 짝이 지어져 있고 시작 태그와 종료 태그를 포함한다. 시작 태그는 미만(“<”)과 초과(“>”) 기호 사이의 태그 이름으로 자주 표시된다. 종료 태그는 보통 미만 기호(“<”) 뒤에 슬래시(“/”)가 있는 것을 빼고는 시장 태그와 동일하다. 예를 들어, 범위 요소(range element)(306)가 "<range>" 태그로 시작되고 ”</range>“ 태그로 끝나는데, 이에 한정되는 것은 아니다. 시작 ”<range>" 태그와 끝 “</range>" 태그 사이의 텍스트나 코드는 범위 요소(306)의 부분으로 해석될 수 있다.
더 구체적으로, 도 3은 XML 스프레드시트(XMLSS)의 부분을 도시하는데, 이는 그 안에 포함된 XML 리스트(112)를 포함해, 스프레드시트 워크북을 기술한다. 엔트리 요소(303)(예를 들어, <entry x2:id="list1">...</entry>)는 상기 스프레드시트 데이터 내의 하나의 XML 리스트(112)를 나타낸다. XML 리스트(112)는 필드라고 참조되는 열들의 그룹으로 정의될 수 있는데, 필드는 필드 요소 312A-312F(예를 들어, <field>...</field>)에 의해 XML 리스트(112) 내에서 표현될 수 있다. 그래서, 필드 요소 312A-312F는 매핑 유닛(106)에 의해 페이로드 데이터에서 XML리스트(112)로의 매핑에서 생기는 열들을 나타낸다.
필드는 평가되거나 매핑될 수 있다. 평가된 필드는 공식이나 상수에 의해 정의될 수 있다. 매핑된 필드는 페이로드 데이터로의 경로로 정의된다. 도 3에서, 필드 경로(field path)는 XML 리스트(112)에서 xpath 요소(309B-309G)(예를 들어, <xpath>...</xpath>)로 나타낼 수 있다. 엔트리 요소(303)도 (예를 들어, 가끔 “루트 경로(root path)"로 참조 되는) 경로를 가질 수 있고 xpath 요소(309A)로 나타낼 수 있다. 필드 경로는 엔트리 경로에 대한 상대적인 xpath (309B-309G)이므로, 필드에 대한 전체 경로는 상기 엔트리 경로를 상기 필드 경로와 연결할 필요가 있다. 예를 들어, 필드 요소(312B)의 xpath 요소(309C)에 의해 나타내지는 필드 경로는 ”DEPARTMENTID" 인데 이에 한정되는 것은 아니다. 그러나 상기 필드 요소(312B)에 의해 나타내지는 전체 경로는 엔트리 요소(309A)로 나타내지는 엔트리 xpath와 xpath 요소(309C)로 나타내지는 필드 경로의 결합이 필요하고 따라서 전체 경로는 “/CORP/DEPARTMENT/DEPARTMENTID"가 된다.
필드는 특정 데이터나 이에 한정되는 것은 아니지만, 문자열, 변수나 정수와 같은 정의형과 연관될 수도 있다. 필드의 데이터나 정의형은 도 3에서 도시되듯, xsdtype 요소 315A-315F로 나타낼 수 있다. 상기 예를 사용해서, 필드 요소(312B)로 나타내지는 상기 필드의 xsdtype(315B)으로 나타내진 상기 데이터나 정의형은 “문자열(STRING)"이다.
당업자는 XML 리스트(112)는 많은 배열 내에서 구성될 수 있고, 다양한 필드와 경로를 포함할 수 있다. 따라서, 도 3에서 도시된 스프레드시트는 오직 예시적인 목적이고 본 발명의 범위를 한정하는 것은 아니다.
도 4는 본 발명의 예시적인 실시예에 따른 페이로드 데이터의 의사 코드 표현(40)을 나타낸다. 상술한 것과 같이, 페이로드 데이터 저장 유닛(115)은 상기 스프레드시트 데이터의 XML 리스트(112)로 매핑될 수 있는 페이로드 데이터를 포함한다. 본 발명의 예시적인 실시예에서, 페이로드 데이터는 XML 코드에서 구성된다. 페이로드 데이터는 일반적으로, XML 리스트(112) 내에서 정의되거나 기술된 필드에 해당한다. 따라서, XML 리스트(112) 내에서 정의된 경로는 페이로드 데이터 내의 XML 태그와 상호연관될 수 있다.
예를 들어, 도 4에서 도시된 페이로드 데이터는 도 3에 정의된 XML 리스트와 관련이 있는데, 이에 한정되는 것은 아니다. 더 구체적으로, 도 4의 페이로드 요소(403, 406, 409, 410, 412, 415)는 도 3에 도시된 전체 필드 경로에 대응된다. 표 1은 도 3의 전체 필드 경로 간의 도 4의 페이로드 요소와의 상호연관을 나타낸다.
Figure 112005015007709-pat00001
Figure 112005015007709-pat00002
표 1에서 도시되었듯이, 부서 이름 요소(403A, 403B)는 전체 필드 경로"/CORP/DEPARTMENT/@NAME"에, 부서 ID 요소(406A, 406B)는 전체 필드 경로 "/CORP/DEPARTMENT/DEPARTMENTID"에, 인명 요소(412A-412F)는 전체 필드 경로"/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME"과 "/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME"에, 인명 ID 요소(415A-415F)는 전체 필드 경로 "/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID"와 “CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID"에 해당한다. 본 발명의 예시적인 실시예에서, 반면에 필드 경로 내의 "/"기호는 상기 필드가 요소임을 나타내는 반면에, 필드 경로 내의 "/@" 기호는 상기 필드가 속성임을 나타낸다. 그래서 "/CORP/DEPARTMENT/@NAME"이 나타내듯이 "NAME"은 "DEPARTMENT"의 속성이지만 "/CORP/DEPARTMENT/DEPARTMENTID"가 나타내듯이 "DEPARTMENTID"는 ”DEPARTMENT"의 요소이다.
당업자는 상기 페이로드 데이터의 구성이 XML리스트(112)의 구성에 의존하거나 같은 모양이 되게 할 수 있음을 인지할 것이다. 따라서, 도 4에 나타난 페이로드 데이터는 예시의 목적이고 본 발명의 범위를 한정하지 않는다.
도 5는 본 발명의 예시적인 실시예에 따른 페이로드 데이터의 블록도를 도시한다. 도 5에서 도시된 페이로드 데이터는 XML 요소 태그 외에는 도 4에서 논한 페이로드 데이터와 유사하다. 더 구체적으로, 도 5는 스프레드시트 데이트(도 3 참조)와 그와 연관된 페이로드 데이터의 필드 경로의 계층적인 특성을 도시한다.
본 발명의 예시적인 실시예에서, 매핑 유닛(106)은 (도 7을 참조해 아래에서 좀 더 기술될) XML 리스트(112) 내의 각 필드 패스의 “부모(parent)”경로를 결정할 수 있다. 특정 필드 경로의 부모 경로는 경로 상에서 한 단계 뒤의 필드 경로를 따라서 결정될 수 있다. 다른 말로, 부모 경로는 필드 경로보다 계층에서 한 단계 뒤이다. 예를 들어, 필드 경로 "/CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID"는 "CORP/DEPARTMENT/MANAGERS/PERSON"을 부모 경로로 가질 수 있는데 이에 한정되는 것은 아니다. 또 속성과 요소 필드에 대해 평가될 수 있다. 그래서 속성 필드 경로 "/a/b/@c" 와 요소 필드 경로 "/a/b/c" 는 동일한 부모 경로 "/a/b"를 가질 수 있다.
도 5는 필드 경로가 해당 페이로드 데이터로 어떻게 따라갈 수 있는지 도시한다. 예를 들어, 매핑 유닛(106)은 필드 경로 "/CORP/DEPARTMENT/DEPARTMENTID"를 추적해서 “1001”과 “1002”의 해당 값을 발견할 수 있는데 이에 한정되는 것은 아니다. 역으로, 필드 경로는 페이로드 데이터에서 결정될 수 있다. 예를 들어, 페이로드 데이터 “John"은 해당 필드 경로 "/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME" 을 가질 수 있다.
도 6은 본 발명의 예시적인 실시예를 따라 매핑된 스프레드시트 리스트(112)의 블럭도를 나타낸다. 상술한 것처럼, 매핑 유닛(106)은 페이로드 데이터를 스프레드시트 데이터의 XML 리스트(112) 로 매핑할 수 있다. 그런 매핑이 스키마에 의존하지 않음에도, 최종적으로 매핑된 스프레드시트 리스트(112)는 “스키마 매핑된” 스프레드시트와 실질적으로 유사한다.
본 발명의 예시적인 실시예에서, 매핑 유닛(106)은 XML 리스트(112)에 대한 “바닥” 경로를 지정할 수 있다(도 7을 참조해 좀 더 충분히 기술됨 ). 전형적으로, 바닥 경로는 이전에 생성된 부모 경로의 최장 경로이다(도 5를 참조에 상술함). 하나 이상의 부모 경로가 최장 경로이면, 먼저 생성된 부모 경로가 바닥 경로로 지정되거나 최장 경로로 인정된 각각의 부모 경로가 분기 바닥 경로로 지정될 수 있다(도 7을 참조로 좀 더 충분히 기술됨).
매핑 유닛(106)은 바인드 노드와 같은 XML 리스트(112)의 노드를 지정하기 위해 바닥 경로를 사용할 수 있다. 전형적으로, 상기 노드들은 매핑된 XML 리스트(112) 내의 행으로 할당될 수 있다. 노드들은 XML 리스트(112)의 각 행의 지표 역할을 할 수 있다. 좀 구체적으로, 노드는 매핑된 XML 리스트(112) 내에 있는 행들의 수를 표시할 수 있다.
예를 들어, 도 3에서 도시된 필드의 부모 경로들은 "/CORP/DEPARTMENT"(예를 들어, "/CORP/DEPARTMENT/@NAME"의 부모 경로), "/CORP/DEPARTMENT" (예를 들어, "/CORP/DEPARTMENT/DEPARTMENTID“의 부모 경로), "/CORP/DEPARTMENT/MANAGERS/PERSON"(예를 들어, "/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME"의 부모 경로), "/CORP/DEPARTMENT/MANAGERS/PERSON"(예를 들어,”CORP/DEPARTMENT/MANAGERS/PERSON/PERSONID"의 부모 경로), "CORP/DEPARTMENT/CONTRACTORS/PERSON"(예를 들어, "/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME"의 부모 경로)와 "/CORP/DEPARTMENT/CONTRACTORS/PERSON"(예를 들어, “/CORP/DEPARTMENT/CONTRACTORS/PERSON/PERSONID"의 부모 경로)이다. 매핑 유닛(106)은 "/CORP/DEPARTMENT/MANAGERS/PERSON"(예를 들어, "/CORP/DEPARTMENT/MANAGERS/PERSON/@NAME"의 부모 경로)과 "CORP/DEPARTMENT/CONTRACTORS/PERSON"(예를 들어, "/CORP/DEPARTMENT/CONTRACTORS/PERSON/@NAME"의 부모 경로)를 분기 바닥 경로로 지정할 수 있는 이는 이들이 생성된 최장 부모 경로이나 서로 간에 동일하거나 부분집합이 아니기 때문이다. 각 분기 바닥 경로에 대해, 매핑 유닛(106)은 결과 노드를 정하기 위해 분기 바닥 경로를 추적한다. 매핑된 XML 리스트(112)의 행 624, 627, 630, 633, 636, 639와 열 603, 606, 609, 612, 615, 618의 값들은 각 해당 필드 경로에서 각 분기 바닥 경로를 좇아서 정해질 수 있다.
도 7A-7C는 페이로드 데이터를 스프레드시트 리스트(112)에 매핑하는 방법(700)을 나타내는 흐름도이다. 매핑 유닛(106)은 페이로드 저장 유닛(115)에서 수신한 페이로드 데이터를 스프레드시트 저장 유닛(109)으로부터 수신한 XML 리스트에 스키마의 사용 없이 매핑을 한다.
시작 단계(701) 후에, 매핑 유닛(106)은 단계(703)로 진행해서 매핑 유닛(106)이 스프레드시트 저장 유닛(109)에서 스프레드시트 데이터를 수신한다. 스프레드시트 데이터는 XML 리스트(112)를 포함할 수 있다. 다음 단계(706)에서 매핑 유닛(106)은 임의의 XML 리스트(112)가 평가될 필요가 있는지 정한다. 단계(706)에서 매핑 유닛(106)이 평가해야 하는 XML 리스트가 없다고 판단하면, 매핑 유닛(106)은 단계(715)에서 방법(700)에 따른 동작을 멈춘다. 단계(706)에서 매핑 유닛(106)이 평가해야 하는 XML 리스트가 있다고 판단하면, 매핑 유닛(106)은 매핑 유닛(106)이 XML 리스트(112) 내의 임의 필드 경로가 평가될 필요가 있는지 판단하는 단계(709)로 진행한다. 단계(709)에서 만약 매핑 유닛(106)이 평가해야 하는 필드 경로가 없다고 판단하면, 매핑 유닛(106)은 아래에서 기술할 단계(718)로 진행한다. 그러나 단계(709)에서 매핑 유닛(106)이 평가해야 하는 필드 경로가 있다고 판단하면, 매핑 유닛(106)은 매핑 유닛(106)이 필드 경로에 대한 부모 경로를 생성하는 단계(712)로 진행한다. 매핑 유닛(106)은 그 후, 상술한 단계(709)로 진행한다.
단계(718)에서 매핑 유닛(106)은 임의의 부모 경로가 XML리스트(112)의 필드 경로로부터 생성되었는지 여부를 판단한다. 단계(718)에서 만약 매핑 유닛(106)이 부모 경로가 생성되지 않았다고 판단하면, 매핑 유닛(106)은 상술한 단계(706)로 진행한다. 그렇지 않으면, 단계(718)에서 만약 매핑 유닛(106)이 부모 경로가 생성되었다고 판단하면, 매핑 유닛(106)은 매핑 유닛(106)이 상호 간에 부분집합이 아닌 최장 부모 경로를 지정하는(리스트를 만드는) 단계(721)로 진행한다. 다음, 단계(724)에서 매핑 유닛(106)은 최장 부모 경로 리스트 내에 동일한 것이 있는지 판단한다. 만약 단계(724)에서 매핑 유닛(106)이 최장 부모 경로 리스트 내에 동일한 것이 없다고 판단하면, 매핑 유닛(106)은 후술할 단계(730)로 진행한다. 그러나 단계(724)에서 매핑 유닛(106)이 최장 부모 경로 리스트 내에 동일한 것이 존재한다고 판단하면, 매핑 유닛(106)은 매핑 유닛(106)이 최장 부모 경로 리스트 내의 모든 동일한 것을 제거하는 단계(727)로 진행한다.
다음, 단계(730)에서 매핑 유닛(106)은 각 최장 부모 경로를 하부 경로(여기에서 “분기 바닥 경로”로 참조)로 지정하는데, 여기서, 각 하부 경로는 다른 분기를 나타내고 있다. 그 후, 단계(733)에서 매핑 유닛(106)은 XML 리스트의 각 필드를 하나 이상의 분기 바닥 경로로 연관지어서, 필드의 부모 경로가 연관된 분기 바닥 경로의 부분집합이다. 필드의 부모 경로는 하나 이상의 분기 바닥 경로의 부분집합일 수 있다. 그 후, 매핑 유닛(106)은 단계(736)로 진행해 매핑 유닛(106)이 임의의 분기 바닥 경로가 여전히 평가될 필요가 있는지 판단한다. 단계(736)에서 만약, 매핑 유닛(106)은 평가해야할 분기 바닥 경로가 없다고 판단하면, 단계(745)에서 방법(700)을 따른 동작을 멈춘다. 그렇지 않으면, 단계(736)에서 만약 매핑 유닛(106)이 평가해야할 분기 바닥 경로가 여전히 있다고 판단하면, 매핑 유닛(106)은 단계(739)로 진행해 매핑 유닛(106)이 바인드 노드 리스트를 생성하는 페이로드 데이터 상에 분기 하부 경로를 평가한다. 하나 이상의 분기 하부 경로로 각 부모 경로를 묶어서, 만약 있다면, XML 리스트의 각 필드(열) 값을 페이로드 데이터에서 바인드 노드를 탐색해 획득할 수 있다. 다음, 단계(742)에서 매핑 유닛(106)은 행에 대한 바인드 노드에서 각 해당 필드 경로까지의 경로를 따라서, 행 내의 분기 하부 경로와 연관된 모든 필드들(열들)의 페이로드 데이터로부터 값을 얻는다. 필드가 상기 분기 하부 경로와 연관이 안 된 부모 경로에 속하면, 필드 값은 공백으로 남는다. 매핑 유닛(106)은 그 후, 상술한 단계(736)로 진행한다.
본 발명을 자세히 기술한 것에 따라, 변화와 변형은 여기에서 전에 기술되고 첨부한 청구항에서 정의된 본 발명의 사상과 범주 내에서 유효함을 이해할 수 있다. 있다면 아래 청구항 내의 해당 구조, 물질, 동작과 모든 수단 기능 합체 요소는 특별히 요구된 다른 청구항과 함께 기능을 수행하기 위한 임의 구조, 물질이나 동작을 포괄하고자 한다.
본 발명은 스키마의 사용 없이, 중첩된 표(nested table)의 구현을 지원하면서 페이로드 데이터를 스프레드시트 리스트에 매핑을 하는 시스템을 실현한다.

Claims (21)

  1. 페이로드 데이터(payload data)를 스프레드시트 리스트에 매핑을 시키는 시스템에 있어서,
    매핑된 필드와 연관된 적어도 하나의 경로를 포함하는 적어도 하나의 스프레드시트 리스트를 포함하는 스프레드시트 데이터를 저장하기 위한 스프레드시트 저장 유닛;
    상기 스프레드시트 데이터와 연관된 페이로드 데이터를 저장하기 위한 페이로드 데이터 저장 유닛; 및
    매핑 유닛
    을 포함하고,
    상기 매핑 유닛은
    상기 스프레드시트 저장 유닛으로부터 스프레드시트 데이터를 수신하고,
    상기 페이로드 데이터 저장 유닛으로부터 페이로드 데이터를 수신하고,
    상기 적어도 하나의 경로에 대한 부모 경로들의 집합을 생성하고, 상기 부모 경로들의 집합 중 최장 부모 경로를 결정하고, 상기 부모 경로들의 집합 중 하나의 부모 경로를 바닥 경로로서 지정함으로써, 상기 페이로드 데이터를 상기 적어도 하나의 스프레드시트 리스트에 매핑을 시키고,
    페이로드 데이터로부터 노드들의 집합을 생성하고, 상기 노드들의 집합 중 하나의 노드를 상기 적어도 하나의 스프레드시트 리스트의 하나의 행에 매핑을 시키고 - 상기 노드들의 집합은 상기 페이로드 데이터 상에서 상기 바닥 경로를 평가함으로써 생성되고, 상기 행은 복수의 필드를 포함함 -,
    상기 바닥 경로를 상기 스프레드시트 데이터 내의 상기 필드와 연관된 상기 적어도 하나의 경로까지 추적함으로써 상기 행 내의 상기 복수의 필드에 대한 값들을 취득하는 시스템.
  2. 제1항에 있어서, 상기 적어도 하나의 스프레드시트 리스트는 확장형 마크업 언어(XML) 리스트들을 포함하는 시스템.
  3. 제1항에 있어서, 상기 시스템은,
    상기 적어도 하나의 매핑된 스프레드시트 리스트를 상기 매핑 유닛으로부터 수신해서 상기 적어도 하나의 매핑된 스프레드시트 리스트를 사용자에 표시하도록 되어있는 사용자 인터페이스를 더 포함하는 시스템.
  4. 제1항에 있어서, 상기 시스템은,
    상기 적어도 하나의 매핑된 스프레드시트 리스트를 상기 매핑 유닛으로부터 수신해서 상기 적어도 하나의 매핑된 스프레드시트 리스트를 네트워크에 제공하도록 되어 있는 네트워크 인터페이스를 더 포함하는 시스템.
  5. 제1항에 있어서,
    상기 적어도 하나의 스프레드시트 리스트는 상기 페이로드 데이터와 연관된 적어도 하나의 필드 경로를 포함하는 시스템.
  6. 페이로드 데이터를 스프레드시트 리스트들에 매핑하기 위한 방법에 있어서,
    컴퓨터에 의해, 적어도 하나의 스프레드시트 리스트를 포함하는 스프레드시트 데이터를 수신하는 단계 - 상기 적어도 하나의 스프레드시트 리스트는 필드와 연관된 적어도 하나의 경로를 포함함 - ;
    상기 컴퓨터에 의해, 상기 스프레드시트 데이터와 연관된 페이로드 데이터를 수신하는 단계; 및
    상기 컴퓨터에 의해, 상기 적어도 하나의 경로에 대한 부모 경로들의 집합을 생성하고, 상기 부모 경로들의 집합 중 최장 부모 경로를 결정하고, 상기 부모 경로들의 집합 중 하나의 부모 경로를 바닥 경로로서 지정하고, 페이로드 데이터로부터 노드들의 집합을 생성함으로써, 상기 페이로드 데이터를 상기 적어도 하나의 스프레드시트 리스트에 매핑하는 단계 - 상기 노드들의 집합은 상기 페이로드 데이터 상에서 상기 바닥 경로를 평가함으로써 생성됨 -
    를 포함하는 방법.
  7. 제6항에 있어서, 상기 적어도 하나의 경로를 사용하여 상기 페이로드 데이터를 상기 적어도 하나의 스프레드시트 리스트에 매핑하는 단계는,
    상기 컴퓨터에 의해, 상기 노드들의 집합 중에서 한 노드를 상기 적어도 하나의 스프레드시트 리스트의 한 행에 매핑하는 단계; 및
    상기 컴퓨터에 의해, 적어도 하나의 분기 바닥 경로를 상기 스프레드시트 데이터 내의 상기 필드와 연관된 상기 적어도 하나의 경로까지 추적함으로써 상기 행 내의 상기 필드의 값을 추출(retrieving)하는 단계
    를 더 포함하는 방법.
  8. 제6항에 있어서, 상기 적어도 하나의 경로에 대한 부모 경로들의 집합을 생성하는 단계는
    상기 컴퓨터에 의해, 상기 스프레드시트 데이터의 상기 적어도 하나의 경로를 열거하는 단계;
    상기 컴퓨터에 의해, 열거된 상기 적어도 하나의 경로를 좇아 이전 필드로 되돌아 가는 단계; 및
    상기 컴퓨터에 의해, 상기 이전 필드와 연관된 경로를 상기 부모 경로들의 집합 내로 삽입하는 단계
    를 포함하는 방법.
  9. 제6항에 있어서, 상기 부모 경로들의 집합중 적어도 하나의 부모 경로를 적어도 하나의 분기 바닥 경로로서 지정하는 단계는
    상기 컴퓨터에 의해, 상기 부모 경로들의 집합중 적어도 하나의 최장 부모 경로를 결정하는 단계; 및
    상기 컴퓨터에 의해, 상기 적어도 하나의 최장 부모 경로 중 제1 부모 경로가 상기 적어도 하나의 최장 부모 경로 중 제2 부모 경로의 부분집합이 아니면, 상기 적어도 하나의 최장 부모 경로를 적어도 하나의 분기 바닥 경로로서 지정하는 단계
    를 포함하는 방법.
  10. 제6항에 있어서,
    상기 컴퓨터에 의해, 상기 부모 경로들의 집합 중 제3 부모 경로를 상기 적어도 하나의 분기 바닥 경로와 연관시키는 단계를 더 포함하고,
    상기 제3 부모 경로는 상기 적어도 하나의 분기 바닥 경로의 부분집합인 방법.
  11. 제6항 내지 제10항 중 어느 한 항의 방법을 수행하기 위한 컴퓨터 실행 가능 명령어들을 포함하는 컴퓨터 판독 가능 기록 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020050023677A 2004-03-22 2005-03-22 중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법 KR101122841B1 (ko)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
KR20060044561A KR20060044561A (ko) 2006-05-16
KR101122841B1 true KR101122841B1 (ko) 2012-03-22

Family

ID=34862024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050023677A KR101122841B1 (ko) 2004-03-22 2005-03-22 중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법

Country Status (18)

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

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
US9167553B2 (en) 2006-03-01 2015-10-20 Telecommunication Systems, Inc. GeoNexus proximity detector network
US7899450B2 (en) * 2006-03-01 2011-03-01 Telecommunication Systems, Inc. Cellular augmented radar/laser detection using local mobile network within cellular 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
US8892128B2 (en) 2008-10-14 2014-11-18 Telecommunication Systems, Inc. Location based geo-reminders
US8525681B2 (en) 2008-10-14 2013-09-03 Telecommunication Systems, Inc. Location based proximity alert
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
WO2012005769A1 (en) 2010-07-09 2012-01-12 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
CN105069542A (zh) * 2015-06-25 2015-11-18 中铁四局集团有限公司 一种责任成本预算编制方法及系统
CN104881762A (zh) * 2015-06-25 2015-09-02 中铁四局集团有限公司 一种工程量清单分解方法及系统
CN104978307A (zh) * 2015-06-25 2015-10-14 中铁四局集团有限公司 一种清单处理方法及装置
CN116050362B (zh) * 2023-03-23 2023-07-04 青岛诺亚信息技术有限公司 一种Web表格动态数据绑定方法、介质及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502101B1 (en) * 2000-07-13 2002-12-31 Microsoft Corporation Converting a hierarchical data structure into a flat data structure

Family Cites Families (16)

* 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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502101B1 (en) * 2000-07-13 2002-12-31 Microsoft Corporation Converting a hierarchical data structure into a flat data structure

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101122841B1 (ko) 중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법
JP4339554B2 (ja) 階層データを表示するユーザインタフェースを作成し表示するためのシステムおよび方法
US7543268B2 (en) Development environment for developing applications using a metamodel and a metadata API
JP4406609B2 (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
KR101340036B1 (ko) 전자 컨텐트 가이드 생성 방법 및 그 장치
US20050071801A1 (en) API derivation and XML schema derivation for developing applications
KR20090028758A (ko) 정보 재사용 방법, 정보 제공 방법, 편집 가능한 문서, 및 문서 편집 시스템
US7720814B2 (en) Repopulating a database with document content
US20020184269A1 (en) Document management systems for and methods of sharing documents
KR20070103464A (ko) 디지털 멀티미디어 컨텐츠에 대한 메타데이터를 조작하기위한 시스템 및 방법
JPWO2003060764A1 (ja) 情報検索システム
CN101794223A (zh) Wade服务消息架构的设计方法
US7421646B1 (en) System and method for schemaless data mapping
US20060026125A1 (en) Accessing entity data from a UDDI registry
JP2003091535A (ja) データ管理方法及びプログラム並びに装置
JP2009245196A (ja) コンテンツ管理装置及び方法及びプログラム
Carruthers Semi-structured and unstructured data
Koch et al. Representation of CityGML instance models in BaseX
KR101768047B1 (ko) Api 독립적인 우편번호 조회 시스템, 방법 및 이를 위한 컴퓨터 프로그램
Sonneck et al. Mapping UML web navigation stereotypes to XML data skeletons
CN115268928A (zh) 一种筛选前端无用图片资源的方法及系统
JP2004038263A (ja) 構造化文書からの情報抽出方法及び情報抽出プログラム及び情報抽出プログラムを格納した記憶媒体
CN115291886A (zh) 一种代码轻量生成工具、代码生成方法及存储介质
CN116304463A (zh) 一种前端开发中的网页文案管理方法、装置、设备和介质
Milowski Enabling scientific data on the web

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee