KR20040047657A - 계층적 구조 데이터를 임포트/익스포트하는 방법 및컴퓨터-판독가능 매체 - Google Patents

계층적 구조 데이터를 임포트/익스포트하는 방법 및컴퓨터-판독가능 매체 Download PDF

Info

Publication number
KR20040047657A
KR20040047657A KR1020030084415A KR20030084415A KR20040047657A KR 20040047657 A KR20040047657 A KR 20040047657A KR 1020030084415 A KR1020030084415 A KR 1020030084415A KR 20030084415 A KR20030084415 A KR 20030084415A KR 20040047657 A KR20040047657 A KR 20040047657A
Authority
KR
South Korea
Prior art keywords
data
specified
electronic document
computer
content
Prior art date
Application number
KR1020030084415A
Other languages
English (en)
Other versions
KR101067398B1 (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 KR20040047657A publication Critical patent/KR20040047657A/ko
Application granted granted Critical
Publication of KR101067398B1 publication Critical patent/KR101067398B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Television Systems (AREA)
  • Credit Cards Or The Like (AREA)
  • Collating Specific Patterns (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

전자 문서의 데이터를 선택적으로 임포트/익스포트하는 방법 및 컴퓨터-판독가능 매체가 제공된다. 임포트 어플리케이션 프로그램 인터페이스(API)는 XML 파일 등의 계층적 구조 문서로부터 콘텐츠를 임포트하도록 구현될 수 있다. 임포트 API는 문서를 스캔하고 선택된 엘리먼트, 노드, 속성 및 텍스트로부터 콘텐츠를 추출하기 위해 해석기와 관련하여 동작한다. 임포트 API는 또한 추출된 콘텐츠를 처리하기 위해 콜백 컴포넌트를 사용한다. 익스포트 API 또한 XML 파일 등 계층적 구조 문서를 생성하기 위해 데이터를 익스포트하도록 구현될 수 있다. 익스포트 API는 데이터를 수신하고 계층적 구조 문서의 엘리먼트, 노드, 속성 및 텍스트로서 데이터를 익스포트하기 위해 라이터와 관련하여 동작한다.

Description

계층적 구조 데이터를 임포트/익스포트하는 방법 및 컴퓨터-판독가능 매체{METHOD AND COMPUTER-READABLE MEDIUM FOR IMPORTING AND EXPORTING HIERARCHICALLY STRUCTURED DATA}
본 발명은 계층적 구조 데이터를 임포트/익스포트하는 방법 및 컴퓨터-판독가능 매체에 관한 것이다.
컴퓨터 소프트웨어 어플리케이션은, 사용자가 스프레드쉬트, 캘린더, 뱅크 문장(bank statements), 프로덕트 리스트, 아웃라인 등 계층적 구조로 구성된 데이터를 포함하는 문서를 생성하여, 인터넷 등의 컴퓨터 네트워크를 통해 다른 사용자들과 교환할 수 있게 한다. 예를 들어, 사용자는 다른 포맷을 사용하는 컴퓨터 시스템간 계층적 데이터를 교환하기 위해 XML(Extensible Markup Language) 프로그램을 사용하여 문서를 생성할 수 있다. XML 문서는 그에 포함되는 데이터에 인접하고 다양한 컴퓨터에 의해 상기 데이터가 이해될 수 있게 하는 사용자-정의 설명 태그(descriptive tag)를 갖는다. 데이터는 설명-포함(description-bearing) 태그를 간략히 해석함으로써 사용자가 보기 위해 문서로부터 임포트될 수 있다. 데이터를 본 후, 사용자는 다른 사용자들에게 보내기 위해 데이터를 새로운 또는 편집된 계층적 포맷의 문서로 익스포트할 수 있다.
그러나, 문서를 해석하는 것은 다수의 단계를 요구하는 느리고 복잡한 프로세스이다. SAX(Simple API for XML) 등의 현재의 몇몇 해석기들은 한 번에 하나씩 XML 태그들이 순차적으로 판독되는 이벤트-기반 해석기이다. 그러나, 사용자는 원하는 XML 태그들을 찾기 위해 천천히 전체 파일을 검색해야 한다. DOM(Document Object Model) 등의 다른 해석기들은, 전체 XML 파일을 메모리에 로드하여 랜덤 액세스를 허용함으로써, 원하는 XML 태그를 찾는 것을 이벤트-기판 해석기들보다 용이하게 하는 트리-기반 해석기이다. 그러나, 트리-기반 해석기들은 원하는 XML 태그들을 찾기 위해 "트리"를 통한 네비케이팅을 요구한다. 또한, 이러한 해석기들은 큰 XML 파일들을 해석하기에는 비실용적인 상당한 량의 시간과 메모리를 요구한다.
따라서, 계층적 구조 문서로부터 데이터를 임포트하는 용이한 방법이 현재는 존재하지 않는다. 즉, SAX 등 이벤트-기반 해석기에 의해 전체 문서를 검색하지 않거나, 또는 DOM 등 트리-기반 해석기에 의해 상당한 시간과 메모리 리소스를 사용하는 동시에 트리를 네비게이트하지 않고도, 사용자에게 관심사인 데이터를 포함하는 특정 태그 또는 섹션에 대하여 문서를 선택적으로 검색하는 용이한 방법이 존재하지는 않는다.
본 발명은 전자 문서의 데이터를 선택적으로 임포트/익스포트하는 방법 및 시스템을 제공한다. 일 실시예에서는, 전자 문서로부터 콘텐츠를 선택적으로 임포트하는 방법이 제공된다. 계층적 파일 구조로 구성된 데이터를 갖는 전자 문서가 수신된다. 계층적 파일 구조는 XML이어도 좋다. 데이터는 XML 엘리먼트, 속성, 노드 및 텍스트를 포함할 수 있다. 문서로부터의 특정 데이터는 임포트될 것으로 특정되고, 상기 특정된 데이터에 대하여 관련 콘텐츠를 임포트하기 위한 액션이 수행된다. 상기 액션은 상기 특정된 데이터에 대하여 문서를 해석하는 것과 상기 특정된 데이터와 관련된 콘텐츠의 아이템을 추출하는 것을 포함할 수 있다.
본 발명의 다른 실시예에서는, 전자 문서를 생성하기 위해 컴퓨터 시스템에서 소스로부터 데이터를 익스포트하는 방법이 제공된다. 컴퓨터 시스템에서 소스로부터 수신된 특정된 데이터는 전자 문서를 생성하기 위해 익스포트된다. 생성된전자 문서는 XML 등의 계층적 구조를 가질 수 있다. 생성된 문서는 XML 엘리먼트, 속성 및 노드를 포함할 수 있다. 소스는 컴퓨터 시스템의 클라이언트 또는 서버일 수 있다. 데이터는 데이터 스트림, 메모리 버퍼 또는 파일로 익스포트될 수 있다.
본 발명의 실시예는 또한 전자 문서의 데이터를 선택적으로 임포트/익스포트하는 컴퓨터-판독가능 매체를 제공한다. 본 발명의 여러 양상에 관한 부가적인 상세는 후속하는 본 발명의 상세한 설명으로부터 명백하게 될 것이다.
도 1은 본 발명에 대해 예시적인 운영 환경을 제공하는 컴퓨터, 관련 주변기기 및 네트워크된 디바이스들의 블럭도.
도 2는 본 발명의 실시예에 따라 전자 문서를 임포트하는 예시적인 아키텍쳐를 나타내는 블럭도.
도 3은 본 발명의 실시예에 따라 전자 문서를 생성하기 위해 데이터를 익스포트하는 예시적인 아키텍쳐를 나타내는 블럭도.
도 4는 본 발명의 실시예에 따라 전자 문서를 임포트하는 예시적인 루틴에 의해 수행되는 단계들을 나타내는 플로우챠트.
도 5는 본 발명의 실시예에 따라 전자 문서를 생성하기 위해 데이터를 익스포트하는 예시적인 루틴에 의해 수행되는 단계들을 나타내는 플로우챠트.
본 발명의 실시예에 대한 이하의 설명은 첨부된 도면을 참조하여 이루어진다. 본 발명은 전자 문서의 계층적 구조 데이터를 임포트/익스포트하는 방법 및 시스템에 관한 것이다.
운영 환경(Operating Environment)
도 1 및 이하의 논의는 본 발명이 구현되기에 적합한 컴퓨팅 환경의 개략적이고 일반적인 설명을 제공하기 위한 것이다. 본 발명이 퍼스널 컴퓨터와 관련한 운영 시스템 상에서 동작하는 어플리케이션 프로그램 인터페이스의 일반적인 콘텍스트로 설명될 것이지만, 당업자라면 본 발명이 다른 프로그램 모듈과 조합하여 구현될 수도 있다는 것을 이해할 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자라면 본 발명이 휴대형 디바이스, 멀티프로세서 시스템, 마이크로세서-기반 전자기기 또는 프로그램가능한 소비자용 전자기기, 휴대 전화, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 기타 컴퓨터 시스템에 의해 실행될 수 있다는 것을 이해할 것이다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 처리 디바이스들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 리모트 메모리 스토리지 디바이스 양자 모두에 배치될 수 있다.
도 1을 참조하면, 본 발명을 구현하는 예시적인 시스템은, 처리부(21), 시스템 메모리(22) 및 시스템 메모리를 처리부(21)에 결합시키는 시스템 버스(23)를 포함하는 종래의 퍼스널 컴퓨터(20)을 포함한다. 시스템 메모리(22)는 ROM(24)과 RAM(25)을 포함한다. 기동 기간 중에 등, 퍼스널 컴퓨터(20) 내에서 엘리먼트들간 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 BIOS(26)는, ROM(24)에 저장된다. 퍼스널 컴퓨터(20)는 또한 하드 디스크 드라이브(27), 이동형 디스크(29)에 대한 판독 또는 기입을 행하기 위한 자기 디스크 드라이브(28), 및 CD-ROM 디스크(31)를 판독하거나 기타 광 매체에 대한 판독 기입을 행하기 위한 광 디스크 드라이브(75)를 포함한다. 하드 디스크 드라이브(27), 자기 디스크 드라이브(28), 및 광 디스크 드라이브(75)는 각각 하드 디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33), 및 광 드라이브 인터페이스(34)에 의해 시스템 버스(23)에 접속된다. 이들 드라이브 및 관련 컴퓨터-판독가능 매체는 퍼스널 컴퓨터(20)에 대한 불휘발성 스토리지를 제공한다. 상술한 컴퓨터-판독가능 매체의 설명은 하드 디스크, 이동형 자기 디스크 및 CD-ROM 디스크를 참조하였지만, 당업자라면 자기 카세트, 플래쉬 메모리 카드, 디지털 비디오 디스크, Bernoulli 카트리지 등 컴퓨터에 의해 판독가능한 기타 유형의 매체가 상술한 예시적인 운영 환경에서 사용될 수 있다는 것을 이해할 것이다.
운영 시스템(35), 워드 프로세서 프로그램(또는 기타 유형의 프로그램) 등의 하나 이상의 어플리케이션 프로그램(37), 임포트 API(30), 익스포트 API(40) 및 기타 프로그램 모듈(도시되지 않음)을 포함하는 다수의 프로그램 모듈이 드라이브 및 RAM(25)에 저장될 수 있다.
사용자는 키보드(76) 및 마우스(42) 등의 포인팅 디바이스를 통해 퍼스널 컴퓨터(20)에 명령어 및 정보를 입력할 수 있다. 기타 입력 디바이스들(도시되지 않음)로는 마이크로폰, 조이스틱, 게임 패드, 인공위성 접시, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 디바이스들은 시스템 버스에 결합되는 시리얼 포트 인터페이스(46)를 통해 처리부(21)에 종종 접속되기도 하지만, 게임 포트나 USB 등 기타 인터페이스에 의해 접속되어도 좋다. 모니터(47) 또는 기타 유형의 디스플레이 디바이스가 또한 비디오 어댑터(48) 등의 인터페이스를 통해 시스템 버스(23)에 접속된다. 모니터 이외에, 퍼스널 컴퓨터는 통상적으로 스피커나 프린터 등 기타 주변 출력 디바이스(도시되지 않음)를 포함한다.
퍼스널 컴퓨터(20)는 리모트 컴퓨터(49) 등 하나 이상의 리모트 컴퓨터로의 논리 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 리모트 컴퓨터(49)는 서버, 라우터, 피어 디바이스 또는 기타 공통 네트워크 노드일 수 있고, 비록 도 1에는 메모리 스토리지 디바이스(50)만 도시되었지만 통상적으로 퍼스널 컴퓨터(20)에 대하여 설명되는 다수의 또는 모든 엘리먼트를 포함할 수 있다. 도 1에 묘사된 논리 접속은 LAN(51) 및 WAN(52)을 포함한다. 이러한 네트워킹 환경은 사무실, 기업형 컴퓨터 네트워크, 인트라넷 및 인터넷에서 통상적인 것이다.
LAN 네트워킹 환경에서 사용되는 경우, 퍼스널 컴퓨터(20)는 네트워크 인터페이스(53)를 통해 LAN(51)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 퍼스널 컴퓨터(20)는 통상적으로 모뎀(54) 또는 인터넷 등 WAN(52)을 통한 통신을 수립하기 위한 기타 수단을 포함한다. 내장형 또는 외장형인 모뎀(54)은 시리얼 포트 인터페이스(46)를 통해 시스템 버스(23)에 접속된다. 네트워크된 환경에서, 퍼스널 컴퓨터(20)에 대하여 상술된 프로그램 모듈들, 또는 그 일부는, 리모트 메모리 스토리지 디바이스에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것으로, 컴퓨터들간 통신 링크를 수립하기 위한 기타 수단이 사용될 수 있다는 것이 이해될 것이다.
운영(Operation)
도 2는 본 발명의 실시예와 관련하여 사용되는 예시적인 소프트웨어 아키텍쳐(200)를 나타내는 블럭도이다. 본 아키텍쳐는 계측적 파일 구조로 구성된 데이터를 갖는 전자 문서로부터 콘텐츠를 임포트하는 임포트 API(Application Program Interface)(30)를 포함한다. 일 실시예에서, 전자 문서는 다양한 아이템의 콘텐츠와 관련된 태그, 속성 및 노드(서브-트리)를 포함하는 XML 문서이다. 본 명세서에 개시되는 발명을 제한하는 것이 아니라 예시적인 목적으로, API(30)이 실행될 예시적인 XML 파일이 이하에 기술된다:
도 2에 도시된 바와 같이, 임포트 API(30)는 도 1에서 설명된 클라이언트 컴퓨터(20)로부터 전자 문서를 수신한다. 대안적인 실시예에서, 전자 문서는 리모트 컴퓨터 서버(49) 등의 서버로부터 수신될 수도 있다. 임포트 API(30)는 전자 문서의 계층적 구조를 규정하는 데이터(엘리먼트, 속성, 노드 및 텍스트 등) 및 관련 콘텐츠에 대하여 전자 문서를 해석하는 해석기(60)와 통신한다. 임포트 API(30)는 문서로부터 해석될 특정 데이터를 특정하기 위해 해석기(60)를 관리한다. 일 실시예에서, 해석기(60)는 Washington, Redmond의 MICROSOFT CORPORATION사 제품인 OFFICE XML PARSER 등의 이벤트-기반 해석기일 수 있다. 해석기(60)는 또한 DOM(Document Object Model) 해석기 등 트리-기반 해석기일 수도 있다. 사용자가 문서로부터 추출된 원하는 특정 데이터를 특정할 수 있기 때문에, API(30)가 이벤트-기반 및 트리-기반 해석기를 사용하는 것이 유리하다. 당업자들에게 공지된 바와 같이, 이벤트-기반 해석기는 한 번에 한 라인씩 문서를 스캔하여, 한 번에 1개 아이템의 데이터(태그 등)를 순차적으로 제공하므로, 사용자가 원하는 데이터를 찾기 위해 대기할 것을 요구한다. 트리-기반 해석기는 전체 문서를 메모리에 로딩하지만, 사용자는 여전히 원하는 데이터를 찾기 위해 로딩된 문서를 네비게이트하여야 한다. 상술된 이점은 이하 도 4를 참조하여 보다 상세히 설명될 것이다.
임포트 API(30)는 또한 콜백 컴포넌트(50)와도 통신한다. 콜백 컴포넌트(50)는 임포트 API(30)와 통신하여 제1 데이터가 추출된 이후 전자 문서로부터 임포트될 콘텐츠의 부가적인 아이템을 결정한다. 예를 들어, 전자 문서의 엘리먼트 또는 노드가 콘텐츠의 1개 이상의 아이템(명칭 리스트 등)과 관련되면, 임포트 API(30)는 제1 며칭을 추출하고 나서, 콜백 컴포넌트(50)를 액세스하여 리스트에 있는 모든 명칭이 추출될 때까지 다음 명칭을 추출할 것이다. 달리 말하면 아이템 리스트에 대하여, 임포트 API(30)는 리스트의 각 아이템을 콜백 컴포넌트(50)에 순차로 전달하고, 여기서 API(30)의 클라이언트(20)는 상기 아이템에 의해 원하는 것을 행할 수 있다. 클라이언트(20)는 또한 콜백 컴포넌트(50)를 사용하여 임포트 프로세스 동안 API(30)에 다시 통신하여, 잔여 데이터 처리 방식을 변경할 수 있다. 여러 실시예에서, API(30)에 의해 임포트된 콘텐츠(70)는 데이터 스트림, 메모리 버퍼 또는 파일일 수 있다.
이제 도 3을 참조하면, 본 발명의 실시예와 관련하여 사용하기 위한 예시적인 소프트웨어 아키텍쳐(300)를 나타내는 블럭도가 도시된다. 본 아키텍쳐는 전자 문서(90)을 생성하기 위해 소스로부터 데이터를 익스포트하는 익스포트 API(Application Program Interface)(40)를 포함한다. 일 실시예에서, 생성된 문서(90)는 XML 문서 등 계층적 파일 구조를 갖는다. 도 3에 도시된 바와 같이, 익스포트 API(40)는 클라이언트 컴퓨터(20)로부터 데이터를 수신한다. 다른 실시예에서, 데이터는 리모트 컴퓨터 서버(49) 등 서버로부터 수신될 수 있다. 익스포트될 데이터는 텍스트 스트링 또는 기타 유형의 데이터 중 고정된 리스트의 변수를 포함할 수 있다.
익스포트 API(40)는, 익스포트되기 위해 익스포트 API(40)에 의해 특정된 데이터를 수신하여, 상기 데이터를 생성된 전자 문서(90)에 엘리먼트, 노드, 속성 또는 텍스트를 기입하기 위해 사용하는 라이터(80)와 통신된다. 임포트 API(40)는 익스포트될 특정 데이터를 특정하기 위해 라이터(80)를 관리한다. 일 실시예에서, 라이터(80)는 Washington, Redmond의 MICROSOFT CORPORATION사 제품인 OFFICE XML EXPORTER 등의 XML 익스포터 컴포넌트일 수 있다. 익스포트 API(40)는 단일 API 콜(call)로 다수의 데이터(XML 콘텐츠 등) 또는 전체 파일을 기입할 수 있게 한다. 이는 라이터(80)가 한 번에 하나의 데이터 기입만을 허용하기 때문에 라이터(80)를 직접 액세스하는 것 보다 유리하다. 익스포트 API(40)를 구현하기 위한 신택스가임포트 API(30)와 매우 유사할 것이라는 점이 이해될 것이다. 따라서, 본 발명의 실시예에서는, 사용자가 익스포트 API(40) 및 임포트 API(30) 양자 모두를 사용할 것이 요구되지는 않지만, 사용자 자신의 데이터를 기입하고 나중에 판독하기 위해 익스포트 API(40) 및 임포트 API(30)를 사용할 수 있다. 상술된 익스포트 API(40)의 이점은 이하 도 5를 참조하여 설명될 것이다.
도 4는 본 발명의 실시예에 따른 컴퓨터 시스템에서 XML 문서 등 전자 문서로부터 콘텐츠를 선택적으로 임포트하는 예시적인 루틴(300)을 나타내는 플로우챠트이다. 설명의 목적상, 도 4는 도 1 및 2를 참조하여 기술되어 있다.
루틴(400)은 임포트 API(30)가 퍼스널 컴퓨터(20) 또는 리모트 컴퓨터 서버(49)로부터 전자 문서를 수신하는 블럭 410에서 시작한다. 블럭 415에서, 임포트 API(30)는 임포트될 문서의 데이터를 특정한다. 사용자는 (워드 프로세서 등) 어플리케이션 프로그램(100)에서 임포트될 특정 데이터를 특정할 수 있고, 상기 어플리케이션 프로그램(100)은 이러한 정보를 임포트 API(30)와 통신한다. 예를 들어, 상술된 예시적인 XML 문서에서, 사용자는 <Service> 엘리먼트 콘텐츠, <Subscription> 노드 콘텐츠, <Currency> 엘리먼트 콘텐츠(Account Currency Type 등), 및 <Amount> 엘리먼트 콘텐츠(Total balance impact 등)에 관심이 있고, 사용자에게 유용한 정보를 포함하고 있지 않은 <SOAP-ENV> 엘리먼트 및 속성에 대하여는 관심이 없을 수 있다. 특정 노드 및 엘리먼트를 선택함으로써, 사용자는 또한 포함된 모든 엘리먼트를 선택한다. 예를 들어, <Subscription> 노드는 엘리먼트의 임의 길이 리스트인 <BalanceImpacts>를 포함한다. <Services> 엘리먼트는 또한Service Names의 임의 리스트를 포함한다.
루틴(400)은 해석기(60)가 임포트 API(30)에 의해 특정된 데이터(노드 및 엘리먼트 등)에 대해 전자 문서를 검색하는 블럭 420으로 진행한다. 블럭 425에서, 임포트 API(30)는 해석된 문서의 데이터로부터 콘텐츠를 추출한다. 간략히 상술된 바와 같이, 일 실시예에서 해석기(60)는 임포트 API(30)에 의해 문서의 각 엘리먼트가 스캔되고 그 내부에 포함된 콘텐츠가 추출되는 이벤트-기반 해석기이다. 예를 들어, 해석기(60)는 사용자에 의해 사전에 특정된 <Services> 엘리먼트에 대하여 문서를 스캔하고, 임포트 API(30)는 <Service> 엘리먼트의 "Name" 속성으로부터 텍스트 스트링 "Some service"를 추출한다. 유사한 형태로, 특정된 엘리먼트와 관련된 모든 콘텐츠가 문서로부터 추출될 때까지 모든 엘리먼트가 스캔된다.
루틴(400)은 블럭 430으로 진행하여, 임포트 API(30)가 임포트될 것으로 특정된 엘리먼트에 포함되는 콘텐츠의 부가적인 아이템이 존재하는지 여부를 판정한다. 콘텐츠의 부가적인 아이템이 존재하지 않으면 루틴(400)은 종료한다. 클라이언트(20)는 추출된 콘텐츠를 갖는 신규 문서를 생성할 것을 선택할 것이다(예를 들어, 익스포트 API(40)을 이용함). 역으로, 임포트될 것으로 특정된 엘리먼트에 포함되는 콘텐츠의 부가적인 아이템이 존재하면, 루틴은 API(30)가 콘텐츠의 다음 부가적인 아이템을 추출하는 블럭 425로 복귀한다. 예를 들어, 임포트 API(30)가 <Service> 엘리먼트의 "Name" 속성으로부터 "Some service" 스트링을 추출한 후, API(30)는 "Name" 속성을 포함하는 부가적인 <Service> 엘리먼트가 존재하는지를 판정하고, 각각으로부터 콘텐츠를 추출하고, 이를 원하는 스트링으로 인쇄하기 위해 콜백 컴포넌트(50)로 전달한다.
API(30)를 사용하는 도 4에 도시된 루틴은 이하 예시적인 코드 샘플로 보여지는 바와 같이 컴퓨터 코드 처리 XML 데이터로 구현될 수 있다.
임포트 API의 사용예:
상술된 임포트 API(30)의 사용예에서, 클라이언트(20)는 원하는 콘텐츠를 특정하는 액션 스트링(<Service> 엘리먼트의 하나 이상의 "Name" 속성 등)을 넘겨준다. 액션 스트링은 검색 대상인 콘텐츠 또는 특정 지점에서 예상되는 콘텐츠를 나타내는 일련의 개별 액션들이다. 위 예에서, "o CancelResponse" 액션은 XML 문서에서 <CancelResponse>의 다음 개방형 엘리먼트로 가는 것을 의미하고, "al ID" 액션은 현재 엘리먼트의 "ID" 속성을 콜백에서 또는 임포트 API가 종료한 후 클라이언트가 바라볼 수 있는 추출된 스트링 세트의 엔트리 #1에 복사하는 것을 의미하고, "p2" 액션은 콜백의 제2 경우를 호출하는 것을 의미하는 등이다. 액션 스트링은 액션 그룹을 포함할 수도 있는데, 이는 특정 방식으로 조작될 일련의 액션들을 표시하는 방법이다. 위 예에서, 액션 그룹은 괄호로 둘러싸인 관련 액션들로 나타내어지고, 여기서 별표로 표시되는 액션 그룹들은 0회 이상 반복되어 나타내어지고 리스트를 형성하는 액션 세트를 의미한다. 액션 그룹의 다른 예(위 예에 나타내어지지 않음)는 XML 문서의 소정 지점에 출현할 것으로 기대되는 일 세트의 액션 또는 여러 콘텐츠를 나타낸다.
콜백 함수 예:
문서가 리스트나 반복되는 엘리먼트를 포함하고 있지 않는 경우 등 클라이언트(20)가 콜백 함수를 특정해야 하지 않더라도 임포트 API(30)가 사용될 수 있다는 것이 이해되어야 한다. 예를 들어, XML 파일이 하나의 <Service> 엘리먼트, 하나의 <BalanceImpact> 노드, 및 하나의 <Subscription> 노드 만을 포함하였다면, 임포트 API(30)는 이하에 도시된 코드의 1 라인에 파일을 임포트할 수 있다:
따라서, 임포트 API(30)는 유리하게도 단일 라인의 코드를 갖는 계층적 구조 문서와 단일 라인의 코드 및 콜백 문장을 갖는 리스트를 포함하는 계층적 구조 문서로부터 사용자가 콘텐츠를 선택적으로 임포트할 수 있게 한다. 위에서 간략하게 논의된 바와 같이, API(30)는 콘텐츠를 데이터 스트림, 메모리 버퍼, 또는 파일로서 임포트할 수 있다.
도 5는 본 발명에 따른 컴퓨터 시스템에서 XML 파일 등의 전자 문서를 생성하기 위해 콘텐츠를 선택적으로 익스포트하는 예시적인 루틴(500)을 나타내는 플로우챠트이다. 설명의 목적상, 도 4는 도 1 및 3을 참조하여 설명된다.
루틴(500)은 익스포트 API(40)가 익스포트될 데이터를 특정하는 블럭 510에서 시작한다. 위에서 간략히 설명된 바와 같이, 데이터는 텍스트 스트링 또는 고정된 리스트의 변수를 포함할 수 있다. 사용자는 어플리케이션 프로그램(100; 워드 프로세서 등)에서 익스포트될 데이터를 특정하고, 어플리케이션 프로그램(100)은 이 정보를 익스포트 API(40)와 통신한다. 익스포트될 데이터를 특정화하는데 있어서, 사용자는 또한 생성된 문서에서 데이터가 표현되는 방식을 특정한다. 예를 들어, 사용자는 텍스트 스트링 "Services"가 엘리먼트로서 표현되고, "Name"이 "Service" 엘리먼트의 속성으로서 표현되도록 특정할 수 있다. 익스포트 API(40)는 라이터(80)로 특정된 데이터를 보내고, 라이터(80)는 특정된 데이터를 사용하여 블럭 520에서 문서를 생성한다.
도 5에 도시된 루틴은 이하에 보여지는 예시적인 코드 샘플을 사용하여 위에 열거된 예시적인 XML 파일을 생성하기 위한 함수 호출로서 구현될 수 있다.
익스포트 API의 사용예:
위에 나타낸 익스포트 API의 사용예에서, 클라이언트(20)는 임포트 API(30)의 사용예에서의 액션 스트링과 유사한 형태로 포맷된 액션 스트링을 넘겨준다.여기서, 액션 스트링은 XML 문서에 기입할 콘텐츠를 나타내는 일련의 개별 액션이다. 위 예에서, "e Amount 'Total balance impact'" 액션은 텍스트 "Total balance impact"를 포함하는 XML 엘리먼트 <Amount>를 기입하는 것을 의미하고, "c" 액션은 현재 스코프와 일치하는 근접 엘리먼트를 기입하는 것을 의미하는 등이다. 생성된 문서는 도 4의 설명에서 보여진 넌-리스트(non-list) 임포트 코드 샘플(예를 들어, 콜백 함수가 없음)에 대응하고 이에 의해 임포트될 수 있다.
위의 예시적인 여러 라인의 코드는 리스트를 갖는 XML 파일을 생성하기 위해 사용될 수 있다. 생성된 파일은 도 4의 설명에서 보여진 리스트 임포트 코드 예에 대응하고 이에 이해 임포트될 수 있다. 따라서, 익스포트 API(40)는 유리하게도, 단일 라인의 코드를 갖는 계층적 구조 문서 및 단지 소수 라인의 코드를 갖는 리스트를 포함하는 계층적 구조 문서를 생성하기 위해, 다수의 엘리먼트 및 속성들을 포함하는 익스포트 콘텐츠를 사용자가 한 번에 선택적으로 익스포트할 수 있게 한다.
상술된 바와 같이, 어플리케이션 프로그램(API)는 XML 파일 등 계층적 구조 문서로부터 콘텐츠를 임포트하도록 구현될 수 있다. API는 문서를 스캔하고 선택된 엘리먼트, 노드, 속성 및 텍스트로부터 콘텐츠를 추출하기 위해 해석기와 관련하여 동작한다. API는 또한 추출된 콘텐츠(예를 들어, 리스트로부터)를 처리하기 위해 콜백 컴포넌트를 사용한다. 임포트 API는 문서로부터 추출될 특정 데이터의 특정을 가능하게 한다. 이는 문서로부터 한 번에 한 개 아이템의 데이터를 제공하는 이벤트-기반 해석기 및 원하는 데이터를 찾기 위해 로드된 파일을 직접 네비게이트할 필요가 있었던 트리-기반 해석기에 비하여 유리한 것이다.
API는 또한 XML 파일 등의 계층적 구조 문서를 생성하기 위해 데이터를 익스포트하도록 구현될 수 있다. API는 데이터를 수신하여 상기 데이터를 계층적 구조 문서의 엘리먼트, 노드, 속성 및 텍스트로서 익스포트하기 위해 라이터와 관련하여 동작한다. 익스포트 API는 다수의 데이터(XML 콘텐츠 등) 또는 전체 파일을 단일 API 호출로 기입할 수 있게 한다. 이는 한 번에 하나의 데이터 기입만을 허용하는 라이터(XML 라이터 등)를 사용하는 것 보다 유리하다. 임포트 API(30) 및 익스포트 API(40)는 관리 코드(managed code) 또는 비관리 코드(unmanaged code)로 구현될 수 있다. 본 발명의 다른 실시예는 본 명세서에 개시된 본 발명의 상세 및 실시 등을 고려하면 당업자에게 명백할 것이다.

Claims (42)

  1. 전자 문서로부터 콘텐츠를 선택적으로 임포트하는 방법에 있어서,
    데이터를 갖는 상기 전자 문서 및 상기 데이터와 관련된 콘텐츠의 아이템을 수신하는 단계- 상기 데이터는 계층적 파일 구조로 구성됨 -;
    상기 전자 문서의 상기 콘텐츠의 적어도 하나의 아이템과 관련된 특정 데이터를 특정하는 단계; 및
    상기 특정된 데이터에 대하여 상기 콘텐츠를 임포트하기 위한 액션을 수행하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 특정된 데이터에 대하여 상기 콘텐츠를 임포트하기 위한 액션을 수행하는 단계는,
    상기 특정된 데이터에 대하여 상기 전자 문서를 해석하는 단계; 및
    상기 전자 문서로부터 상기 특정된 데이터와 관련된 상기 콘텐츠의 최초 아이템을 추출하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 특정된 데이터에 대하여 상기 콘텐츠를 임포트하기 위한 액션을 수행하는 단계는,
    상기 전자 문서로부터 상기 특정된 데이터와 관련된 상기 콘텐츠의 최초 아이템을 추출한 후, 상기 특정된 데이터와 관련된 상기 콘텐츠의 다른 부가적인 아이템이 존재하는지 여부를 판정하는 단계; 및
    상기 특정된 데이터와 관련된 상기 콘텐츠의 부가적인 아이템이 존재하면, 상기 전자 문서로부터 상기 특정된 데이터와 관련된 상기 콘텐츠의 다음 아이템을 추출하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 게층적 파일 구조는 XML인 방법.
  5. 제1항에 있어서, 상기 특정된 콘텐츠는 XML 엘리먼트인 방법.
  6. 제1항에 있어서, 상기 특정된 콘텐츠는 XML 속성인 방법.
  7. 제1항에 있어서, 상기 특정된 콘텐츠는 XML 노드인 방법.
  8. 제1항에 있어서, 상기 특정된 콘텐츠는 텍스트인 방법.
  9. 제1항에 있어서, 상기 콘텐츠는 데이터 스트림으로부터 임포트되는 방법.
  10. 제1항에 있어서, 상기 콘텐츠는 메모리 버퍼로부터 임포트되는 방법.
  11. 제1항에 있어서, 상기 콘텐츠는 파일로부터 임포트되는 방법.
  12. 컴퓨터 시스템에서 전자 문서의 콘텐츠를 임포트하는 컴퓨터-실행가능 컴포넌트를 갖는 컴퓨터-판독가능 매체에 있어서,
    상기 컴퓨터 시스템의 소스로부터 상기 콘텐츠를 포함하는 데이터를 갖는 계층적 파일 구조의 상기 전자 문서를 수신하고;
    상기 전자 문서의 적어도 하나의 상기 콘텐츠 아이템과 관련된 특정 데이터를 특정하며;
    상기 전자 문서로부터 상기 특정된 데이터와 관련된 상기 콘텐츠의 아이템을 추출하는 임포트 컴포넌트를 포함하는 컴퓨터-판독가능 매체.
  13. 제12항에 있어서,
    상기 특정된 데이터에 대하여 상기 전자 문서를 해석하고;
    상기 특정된 데이터를 상기 임포트 컴포넌트로 보내는 해석기 컴포넌트를 더 포함하는 컴퓨터-판독가능 매체.
  14. 제13항에 있어서, 상기 해석기 컴포넌트는 이벤트-기반인 컴퓨터-판독가능 매체.
  15. 제12항에 있어서, 상기 전자 문서로부터 상기 특정된 데이터와 관련된 콘텐츠의 상기 추출된 아이템을 처리하는 콜백 컴포넌트를 포함하는 컴퓨터-실행가능컴포넌트를 더 포함하는 컴퓨터-판독가능 매체.
  16. 제12항에 있어서, 상기 적어도 하나의 콘텐츠 아이템은 텍스트 스트링을 포함하는 컴퓨터-판독가능 매체.
  17. 제12항에 있어서, 상기 계층적 파일 구조는 XML인 컴퓨터-판독가능 매체.
  18. 제12항에 있어서, 상기 특정된 콘텐츠는 XML 엘리먼트인 컴퓨터-판독가능 매체.
  19. 제12항에 있어서, 상기 특정된 콘텐츠는 XML 속성인 컴퓨터-판독가능 매체.
  20. 제12항에 있어서, 상기 특정된 콘텐츠는 XML 노드인 컴퓨터-판독가능 매체.
  21. 제12항에 있어서, 상기 특정된 콘텐츠는 텍스트인 컴퓨터-판독가능 매체.
  22. 제12항에 있어서, 상기 소스는 상기 컴퓨터 시스템의 클라이언트인 컴퓨터-판독가능 매체.
  23. 제12항에 있어서, 상기 소스는 상기 컴퓨터 시스템의 서버인 컴퓨터-판독가능 매체.
  24. 컴퓨터 시스템에서 전자 문서를 생성하기 위해 소스로부터 데이터를 익스포트하는 방법에 있어서,
    상기 소스로부터 상기 데이터를 수신하는 단계;
    상기 전자 문서에서 익스포트될 복수의 상기 데이터를 특정하는 단계; 및
    상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계를 포함하는 방법.
  25. 제24항에 있어서, 상기 생성된 문서는 계층적 파일 구조를 갖는 방법.
  26. 제25항에 있어서, 상기 계층적 파일 구조는 XML인 방법.
  27. 제24항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 적어도 하나의 XML 엘리먼트를 생성하는 단계를 포함하는 방법.
  28. 제24항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 적어도 하나의 XML 속성을 생성하는 단계를 포함하는 방법.
  29. 제24항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 적어도 하나의 XML 노드를 생성하는 단계를 포함하는 방법.
  30. 제24항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 텍스트를 생성하는 단계를 포함하는 방법.
  31. 제24항에 있어서, 상기 특정된 복수의 데이터는 데이터 스트림으로 익스포트되는 방법.
  32. 제24항에 있어서, 상기 특정된 복수의 데이터는 메모리 버퍼로 익스포트되는 방법.
  33. 제24항에 있어서, 상기 특정된 복수의 데이터는 파일로 익스포트되는 방법.
  34. 컴퓨터 시스템에서 전자 문서를 생성하기 위해 소스로부터 데이터를 익스포트하는 컴퓨터-실행가능 컴포넌트를 갖는 컴퓨터-판독가능 매체에 있어서,
    상기 소스로부터 상기 데이터를 수신하고; 상기 전자 문서에서 익스포트될 복수의 상기 데이터를 특정하는 익스포트 컴포넌트; 및
    상기 익스포트 컴포넌트로부터 상기 특정된 복수의 데이터를 수신하고, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 라이터 컴포넌트를 포함하는 컴퓨터-판독가능 매체.
  35. 제34항에 있어서, 상기 생성된 전자 문서는 계층적 파일 구조를 갖는 컴퓨터-판독가능 매체.
  36. 제35항에 있어서, 상기 계층적 파일 구조는 XML인 컴퓨터-판독가능 매체.
  37. 제34항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 적어도 하나의 XML 엘리먼트를 생성하는 단계를 포함하는 컴퓨터-판독가능 매체.
  38. 제34항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 적어도 하나의 XML 속성을 생성하는 단계를 포함하는 컴퓨터-판독가능 매체.
  39. 제34항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 적어도 하나의 XML 노드를 포함하는 컴퓨터-판독가능 매체.
  40. 제34항에 있어서, 상기 전자 문서를 생성하기 위해 상기 특정된 복수의 데이터를 익스포트하는 단계는 텍스트를 생성하는 단계를 포함하는 컴퓨터-판독가능 매체.
  41. 제34항에 있어서, 상기 소스는 상기 컴퓨터 시스템의 클라이언트인 컴퓨터-판독가능 매체.
  42. 제34항에 있어서, 상기 소스는 상기 컴퓨터 시스템의 서버인 컴퓨터-판독가능 매체.
KR1020030084415A 2002-11-27 2003-11-26 전자 문서로부터 콘텐츠를 선택적으로 임포트 및 익스포트하는 방법, 및 컴퓨터 저장 매체 KR101067398B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/306,022 2002-11-27
US10/306,022 US7191186B1 (en) 2002-11-27 2002-11-27 Method and computer-readable medium for importing and exporting hierarchically structured data

Publications (2)

Publication Number Publication Date
KR20040047657A true KR20040047657A (ko) 2004-06-05
KR101067398B1 KR101067398B1 (ko) 2011-09-27

Family

ID=32312191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030084415A KR101067398B1 (ko) 2002-11-27 2003-11-26 전자 문서로부터 콘텐츠를 선택적으로 임포트 및 익스포트하는 방법, 및 컴퓨터 저장 매체

Country Status (17)

Country Link
US (1) US7191186B1 (ko)
EP (1) EP1426877B1 (ko)
JP (1) JP2004178602A (ko)
KR (1) KR101067398B1 (ko)
CN (1) CN100527121C (ko)
AT (1) ATE481683T1 (ko)
AU (1) AU2003262290B2 (ko)
BR (1) BR0306749A (ko)
CA (1) CA2448787C (ko)
DE (1) DE60334185D1 (ko)
HK (1) HK1066304A1 (ko)
MX (1) MXPA03010779A (ko)
MY (1) MY134408A (ko)
PL (1) PL363561A1 (ko)
RU (1) RU2338245C2 (ko)
TW (1) TWI334551B (ko)
ZA (1) ZA200308722B (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205216A1 (en) * 2003-03-19 2004-10-14 Ballinger Keith W. Efficient message packaging for transport
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
EP1729235A1 (en) * 2005-06-03 2006-12-06 Agfa Corporation Structured reporting report data manager
US8711142B2 (en) * 2005-08-11 2014-04-29 International Business Machines Corporation Visual model importation
CN100547590C (zh) * 2005-12-05 2009-10-07 北京书生国际信息技术有限公司 文档处理系统
CN1979478B (zh) * 2005-12-09 2010-05-26 北京书生国际信息技术有限公司 文档处理系统和文档处理方法
CN1979479B (zh) * 2005-12-09 2010-06-02 北京书生国际信息技术有限公司 文档处理系统和文档处理方法
WO2007065357A1 (fr) 2005-12-05 2007-06-14 Beijing Sursen Co., Ltd Système et procédé de traitement de documents
WO2007065355A1 (fr) 2005-12-05 2007-06-14 Beijing Sursen Co., Ltd Systeme et procede de traitement hierarchise de documents
CN102043821B (zh) * 2005-12-09 2013-03-27 北京书生国际信息技术有限公司 一种显示文档的方法
US20070177583A1 (en) 2006-01-31 2007-08-02 Microsoft Corporation Partial message streaming
US7836055B2 (en) 2006-01-31 2010-11-16 Microsoft Corporation XNA relationship management
US20070266309A1 (en) * 2006-05-12 2007-11-15 Royston Sellman Document transfer between document editing software applications
CN100458786C (zh) * 2006-06-15 2009-02-04 Ut斯达康通讯有限公司 基于应用定制解析xml文档的方法及装置
US8732661B2 (en) * 2007-02-01 2014-05-20 Microsoft Corporation User experience customization framework
KR20100068473A (ko) * 2007-09-28 2010-06-23 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US8370735B2 (en) * 2008-06-27 2013-02-05 Microsoft Corporation Efficient, non-blocking mechanism for incrementally processing arbitrary sized XML documents
US10943030B2 (en) * 2008-12-15 2021-03-09 Ibailbonding.Com Securable independent electronic document
JP5369794B2 (ja) 2009-03-17 2013-12-18 株式会社リコー 情報処理装置、情報処理方法およびプログラム
US10114840B2 (en) * 2009-09-29 2018-10-30 Sap Se Customer data separation in a service provider scenario
CN101706779B (zh) * 2009-10-12 2013-05-08 南京联创科技集团股份有限公司 基于oracle的伞状数据导入导出方法
CN102122280B (zh) * 2009-12-17 2013-06-05 北大方正集团有限公司 一种智能提取内容对象的方法及系统
US8380753B2 (en) * 2011-01-18 2013-02-19 Apple Inc. Reconstruction of lists in a document
JP5760493B2 (ja) * 2011-02-18 2015-08-12 村田機械株式会社 中継通信システム
US9760549B2 (en) 2012-07-18 2017-09-12 Software Ag Usa, Inc. Systems and/or methods for performing atomic updates on large XML information sets
US10515141B2 (en) 2012-07-18 2019-12-24 Software Ag Usa, Inc. Systems and/or methods for delayed encoding of XML information sets
US9922089B2 (en) * 2012-07-18 2018-03-20 Software Ag Usa, Inc. Systems and/or methods for caching XML information sets with delayed node instantiation
CN103714062B (zh) 2012-09-28 2017-05-31 国际商业机器公司 基于依赖关系导入实体‑联系模型数据的方法和系统
CN104753891B (zh) * 2013-12-31 2019-04-05 中国移动通信集团湖南有限公司 一种xml报文解析方法及装置
US9635089B2 (en) * 2014-12-31 2017-04-25 Verizon Patent And Licensing Inc. Auto suggestion in search with additional properties
EP3462334A1 (en) 2017-09-27 2019-04-03 Fomtech Limited System and method for data aggregation and comparison
US10678777B2 (en) 2017-09-27 2020-06-09 Fomtech Limited System and method for data aggregation and comparison

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09269940A (ja) * 1996-03-29 1997-10-14 Sharp Corp 日時等を抽出する装置
JP3896702B2 (ja) 1998-09-18 2007-03-22 富士ゼロックス株式会社 文書管理システム
US6427123B1 (en) * 1999-02-18 2002-07-30 Oracle Corporation Hierarchical indexing for accessing hierarchically organized information in a relational system
US6862710B1 (en) * 1999-03-23 2005-03-01 Insightful Corporation Internet navigation using soft hyperlinks
US6549916B1 (en) * 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US6947953B2 (en) * 1999-11-05 2005-09-20 The Board Of Trustees Of The Leland Stanford Junior University Internet-linked system for directory protocol based data storage, retrieval and analysis
US6529905B1 (en) * 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
US6819339B1 (en) * 2000-02-24 2004-11-16 Eric Morgan Dowling Web browser with multilevel functions
JP2002094472A (ja) 2000-05-30 2002-03-29 Matsushita Electric Ind Co Ltd データ取得装置及びその方法
JP2002140350A (ja) 2000-11-02 2002-05-17 Toshiba Corp 入力データの履歴管理装置及び管理方法及び該管理方法が記憶された情報記憶媒体
GB2373698A (en) * 2001-03-20 2002-09-25 Copyn Ltd Storage of a portion of a web-page containing a link
JP3842573B2 (ja) * 2001-03-30 2006-11-08 株式会社東芝 構造化文書検索方法、構造化文書管理装置及びプログラム

Also Published As

Publication number Publication date
HK1066304A1 (en) 2005-03-18
EP1426877A2 (en) 2004-06-09
AU2003262290B2 (en) 2009-09-17
CN100527121C (zh) 2009-08-12
PL363561A1 (en) 2004-05-31
BR0306749A (pt) 2004-10-13
EP1426877B1 (en) 2010-09-15
ZA200308722B (en) 2004-10-08
EP1426877A3 (en) 2007-09-12
JP2004178602A (ja) 2004-06-24
RU2003134278A (ru) 2005-05-10
TWI334551B (en) 2010-12-11
TW200422881A (en) 2004-11-01
CN1504925A (zh) 2004-06-16
DE60334185D1 (de) 2010-10-28
RU2338245C2 (ru) 2008-11-10
MY134408A (en) 2007-12-31
KR101067398B1 (ko) 2011-09-27
MXPA03010779A (es) 2005-04-19
US7191186B1 (en) 2007-03-13
ATE481683T1 (de) 2010-10-15
CA2448787C (en) 2012-01-17
AU2003262290A1 (en) 2004-06-10
CA2448787A1 (en) 2004-05-27

Similar Documents

Publication Publication Date Title
KR101067398B1 (ko) 전자 문서로부터 콘텐츠를 선택적으로 임포트 및 익스포트하는 방법, 및 컴퓨터 저장 매체
US6990632B2 (en) Method and system for inferring a schema from a hierarchical data structure for use in a spreadsheet
US6662342B1 (en) Method, system, and program for providing access to objects in a document
RU2348064C2 (ru) Способ и система для расширения функциональных возможностей вставки для компьютерного прикладного программного обеспечения
US8190991B2 (en) XSD inference
JP4716612B2 (ja) Html文書に表示されるデータオブジェクトのソースをリダイレクトする方法
US6429880B2 (en) Method and apparatus for binding user interface objects to application objects
US7398463B2 (en) High performance freeze-dried dynamic web page generation
CN100440222C (zh) 用于文本易读性增强的系统和方法
US6658624B1 (en) Method and system for processing documents controlled by active documents with embedded instructions
US20030140045A1 (en) Providing a server-side scripting language and programming tool
US20040221233A1 (en) Systems and methods for report design and generation
US20020029304A1 (en) Method and system for defining semantic categories and actions
KR20050056123A (ko) 소프트웨어 애플리케이션에서의 네임스페이스 또는 스키마라이브러리 지원을 위한 프로그램 가능한 객체 모델
MXPA03005451A (es) Metodo y sistema para asociar acciones con etiquetas semanticas en documentos electronicos.
US20050273703A1 (en) Method of and system for providing namespace based object to XML mapping
US20080162530A1 (en) Method and Apparatus for Utilizing an Extensible Markup Language Data Structure For Defining a Data-Analysis Parts Container For Use in a Word Processor Application
JPH11167584A (ja) ページ遷移方法及びその実施装置並びにその処理プログラムとデータを記録した媒体
CN100456296C (zh) 一种多媒体文件搜索引擎的排序方法
US7447697B2 (en) Method of and system for providing path based object to XML mapping
JP2002534741A (ja) 半構造化テキストデータを処理する方法及び装置
US20150324333A1 (en) Systems and methods for automatically generating hyperlinks
EP0346259A2 (en) Single data stream architecture for presentation, revision and resource document types
Sastre XML-Based Representation Formats of Local Grammars for the NL
Developers et al. Beginning XML with C# 7

Legal Events

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

Payment date: 20140814

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 8