KR20060080861A - 워드 프로세서 문서를 제공하는 워드 프로세싱애플리케이션 - Google Patents

워드 프로세서 문서를 제공하는 워드 프로세싱애플리케이션 Download PDF

Info

Publication number
KR20060080861A
KR20060080861A KR1020050130324A KR20050130324A KR20060080861A KR 20060080861 A KR20060080861 A KR 20060080861A KR 1020050130324 A KR1020050130324 A KR 1020050130324A KR 20050130324 A KR20050130324 A KR 20050130324A KR 20060080861 A KR20060080861 A KR 20060080861A
Authority
KR
South Korea
Prior art keywords
data
document
word processor
xml
content
Prior art date
Application number
KR1020050130324A
Other languages
English (en)
Other versions
KR101213812B1 (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 KR20060080861A publication Critical patent/KR20060080861A/ko
Application granted granted Critical
Publication of KR101213812B1 publication Critical patent/KR101213812B1/ko

Links

Images

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/93Document management systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터와 프레젠테이션이 분리될 수 있는 워드 프로세서 문서를 생성하는 워드 프로세서 애플리케이션이 제공된다. 워드 프로세서 문서의 프레젠테이션 표면과 분리된 별도의 장소에 데이터가 저장될 수 있다. 워드 프로세서 애플리케이션의 사용자는 데이터의 내용과 프레젠테이션 표면 간의 링크(또는 바인딩)를 확립할 수 있다. 사용자는 계속해서 변경할 수 있는 프레젠테이션 포맷의 복잡성을 다룰 필요 없이, 링크된 데이터를 직접 변경함으로써 워드 프로세서 문서의 내용을 수정할 수 있다. 사용자는 프레젠테이션 표면의 현재 레이아웃에 대해 아무런 지식 없이 데이터 저장소를 편집함으로써 워드 프로세서 문서의 내용을 수정할 수 있다. 사용자는 데이터 구조의 복잡성에 노출되지 않고, 간단한 문서 편집을 통해 복잡한 백킹 데이터를 수정할 수 있다.
워드 프로세서 애플리케이션, 데이터 저장소, 프레젠테이션

Description

워드 프로세서 문서를 제공하는 워드 프로세싱 애플리케이션{DATA BINDING IN A WORD―PROCESSING APPLICATION}
도 1은 본 발명의 한 예시적인 실시예에서 사용될 수 있는 예시적인 컴퓨팅 장치를 도시하는 도면.
도 2는 본 발명을 실행하기 위한 예시적인 환경을 도시하는 블록도.
도 3은 본 발명의 실시예에 따른 흐름도.
<도면의 주요부분에 대한 부호의 설명>
100 : 컴퓨팅 장치
102 : 처리 장치
104 : 시스템 메모리
109 : 이동식 저장 장치
110 : 이동불가식 저장 장치
112 : 입력 장치
114 : 출력 장치
116 : 통신 접속
마크업 언어들은 최근 큰 인기를 얻어오고 있다. 마크업 언어의 한 유형인 XML(Extensible Markup Language)은 다양한 종류의 데이터를 식별하고, 교환하고 및 처리하는 방법을 제공하는 범용 언어이다. 예를 들어, XML은 다양한 애플리케이션 프로그램에 의해 사용될 수 있는 문서들을 생성하는 데에 사용될 수 있다. XML 파일의 구성요소들은 통상적으로 관련된 네임스페이스(namespace)와 스키마(schema)를 가진다.
네임스페이스는 구성요소/속성 이름들과 유형들을 정의하기 위해 XML 문서에 서 사용되는 이름들의 집합을 위한 고유한 식별자이다. 네임스페이스의 이름은 일반적으로 XML 문서의 각 클래스를 고유하게 식별하기 위해 사용된다. 고유한 네임스페이스들은 다른 소스들로부터 유래되고, 동일한 이름을 가질 수도 있는 마크업 구성요소들을 구별한다.
XML 스키마타(schemata)는 XML 환경에서 데이터를 기재하고 유효화하는 방법을 제공한다. 스키마는, XML 문서에서 내용을 설명하기 위해 무슨 구성요소들과 속성들이 사용되는지, 어디에 각 구성요소가 허용되는지, 무슨 유형의 내용이 그 안에 허용되는지 및 어느 구성요소들이 어떤 다른 구성요소들 내에 나타날 수 있는지를 기재한다. 스키마타의 사용은 문서가 일관적이고 예측가능한 방식으로 구조화되었음을 보장한다. 스키마타는 사용자에 의해 생성될 수 있고, 일반적으로, XML과 같은 관련된 마크업 언어에 의해 지원될 수 있다. XML 편집기를 사용하여, 사용자는 XML 파일을 조작할 수 있고 사용자가 생성한 스키마에 속하는 XML 문서들 을 생성할 수 있다. 종래의 워드 프로세서 애플리케이션 프로그램들에 맞춤 XML 스키마들을 위한 지원이 추가되어, 사용자들이 맞춤 XML 마크업(예를 들어, <title>)으로 문서 내용을 '태그(tag)'하는 것이 가능해지고, 이전에는 분류되지 않은 텍스트의 연속이었던 것에 본질적으로 시맨틱(semantic) 의미를 부여하게 되었다. 이것은, 이전에는 단지 포맷을 가지는 텍스트였고 다른 애플리케이션들이 처리할 의미가 없던 문서가, 이제 임의의 다른 XML-인식 애플리케이션이 찾을 수 있고 이해할 수 있는 임의의 사용자-정의 XML 스키마의 XML 마크업의 특정 부분들을 포함하는 구조화된 XML 문서일 수 있음을 의미한다.
기본 예에서, 문서 맨 위의 텍스트는 사용자-정의 XML 스키마의 <title> XML 구성요소를 지니는 타이틀로서 '태그'될 수 있고, 이것은 다른 XML-인식 애플리케이션들이 이제 이 범위의 텍스트가 "타이틀"을 포함한다는 것을 쉽게 이해하고, 그것을 적절히 추출할 수 있음을 의미한다. 이것은 백엔드(backend) 프로세스가 적절한 시맨틱과 컨텍스트로 문서의 일부(예를 들어, 이 텍스트는 <title>임)를 지능적으로 추출할 수 있도록 한다.
그러나, 종래의 워드 프로세서 애플리케이션들과 관련된 결점들은 맞춤 마크업의 추가와 지속성이 문서의 프레젠테이션(presentation)에 달려있다는 사실에 기인한다. 즉, 기존의 구현들에서, 워드 프로세서 문서의 XML 마크업(예를 들어, XML 포맷으로 표현된 고객 송장의 세부사항)과 문서 표면(surface)상의 그 프레젠테이션(예를 들어, 플레인 텍스트(plain text)의 3 개의 문단들에 이어 특정 표 스타일의 4행 5열을 갖는 표가 옴) 간에 불변의 링크가 있다. 그러므로, 종래의 워 드 프로세서 애플리케이션들에 표현된 XML 데이터(그것이 프레젠테이션에 묶여 있으므로)는 문서의 내용과 정확하게 일치해야 한다. 예를 들어, 송장을 위한 XML 스키마가 <date>가 <address> 전에 오고, 그 다음 <phoneNumber>가 오는 것으로 기재되면, 이들 3 개의 XML 구성요소들은 문서에서 표현된 바와 같이 정확히 그 순서로 나타나야만 한다. 이것은 프레젠테이션 포맷이 변경되면(예를 들어, <date>를 포함하는 것 주위에서 표의 행을 이동하는 것), 그 문서에 포함된 XML 데이터의 구조 역시 변경되고, 이 데이터가 관련된 XML 스키마의 구조를 따른다는 것을 보장하기 위해 솔루션 개발자 측에 여분의 단계들을 요구한다는 것을 의미한다. 그러므로, 문서의 최종 사용자는 프레젠테이션을 자유롭게 조작하는 자유를 가질 수 없는데, 그 이유는 그렇게 하는 것이 데이터의 시맨틱을 반드시 변경하고 아마도 그 데이터에 대한 XML 스키마를 위배할 것이기 때문이다.
또한, 종래의 워드 프로세서 애플리케이션들 위에 개발된 솔루션들은 백엔드 애플리케이션을 위한 문서로부터 데이터를 읽고/쓰는 시도를 할 때 프레젠테이션의 내포사항(implications)을 더 신중하게 고려할 필요가 있다. 그래서, 굵은 글씨체 텍스트의 문단이 타이틀로서 태그되면, 종래의 워드 프로세서 애플리케이션들에 의해 저장된 결과 XML은 다음과 같을 것이다:
Figure 112005076565918-PAT00001
위에서 보여진 바와 같이, 맞춤 XML 태깅은 종래의 워드 프로세서 애플리케이션에 매우 특정한 XML 태그들 -이 예에서, w:p:, w:r: 등- 에 의해 양쪽이 둘러싸여 있다. 이것은, 이 데이터를 처리하는 XML-인식 솔루션이 자기 자신의 데이터 포맷(<title> 구성요소를 포함하는 것)만을 이해해서는 안 되고 종래의 워드 프로세서 애플리케이션 포맷의 정확한 세부사항을 또한 이해해서, 그것이 자기 자신의 데이터를 탐색할 때 그 정보를 트래버스(traverse)하는 것과 무시하는 것을 안다는 것을 의미한다. 따라서, 이러한 종류의 구현은 여전히 사용자에게 일부 요구사항을 부가하는데, 그 이유는 문서 텍스트의 외관의 작은 변경들(예를 들어, <title> 구성요소의 내용을 표 셀(cell)로 드래깅하는 것 등)이 둘러싸고 있는 워드 프로세서의 고유의 태그들 내의 맞춤 XML 태그들의 위치에 상당한 변화를 일으킬 수 있기 때문이다. 그러므로, 프로그래머/코드 개발자는 종종, 종래의 워드 프로세서 애플리케이션들이 프레젠테이션에 기초하여 맞춤 XML 구성요소들을 어디에 놓을 것인지를 예상하고 이해하고, 모든 다양한 순열들을 취급하기 위해 추가 코드를 작성할 필요가 있다. 이것은 결과 솔루션이 종래의 특정 워드 프로세서 애플리케이션의 요구를 처리하기 위해서는 중요한 논리 코드를 여전히 포함할 필요가 있을 것임을 의미한다.
종래의 워드 프로세서 애플리케이션으로 작업하는 프로그래머/코드 개발자는 동작들을 판독하고 작성할 때 문서의 레이아웃 포맷의 내포사항을 또한 고려할 필요가 있다. 예를 들어, 사용자는 <StockSymbol> 구성요소의 값을 얻고 그것을 사용하여 사용자가 회사 보고서를 작성하는 것에 대한 하나의 단순 개선사항으로서 동일 문서의 <CompanyName> 구성요소에 회사의 전체 이름을 두고자 할 것이다. 문서의 무결성을 관리하기 위해, 문서로부터 원하는 데이터의 판독과 작성 모두에서, 사용자는 이들 액션들을 수행할 함수 코드를 작성하기 전에 문서의 현재 레이아웃 포맷을 고려할 필요가 있다. 예를 들어, 사용자는 그들이 작성하고 있는 값이 표 셀, 목록 리스트 등에 있는지를 알 필요가 있는데, 이것은 문서에 삽입될 때 원하는 결과를 생성할 종래의 워드 프로세서 애플리케이션의 포맷팅 정보를 구성하기 위해서이다. 이것은 워드 프로세서 애플리케이션의 프레젠테이션 시맨틱을 이해하기 위한 추가 코딩에 대한 다른 잠재적 이유이다.
종래의 워드 프로세서 애플리케이션들의 다른 또 제한사항은 XML 구성요소들의 편집 동작들이 때때로 "깨어지기 쉬운(fragile)" 것으로서 인지될 수 있다는 점이다. 이것은 부분적으로는, 위에서 논의된 바와 같이, 문서 표면의 태그들의 위치가 사용자 정의된 스키마에 기초하여 XML 데이터의 구조를 결정한다는 사실에 의해 그들이 제한되기 때문이다. 따라서, 다수의 논쟁점들이 발생할 수 있다. 첫 번째로, 통상적인 사용자 동작들(예를 들어, 한 개의 섹션에서 다른 섹션으로 복사하기/붙이기)은 XML 구조를 변경할 수 있고, 관련된 XML 스키마에 따라 문서를 무 효화할 수 있다. 두 번째로, 이러한 워드 프로세서 구현에서 고객-정의 XML 스키마에 의해 요구되는 모든 구성요소들은 문서 표면에 임의의 형태로 포함될 필요가 있다. 이것은, 개발자들이 문서 표면에 디스플레이되지는 않지만, 메타데이터로서 추가의 역할을 하는 문서에 대한 추가 정보를 전달하는 방법으로서 관련된 XML 데이터를 생성하는 것이 어려울 수 있다는 것을 의미한다. 또한, 세 번째로, 문서 표면에 시맨틱에서 불필요한 구성요소들(예를 들어, 혼합된 내용을 표시하지 않는 비리프(non-leaf) 구성요소들)은 그러한 워드 프로세서 구현들에 또한 포함되어, XML 데이터를 수정하는 일반 사용자 동작들의 능력을 더 증대시킬 필요가 있다.
많은 경우에서, XML 데이터를 정의하는 스키마(예를 들어, 메모 문서를 포함하는 데이터)는 복수의 이종(heterogeneous) 처리 시스템들 간의 이 데이터의 통신을 용이하도록 하기 위해 단일 표준 본문(body)에 의해 엄격히 정의되는 경향이 있다. 그러나, 그렇게 백엔드 통신을 용이하게 하는 것에서, 종종 문서 데이터의 인간 판독성과 편집성이 희생되어, 이것은 사용자가 이 데이터를 이해하고 파스(parse)하는 것을 어렵게 한다. 예를 들어, XML 표준은, dd-mm-yyyyThh:mm:ss.ssss와 같은, 날짜에 대한 표준 포맷을 정의할 것이다. XML-인식 애플리케이션들에 의해 파싱될 수 있도록 모든 날짜들은 이 포맷으로 표현되도록 요구된다. 명백히, 이 포맷은 사용자가 정확히 입력하는 것이 어렵고, 종종 사용자가 통상적으로 날짜들을 입력하는 방식(즉, 많은 지역들이 통상적으로 dd-mm-yyyy 대신에 mm-dd-yyyy를 사용함 등)과 충돌한다.
그러므로, 개발자들이 워드 프로세서 애플리케이션과 같은 응용 프로그램에 서 XML 데이터와 이러한 데이터의 프레젠테이션을 분리하는 것을 가능하게 하는 방법이 요구된다.
본 발명의 실시예들은, 데이터와 프레젠테이션이 분리될 수 있는 워드 프로세서 문서들을 생성하는 워드 프로세서 애플리케이션을 제공한다. 더 구체적으로, 워드 프로세서 문서의 프레젠테이션 포맷과 분리된 위치에 저장되는 데이터는 워드 프로세서 문서에 입력되고 추출될 수 있다. 본 발명의 실시예들에 따라, 워드 프로세서 애플리케이션의 사용자들은 워드 프로세서 문서 데이터를 위한 별도의 저장 장소를 생성하고, 그 데이터의 내용과 프레젠테이션 표면 간에 링크(또는 바인딩)를 확립할 수 있다. 워드 프로세싱 애플리케이션의 사용자는, 계속해서 변경될 수 있는 프레젠테이션 포맷의 복잡성을 다룰 필요 없이, 링크된 데이터를 직접 변경함으로써 워드 프로세서 문서의 프레젠테이션의 내용을 수정할 수 있다. 뷰/프레젠테이션과 데이터를 분리시킴으로써 사용자는 계속해서 자유 형태로 문서를 편집할 수 있고, 데이터가 공지된 단일 구조적 포맷의 영속 파일 포맷으로 표현되도록 한다. 외부의 프로세스를 사용하여 워드 프로세서 문서의 내용을 수정할 때, 사용자는 프레젠테이션 표면 또는 포맷의 현재 레이아웃에 대한 어떠한 지식도 없이, 워드 프로세서 파일 내에 저장된 별도의 XML 데이터 일부를 편집할 수 있다. 이들 링크(또는 바인딩)는 또한 프레젠테이션 표면의 구조에 대한 변경이 XML 데이터 구조를 결정하지 않도록, 그리고 반대로 XML 데이터의 구조에 대한 변경이 워드 프로세서 문서의 프레젠테이션 표면의 레이아웃을 결정하지 않도록 생성되며, 이들 링 크는 반대로 문서 내용에 영향을 주지 않고 생성되거나 또는 분해될 수 있다. 본 발명의 실시예는 워드 프로세서 문서의 구조화된 데이터의 추가, 편집 및 추출을 단순화하고자 한다.
본 발명의 실시예에 따르면, 워드 프로세서 문서는 텍스트의 특정 영역에 대해 시맨틱으로 태그될 수 있지만, 관련 데이터는 이제 문서 내의 별도의 XML 데이터 파일에 저장된다. 데이터는 데이터 바인딩을 이용하여 문서의 텍스트 범위, 즉 태그된 영역에 링크된다. 따라서, 데이터 바인딩이 문서의 프레젠테이션 표면의 어디에 그 내용을 두는가 또는 그 데이터가 어떻게 프레젠테이션되는가에 상관없이, 데이터는 자기 고유의 XML 데이터 파일의 일관된 장소("데이터 저장소")에 이제 저장될 수 있다. 따라서, 사용자는 문서에서 데이터가 이동되고/변경되고/삭제되고 등에 대해 걱정할 필요가 없는데, 그 이유는 그 데이터에 대한 XML 구조가 일관된 장소의 맞춤 XML 내에 위치하고, 이것은 프레젠테이션 표면에 대한 변경에 의해 영향을 받지 않기 때문이다. 또한, 본 발명의 실시예는 워드 프로세서 애플리케이션에 프로그래밍 인터페이스를 제공한다. 사용자는 프로그래밍 인터페이스를 이용하여 데이터 저장소 또는 문서의 하나 이상의 영역에서의 변경에 대해 반응하는 코드를 개발할 수 있다.
명세서와 청구범위를 통해, 다음 용어들은, 컨텍스트가 명백히 달리 지시하지 않는 한, 본 명세서에 명백히 관련된 의미를 갖는다.
"데이터"라는 용어는 워드 프로세서 문서에 의해 전달되는, 참조되는, 또는 사용되는 임의의 보충 정보를 일컫는다. 이 정보는 종종 크고, 그 전체가 문서의 프레젠테이션 층에 나타나지 않을 것이다.
"마크업 언어" 또는 "ML"이라는 용어들은 어떻게 문서의 부분들이 애플리케이션에 의해 해석되어야 하는지를 명시하는 문서 내의 특별 코드들에 대한 언어를 일컫는다. 워드 프로세서 파일에서, 마크업 언어는 어떻게 텍스트가 포맷화되거나 또는 놓여지는지를 명시한다.
"구성요소(element)"라는 용어는 XML 문서의 기본 단위를 일컫는다. 구성요소는 XML 문서를 위한 속성, 다른 구성요소, 텍스트 및 다른 컨텐트 영역을 포함할 수 있다.
"프레젠테이션"이라는 용어는 문서의 가시적 부분을 일컫는다 -문서가 인쇄되면 나타나는 텍스트와 레이아웃.
"태그"라는 용어는 XML 문서 내에 구성요소들을 기술하는 문서에 삽입되는 문자를 일컫는다. 각 구성요소는 2 개를 초과한 태그들을 가질 수 없다: 시작 태그와 종료 태그. 한 개의 태그가 허용되는 빈 구성요소(내용이 없음)를 갖는 것이 가능하다.
태그들 간의 XML 내용은 구성요소들의 "자식들"(또는 후손들)로서 고려된다. 그러므로, 구성요소의 내용에 내장된 다른 구성요소들은 "자식 구성요소들" 또는 "자식 노드들" 또는 구성요소로서 불리운다. 구성요소의 내용에 직접적으로 내장된 텍스트는 그 구성요소의 "자식 텍스트 노드들"로서 고려된다. 함께, 자식 구성요소들과 구성요소 내의 텍스트는 그 구성요소의 "내용"을 구성한다.
"속성"이라는 용어는 특정 값에 설정되고 구성요소와 관련된 추가 특성을 일컫는다. 구성요소들은, 0을 포함하여, 그들과 관련된 임의의 수의 속성 설정들을 가질 것이다. 속성들은 추가 구성요소들을 포함하지 않거나, 또는 텍스트 노드로서 취급되는 구성요소와 추가 정보를 연관시키기 위해 사용된다.
"컨텐트 영역"이라는 용어는 사용자에 의해 입력된 내용의 유형을 위한 컨테이너로서 역할을 하는 문서의 바인드된 및/또는 선택적으로 레이블된 영역을 일컫는다. 본 양수인에 의하며, 2004년 9월 30일자로 출원되고, 미국특허출원번호 제10/955,612호인 "전자 문서의 특정 유형들의 내용을 관리하는 방법, 시스템 및 컴퓨터-판독가능 매체(Methods, System, and Computer-Readable Medium For Managing Specific Types of Content In An Electronic Document)"를 참조하고, 그 전체 내용이 본 명세서에 참조로서 포함된다.
"XPath"는 XML 문서에서 노드들을 식별하기 위해 패턴 표현식을 사용하는 연산자이다. XPath 패턴은 XML 문서를 통해 경로를 기재하는 자식 구성요소 이름들의 슬래시-구분된 리스트이다. 패턴은 경로와 매치하는 구성요소들을 "선택"한다.
"XML 데이터 저장소"라는 용어는 파일이 열린 동안 워드 프로세서 문서에 저장되는 데이터의 저장과 수정(예를 들어, XML 포맷으로)을 위한 액세스를 제공하는 워드 프로세서 문서 내의 컨테이너를 일컫는다.
"데이터 바인딩"이라는 용어는 컨텐트 영역의 내용이 저장될 수 있는 워드 프로세서 문서 내의 XML 데이터의 한 개 이상의 부분들에서 XPath 위치를 결정하는 컨텐트 영역에 대한 특성을 일컫는다. 본 명세서에 사용되는 바와 같이:
"ref" - 개별 바인딩들에 의해 사용되는 바운딩된 각 XML 문서에 대한 고유 정수를 일컫는다;
"ID" - XML 데이터 저장소 내의 특정 XML 데이터를 명시하는 고유의 ID를 일컫는다;
"selectionNamespaces" - XML 데이터 저장소의 관련된 XML 문서를 위한 접두어 매핑들(네임스페이스와 짧은 약어를 연관시킴)을 일컫는다; 및
"rootURI" - XML 데이터 저장소의 관련된 XML 문서의 루트 네임스페이스를 일컫는다.
<설명적 운영 환경>
본 발명의 실시예들은 XML 데이터와 프레젠테이션의 저장이 분리될 수 있는 워드 프로세서 문서들을 생성하는 워드 프로세서 애플리케이션을 제공한다. 더 구체적으로, 워드 프로세서 문서에 입력되고 추출될 수 있는 데이터는 워드 프로세서 문서의 프레젠테이션 포맷으로부터 분리된 위치에 저장된다. 따라서, 워드 프로세서 애플리케이션의 사용자들은 워드 프로세서 문서 내에 포함된 XML 데이터를 위한 분리된 저장 위치를 생성할 수 있고, 그 데이터의 내용과 프레젠테이션 표면 간의 링크들(바인딩들)을 확립하여, 사용자가 프레젠테이션의 내용을 편집하여 관련된 XML 데이터를 편집하도록 하지만, 동일한 토큰에 의해, 사용자가 관련된 XML 데이터의 구조를 변경하는 것을 방지할 수 있다. 예를 들어, 송장을 위한 데이터는 워드 프로세서 파일 포맷으로 XML로서 분리되어 저장될 수 있어서, 문서에서 링트들의 위치들 주위를 이동하는 것은 분리된 데이터 저장소의 구조를 변경하지 않는다. 그러므로, 데이터는 이제 사용자가 문서를 편집하는 방식에 의해 영향받지 않는 알려진 구조를 가지므로, 이 구조화된 데이터의 백엔드 프로세싱은 쉬워진다. 사용자는 워드 프로세서 문서에서 데이터를 편집하고, 풍부한 프레젠테이션 포맷을 포함하여, 데이터를 포맷할 수 있고, 텍스트 내용으로의 변경들만이 문서 뒤에 저장된 XML 데이터로 다시 '푸쉬(pushed)'된다. 본 발명에 따르면, 그러나, 워드 프로세서 문서와의 사용자 인터랙션을 통해 행해진 업데이트되는 모든 데이터는 XML의 원래 자연 스트림에 이용가능하다. 그러므로, 본 발명은 또한, 계속하여 변경될 수 있는, 데이터의 프레젠테이션 포맷의 복잡성을 다루어야 할 필요없이 링크된 XML 데이터를 직접적으로 변경하여 워드 프로세서 문서의 내용의 수정을 가능하게 한다. 그렇게 하여, 그것은 워드 프로세서 문서에서 구조화된 데이터의 추가, 편집 및 추출을 크게 단순화한다.
도 1을 참조해보면, 본 발명을 구현하는 시스템의 일 예는, 컴퓨팅 장치(100)와 같은, 컴퓨팅 장치를 포함한다. 가장 기본 구성에서, 컴퓨팅 장치(100)는 통상적으로 적어도 한 개의 처리 장치(102)와 시스템 메모리(104)를 포함한다. 컴퓨팅 장치의 정확한 구성과 유형에 따라, 시스템 메모리(104)는 휘발성(RAM과 같은), 비휘발성(ROM, 플래쉬 메모리 등과 같은), 또는 그 둘의 어떤 조합일 수 있다. 시스템 메모리(104)는 통상적으로 운영 체제(105), 한 개 이상의 애플리케이션들(106) 및 프로그램 데이터(107)를 포함한다. 일 실시예에서, 애플리케이션(106)은 워드 프로세서 애플리케이션(120)을 포함할 수 있다. 이 기본 구성은 점선(108) 내의 이들 컴포넌트들에 의해 도 1에 도시된다.
컴퓨팅 장치(100)는 추가 특징들이나 기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(100)는 또한, 예를 들어, 자기 디스크, 광 디스크, 또는 테이프와 같은 추가 데이터 저장 장치들(분리형 및/또는 비분리형)을 포함할 수 있다. 그런 추가적 저장 장치는 분리형 저장 장치(109)와 비분리형 저장 장치(110)에 의해 도 1에 도시된다. 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 기타 데이터와 같은, 정보 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성과 비휘발성, 분리형과 비분리형 매체를 포함할 수 있다. 시스템 메모리(104), 분리형 저장 장치(109) 및 비분리형 저장 장치(110)는 컴퓨터 저장 매체의 모든 예들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리나 다른 메모리 기술, CD-ROM, DVD(digital versatile disks)나 다른 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치나 다른 자기 저장 장치, 또는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨팅 장치(100)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 제한되지는 않는다. 임의의 그런 컴퓨터 저장 매체는 장치(100)의 일부일 수 있다. 컴퓨팅 장치(100)는 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(들)(112)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(114)가 또한 포함될 수 있다. 이들 장치들은 이 분야에서 잘 알려져 있고, 본 명세서에서 장황하게 논의될 필요는 없다.
컴퓨팅 장치(100)는 또한, 통신망을 통해서와 같이, 장치가 다른 컴퓨팅 장치들(118)과 통신하도록 하는 통신 접속들(116)을 포함할 수 있다. 통신 접속 (116)은 통신 매체의 일 예이다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파나 다른 전송 메카니즘과 같은, 변조 데이터 신호의 다른 데이터에 의해 구현될 수 있고, 임의의 정보 전달 매체를 포함한다. "변조 데이터 신호"라는 용어는 신호에 정보를 인코딩하는 방식에서 그것의 한 개 이상의 특성들이 설정되거나 변경되는 신호를 의미한다. 예를 들어, 하지만 이에 제한되지는 않고, 통신 매체는 유선 통신망이나 직접 유선 접속과 같은 유선 매체 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 본 명세서에 사용되는 바와 같이 컴퓨터 판독가능 매체라는 용어는 저장 매체와 통신 매체 모두를 포함한다.
워싱톤주, 레드몬드시의 마이크로소프트사의 WINDOWS XP 운영 체제와 같은, 통신망된 개인용 컴퓨터의 동작을 제어하기에 적절한 운영 체제(105)를 포함하는, 다수의 프로그램 모듈들과 데이터 파일들은 컴퓨팅 장치(100)의 시스템 메모리(104)에 저장될 수 있다. 시스템 메모리(104)는 또한, 워드 프로세서 애플리케이션(120)과 같은, 한 개 이상의 프로그램 모듈들과 아래에 기재된 다른 것들을 저장할 수 있다. 워드 프로세서 애플리케이션(120)은 전자 문서들을 생성, 편집 및 프로세싱을 하는 기능을 제공하기 위해 동작한다.
본 발명의 일 실시예에 따라, 워드 프로세서 애플리케이션(120)은 마이크로소프트사의 WORD 프로그램을 포함한다. 그러나, 다른 제조자들로부터의 워드 프로세서 애플리케이션들이 본 발명의 다양한 양태들을 구현하기 위해 사용될 수 있음을 이해해야 한다. 또한, 본 발명의 다양한 양태들이 워드 프로세서 애플리케이션 들에 제한되지 않고, 또한 스프레드쉬트 애플리케이션, 데이터베이스 애플리케이션, 프레젠테이션 애플리케이션, 드로잉, 또는 CAD(computer-aided application) 프로그램 등과 같은, 다양한 형태들의 내용(예를 들어, 텍스트, 이미지, 픽춰 등)를 프로세싱할 수 있는 다른 애플리케이션들(106)을 사용할 수 있음을 더 이해해야 한다.
본 발명의 실시예들은 컴퓨터 프로세스, 컴퓨팅 시스템, 또는 컴퓨터 프로그램 제품이나 컴퓨터 판독가능 매체와 같은 제품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능한 컴퓨터 저장 매체일 수 있고, 컴퓨터 프로세스를 실행하는 명령들의 컴퓨터 프로그램을 인코딩할 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨팅 시스템에 의해 판독가능한 반송파의 전파되는 신호일 수 있고, 컴퓨터 프로세스를 실행하는 명령들의 컴퓨터 프로그램을 인코딩할 수 있다.
<워드 프로세서 애플리케이션에서 데이터 바인딩>
도 2는 본 발명의 실시예들을 실시하는 환경의 예를 설명하는 블록도이다. 도 2에 도시된 환경의 예는 워드 프로세서 애플리케이션(202), 워드 프로세서 문서(204), 프로그래밍 환경(206), 데이터 저장소(208), 스키마 파일(210) 및 XML 프로세싱 모듈(212)을 포함하는 워드 프로세서 환경(200)이다. 그러나, 위에서 기재된 바와 같이, 본 발명은 또한, 스프레드쉬트 애플리케이션, 데이터베이스 애플리케이션, 프레젠테이션 애플리케이션, 드로잉이나 CAD 프로그램 및 기타와 같은, 여러 형태들의 내용(예를 들어, 텍스트, 이미지, 픽춰 등)를 프로세싱할 수 있는 다른 애플리케이션들(106)에 적용가능하다. 프로그래밍 모듈(206)은, 문서(204)의 내용 또는 XML 데이터 저장소(208)의 내용을 수정하는 코드의 개발을 허용하는, XML 프로세싱 모듈(212)을 위한 단순한 API(application programming interface)를 제공할 수 있다. 본 발명은 본 명세서에 기재되는 임의의 특정 실시예들이나 예들에 의해 제한되도록 의도되지 않음을 이해할 것이다. 예를 들어, 워드 프로세서 환경은 복수의 워드 프로세서 문서들(204), 데이터 저장소들(208) 및/또는 스키마 파일들(210)을 포함할 수 있다. 본 발명의 일 실시예에 따라, XML 프로세싱 모듈(212)은 확장가능 마크업 언어에 따라 포맷된 데이터를 프로세싱하는 워드 프로세서 애플리케이션(202)에 의해 사용된다. 적절한 XML 프로세싱 모듈(212)은 워싱톤주, 레드몬드시의 마이크로소프트사에 의해 제조되고 시판되는 MSXML이다.
워드 프로세서 애플리케이션(202)은, 워드 프로세서 애플리케이션(202)과 관련된 문서(들)(204)와 사용하기 위해 정의되는, 그것 자신의 네임스페이스나 네임스페이스들 및 스키마(210)나 스키마들의 집합을 포함한다. 워드 프로세서 애플리케이션(202)을 위한 스키마(210)에 의해 정의되는 태그들과 속성들의 집합은 문서(204)의 포맷을 정의한다. 아래에 기재된 바와 같이, 본 발명의 실시예들에 따라, 데이터 저장소(208)는 데이터(209)를 포함할 수 있다. 스키마(210)는 데이터 저장소(208) 내의 데이터(209)에 부착되는 것이 선호된다. 워드 프로세서 문서(204)는 또한, 아래에 기재된 바와 같이, 사용자에 의해 생성되는 컨텐트 영역들(207)을 포함한다. 한 개 이상의 데이터 저장소(208), 관련된 XML 데이터(209) 및 스키마(210)는 워드 프로세서 애플리케이션(202)의 일부로서 포함될 수 있다. 주어진 XML 데이터(209)에 포함될 수 있는 데이터의 유형들과 구조를 지배하는 문법과 데이터 유형 규칙들의 집합을 XML 데이터(209)에 제공하기 위해, 한 개 이상의 XML 스키마(210)는 사용자가 주어진 XML 데이터(209)에 주석을 달 수 있는 XML 구성요소들과 태그들의 각각을 지배하는 규칙들을 제공하는 XML 데이터(209)와 연관될 수 있다. 스키마(210)는 이들 구성요소들이 XML 데이터(209)에 적용될 수 있는 순서를 지배하는 규칙들 및 XML 데이터(209)에 적용되는 개별 구성요소들과 관련되는 특정 규칙들을 포함한다.
본 발명의 실시예들은 데이터와 프레젠테이션이 워드 프로세서 문서가 저장된 분리된 데이터 저장소(208)의 존재를 통해 분리될 수 있는 워드 프로세서 문서들(204)을 생성하기 위해 동작가능한 워드 프로세서 애플리케이션(202)을 제공한다. 더 구체적으로, 워드 프로세서 문서(204)에 입력하고 추출될 수 있는 데이터가 문서의 데이터 저장소(208) 내의 한 개 이상의 XML 데이터(209) 파일들에 저장되어, 워드 프로세서 문서(204)의 프레젠테이션 포맷으로부터 데이터를 분리한다. 따라서, 워드 프로세서 애플리케이션(202)의 사용자들은 워드 프로세서 문서(204)의 데이터를 위한 분리된 저장 위치를 생성할 수 있고, 데이터의 내용과 프레젠테이션 표면(203) 간에, 한 개 이상의 컨텐트 영역들(207)과 관련된 링크들(또는 바인딩들)(205)을 확립할 수 있지만, 동일 토큰으로, 사용자가 데이터(209)의 구조를 변경하는 것을 막을 수 있다. 문서(204)의 컨텐트 영역들(207)의 위치들 주위를 이동하는 것은 분리된 데이터 저장소(208)의 XML 데이터(209)의 구조를 변경시키지 않는다. 더욱이, 데이터 프레젠테이션, 굵은체, 이탤릭체, 정렬맞춤 (justification) 등에 행해진 변경들은 데이터 구조에 영향을 미치지 않는다. 그러므로, 사용자가 문서(204)를 편집하는 방식에 의해 영향을 받지 않는 알려진 구조에 XML 데이터(209)가 대응하므로, 구조화된 데이터의 백엔드 프로세싱은 단순화된다.
본 발명의 실시예들은, 계속하여 변할 수 있는, 프레젠테이션 포맷의 복잡성을 취급할 필요없이 링크된 데이터를 직접 변경하여 워드 프로세서 문서(204)의 내용의 수정을 가능하게 한다. 그렇게 하는 것에서, 그것은 워드 프로세서 문서(204)의 구조화된 데이터의 추가, 편집 및 추출을 크게 단순화한다. 더욱이, 구조화된 XML 데이터(209)에 바인드된 데이터 바인딩들(205)은 데이터 구조에 영향을 미치지 않고 문서(204)에서 이동될 수 있다. 컨텐트 영역들(207)의 데이터 바인딩들(205)은, 사용자 인터페이스나 프로그래밍 윈도우(206)를 통해 정의될 수 있는, XPath 표현을 사용하여 가동되는 것이 선호된다.
사용자는 문서 컨텐트 영역이 바인드되어야 하는 원하는 XML 노드(213)를 독특하게 식별하기 위해 XPath 표현(XML 트리에서 노드(213)를 식별하는 표준 XML 방법)을 사용한다. 워드 프로세서 애플리케이션(202)은 XPath를 자동으로 파싱하고 사용하여 데이터 바인딩 영역을 위한 원하는 타겟의 위치를 파악하기 위해 동작한다. 이것은 또한 XPath 표준에 익숙한 개발자들이 XML의 이 사용법으로 특성적으로 반-동적인(semi-dynamic) 데이터 바인딩들(205)을 생성할 수 있음을 의미한다. 즉, 데이터(209)의 다른 변경들 또는 프레젠테이션(203)의 변경들에 기초하여 다른 타겟 노드(213)를 식별하는 것이다. 예를 들어, 사용자가 주어진 시간에 가장 많 은 판매를 완료한 피고용인의 이름을 디스플레이하기를 원한다고 가정하자. 이 정보가 문서(204)와 관련된 XML 데이터(209)에 있으면, 사용자는 그 개인의 이름과 완료된 명세의 가장 높은 수를 링크하는 XPath 표현을 생성할 수 있고, 데이터가 변함에 따라 그 링크는 자동으로 적절한 위치(노드 213)로 이동한다. 링크는 또한 코드(211), 사용자 인터페이스, 또는 프로그래밍 환경(206)의 사용을 통해 노드들(213) 간에 변경될 수 있다.
다른 경우에, 사용자는 문서 컨텐트 영역(207)이 바인드될 수 있는 데이터(209)의 노드(213)를 나타내는 객체를 독특하게 식별하는 데이터 바인딩을 생성할 수 있다. 워드 프로세서 애플리케이션(202)은 자동으로 XPath를 결정하여 데이터 바인딩 영역을 위한 원하는 타겟의 위치를 파악하기 위해 동작한다. 그러나, 이것은, 이 경우, 동일 XPath 표현에 반하여, 데이터 바인딩(205)이 그것의 XPath를 자동으로 업데이트되도록 하여, 데이터 바인딩(205)이 동일 객체를 가리키도록 확실히 함을 의미한다.
위에서 간략하게 기재된 바와 같이, 프로그래밍 코드(211)는 XML 프로세싱 모듈(212)을 사용하여 어느 한 방향으로(즉, 문서 표면(203)의 컨텐트 영역(207)으로부터 데이터 저장소(208)의 XML 데이터(209)의 노드(213)로 및 그 반대로) 이동하는 변경들에 반응하기 위해 개발될 수 있다. 사용자는 문서 표면(203)과 데이터 저장소(208) 내의 특정 내용 간의 관계들을 정의하는 코드(211)를 개발할 수 있다. 더욱이, 문서(204)의 바인드된 영역 내의 또는 데이터 저장소(208), 트래핑, 또는, 편집, 추가, 삭제 등과 같은, 인터셉팅 이벤트들 내의 변경들에 반응하는 코드 (211)가 개발될 수 있다. 예를 들어, 사용자가 한 개를 초과한 문서가 특정 타이틀을 사용할 수 없음을 확실히 하기를 원한다고 가정하자. 무엇이 타이틀 노드로 입력되었는지에 기초하여, 코드(211)는 타이틀이 이미 사용되고 있는지에 대해 중앙 데이터베이스에 대해 검사를 할 것이다. 타이틀이 이미 사용되고 있으면, 코드(211)는 사용자에게 다른 타이틀을 입력하도록 프롬프트하고 및/또는 사용자에게 그 타이틀이 이용가능하지 않음을 알릴(alert) 수 있다. 본 발명의 실시예들은 사용자가 관련된 XML으로 한 번 코드(211)를 작성하도록 하고, 코드는 이제 타겟 애플리케이션의 정확한 시맨틱에 대해 걱정하지 않고 XML 구성자들의 사용을 지원하는 모든 문서 유형들로 이동가능하여, 애플리케이션 개발을 크게 단순화하고 능률화한다.
본 발명의 실시예들에 따라, 워드 프로세서 문서(204)는 텍스트의 특정 영역들(예를 들어, 타이틀, 본문 등)에 대한 시맨틱을 나타내는 컨텐트 영역들(207)로 태그될 수 있고, 데이터 바인딩(205)을 추가하여, 그 컨텐트 영역(207) 내의 관련된 텍스트는 이제 문서(204) 내의 데이터 저장소(208)의 어떤 XML 데이터(209) 내의 노드(213)에 저장된다. 데이터(209)는, 한 개 이상의 데이터 바인딩들(205)을 사용하여, 예를 들어, 태그된 영역들과 같은, 문서에서 컨텐트 영역(207)에 링크된다. 따라서, 데이터 바인딩(205)이 프레젠테이션(203)(즉, 문서(204)의 특정 문서(특정 사용자 문서를 나타내는 WORD 윈도우)를 편집할 때 사용자가 상호작용하는 디지털 프레젠테이션)의 관련 내용을 어디에 두는가 또는 그 데이터(209)가 어떻게 프레젠테이션되는가에 상관없이, 데이터(209)는 이제 자신의 XML 스트림에서 일관 된 위치("데이터 저장소")에 저장될 수 있다. 그러므로, XML 데이터(209)가 이제 데이터 저장소(208) 내의 일관된 위치에 놓여지므로, 사용자는 문서(204)에서 데이터가 이동되는 것에 대해 걱정할 필요가 없다. 더욱이, 데이터 저장소(208)는 문서(204) 내의 데이터 바인딩(205)에 의해 참조되지 않는 데이터(209)를 포함할 수 있다. 메타데이터 등과 같은, "여분의(extra)" 데이터는, 문서 사용자에게 무관할 수 있는, 솔루션 개발자와 같은, 사용자들에게 추가 정보를 제공한다.
본 발명의 실시예들에 따라, 데이터의 구조는, 문서들의 데이터 저장소들(208) 내의 XML 데이터(209)의 한 개 이상의 부분들에, 분리된 위치에 유지되어, 데이터 구조에 영향을 미치지 않고, 프레젠테이션(203)의 링크들(즉, 데이터 바인딩들(205)) 주위로 사용자가 이동하도록 한다. 따라서, XML 데이터(209)의 구조는 변경되지 않고, 단지 워드 프로세서 문서(204)와 관련된 XML 데이터(209)의 프레젠테이션만이 변경된다. 그러므로, 문서(204)의 데이터 프레젠테이션의 포맷을 변경시키는 것은 데이터 저장소(208)의 구조에 영향을 미치지 않는다. 사용자는 문서 표면(203)을 조작하여 실제 데이터(209)를 이동하지 않으므로, 저장소(208)에 분리되어 관리되는, 데이터(209)로의 분기를 염려할 필요가 없이 프레젠테이션에 대해 사용자가 완전 제어를 가진다. 그러므로, 본 발명의 실시예들은 프레젠테이션 정보로부터 분리된 맞춤 XML 정보를 사용자가 액세스하도록 한다.
본 명세서에서 XML 데이터(209)라고 불리는 데이터 소스의 내용(데이터 저장소(208)의 XML 데이터(209))를 문서(204)의 위치에 "바인드"하기 위해 하나 이상의 데이터 바인딩(205)이 사용될 수 있다. 본 명세서에 사용되는 바와 같이, XML 데 이터(209)는 텍스트(플레인 텍스트 또는 RFT(richly formatted text)), 이미지, 특정 유형(날짜)의 켄텐츠 등과 같은 임의의 유형의 내용을 포함한다. 데이터 바인딩(205)의 구조는, 문서(204)와 관련된 XML 데이터 저장소(208)의 XML 노드들(213)로의 링크들에 워드 프로세서 애플리케이션(202)이 접속/동기화/지속하도록 하는, XPath 링크로서 기재될 수 있다. XML 데이터 저장소(208)는 문서(204)의 일부일 것이 가장 선호된다(즉, 저장소(208)는 워드 프로세서 파일에 저장되고, 특정 문서(204)로 이동하거나 관련됨). 데이터 바인딩(205)은 또한 어떻게 데이터(209)가 프레젠테이션(예를 들어, 워드 프로세서의 문서 표면(203))과 데이터 저장소(208) 간에 변환되어야 하는지를 제어하기 위한 정보를 포함할 수 있다. 워드 프로세서 애플리케이션(202)의 사용자는 데이터(209)(백엔드 애플리케이션들에 의해 조작되는 데이터)가 데이터 저장소(208)에 표준 포맷으로 저장되도록 할 수 있지만, 친화형 포맷(예를 들어, 사용자가 2004년, 1월 29일을 보지만, 데이터는 29-01-004T12:00:00.0000의 날짜시간 포맷으로 저장됨)으로 워드 프로세서 문서(204)의 동일 정보를 제공할 수 있다. 다른 예로서, 데이터 바인딩 정보는 이미지를 포함할 수 있고, 데이터(209)에, 이 이미지는 보기에 무의미한 문자열로서 표현되지만, 위에서 기재된 동일 변환 원칙은 사용자가 워드 프로세서 문서(204)의 컨텐트 영역(207)의 이미지를 보게 될 것임을 의미한다. 사용자는 이미지를 추가/변경할 수 있고, XML-인코딩된 표현은 XML 데이터(209)에 지속적일 것이어서, 임의의 백엔드 프로세스는 그 정보를 저장/조작할 수 있다.
일 실시예에 따라, 사용자가 컨텐트 영역(207)에 데이터 바인딩 정보(205)를 추가할 때, 사용자는 XPath 표현을 명시하여 관심있는 링크된 XML 데이터(209)를 제공한다(예를 들어, 한 개 이상의 노드들(213)을 식별함). 일단 바인드되면, 이 컨텐트 영역(207)의 내용은 그 XPath에 의해 리턴되는 노드(213)의 내용(XML 데이터)에 링크되거나 바인드될 것이다. 결과적으로, XPath 변경들에 의해 XML 노드(213)가 리턴되는 그런 방식으로 XML 노드(213)가 추가/삭제/변경되면, 문서(204)의 컨텐트 영역(207)의 내용이 자동으로 업데이트함을 의미한다. 다른 경우, 특정 데이터 바인딩(205)에 의해 아무런 노드(213)가 리턴되지 않는 결과를 가져오는 변경이 발생하면, 데이터 바인딩(205)은, 아래에 기재된 바와 같이, '댕글링 참조(dangling reference)' 상태가 된다.
예를 들어, 문서(204)가, 그 문서에 대한 데이터 저장소(208) 내의 어떤 링크된 XML 데이터(209)의 XPath/contract(1)/header(1)/company(1)에 바인드된 플레인 텍스트 컨텐트 영역(207)에 "Microsoft Corporation"가 대응하는(이탤릭으로 보여짐), 다음 문단을 포함함을 가정하자. 프레젠테이션(203)에 디스플레이되는 문단은 다음과 같다:
"Microsoft corporation is located at One Microsoft Way."
일 실시예에서, 프로그래밍 환경(206)에서 코드의 한 개 라인을 명시하여 링크가 설정될 수 있다(예를 들어).
Document.ContentRegions.Add().DataBinding.Add("/contract(1)/header(1)/company(1)")
대응하는 링크된 XML 데이터(209)는 다음과 같을 것이다(작은 따옴표 안에 표현된 노드(213)로의 링크로):
Figure 112005076565918-PAT00002
이제 사용자가 <header>의 제1 자식으로서 새 <company> 노드(213)(작은 따옴표 안의 새 노드(213))를 추가하기 위해 데이터 저장소(208) API를 사용함을 가정하자.
Figure 112005076565918-PAT00003
컨텐트 영역(207)의 결과적 바인딩(205)은 여전히 동일 XPath ("/contract(1)/header(1)/company(1)")에 바인드되어, 문서 내용은 그 노드(213)의 새 내용을 보여주기 위해 즉시 업데이트할 것이다.
"Fabrikam corporation is located at One Microsoft Way."
본 발명에 따라, 워드 프로세서 문서(204)의 한 개 이상의 영역들이 데이터 바인드된 컨텐트 영역들(207)을 포함하면, 문서(204)는 링크된 내용의 어느 한 소스의 변경들에 반응한다. 따라서, 문서(204)의 범위가 바인드된 데이터이면, 관련된 XML 데이터(209)의 XML 노드(213)의 내용을 변경하는 것은 컨텐트 영역(207)의 텍스트로의 자동적 변경의 결과를 가져올 것이다. 따라서, 문서(204)의 범위가 바 인드된 데이터이면, 문서(204)의 그 바인드된 컨텐트 영역(207)의 텍스트를 변경하는 것은 대응하는 XML 데이터(209)의 XML 노드(213)의 내용을 자동적으로 변경하는 결과를 가져온다. 즉, 동일한 바인딩들(205)을 가진 복수의 컨텐트 영역들(207)은 문서(204)의 복수의 위치들에 존재할 수 있다. 예를 들어, 한 개의 이름으로의 데이터 바인딩(205)을 갖는 컨텐트 영역(207)은 문서(204)의 헤더(header) 및 본문에 추가될 수 있다. 이들 위치들 중의 어느 하나를 변경하는 것은 그 텍스트와 XML 데이터 저장소(208)를 동기화하고, 이것은 반면 그 노드(213)로 데이터 바인딩(205)을 갖는 컨텐트 영역(207)이 문서(204)에 존재하는 곳마다 그 변경을 반영할 것이다.
XML 데이터(209)의 XML 노드(213)는 문서(204)와 일-대-다(one-to-many) 관계를 가질 수 있으며, 이것은 XML 데이터(209)의 동일 XML 노드(213)가 복수의 데이터 바인딩들(205)에 의해 참조될 수 있음을 의미한다. 문서(204)의 데이터 바인드된 컨텐트 영역(207)이 업데이트될 때마다, 그것은 XML 데이터(209)의 적절한 XML 노드(213)의 변경을 하도록 하고, 이것은 반면 문서(204)의 다른 컨텐트 영역들(207)의 모든 다른 관련된 바인딩들(205)이 그 새 텍스트로 업데이트되도록 한다. 예를 들어, 문서(204)의 헤더의 컨텐트 영역(207)이 어떤 XML 데이터(209)의 <title/> 노드에 대한 XPath 표현을 명시하는 데이터 바인딩(205)을 포함하고, 문서(204)의 본문의 다른 컨텐트 영역(207)은 또한 그 동일 구성요소에 데이터 바인딩(205)을 포함함을 가정하자. 본 발명에 따라, 그들이 다른 포맷을 가질지라도, 둘 다 모두 동일 내용을 디스플레이할 것이다. 사용자가 문서(204)의 본문의 컨텐 트 영역(207)의 컨텐츠를 편집하면, 그 업데이트는 데이터 저장소(208)의 적절한 XML 데이터(209)의 적절한 XML 노드(213)에 지속적일 것이어서, 또한 그 XML 노드(213)를 명시하는 문서(204)의 관련된 바인딩들(205)을 가진 모든 다른 컨텐트 영역들(207)(예를 들어, 헤더, 풋터(footer) 등)이 업데이트되도록 할 것이다. 본 발명의 실시예들은 데이터 저장소(208)의 한 개의 XML 노드(213)에 문서의 복수의 위치들을 바인딩하는 메카니즘을 제공하여, 이제 한 개의 데이터의 소스에 3 개의 모든 이들 위치들의 컨텐츠를 링크한다. 따라서, XML 데이터(209)의 동일 노드(211)에 링크되는 문서(204)의 모든 컨텐트 영역들(207)의 컨텐츠는 동일하다.
이것의 일 설명적 예는, 사용자가 여러 위치들 -커버 페이지(크고 굵은 텍스트로), 헤더(작은 텍스트로) 및 풋터(작은 이탤릭 텍스트로)- 에 디스플레이되는 타이틀을 보통 가질 것인, 통상적 보고서 문서이다. 보통, 사용자는 각 위치에 타이틀을 타이핑해야 하고, 그 타이틀이 이들 3 개의 위치들 중의 임의의 하나에서 변경되면, 그들은 다른 2 개에서도 그것을 변경할 것을(내용을 일관적으로 유지하기 위해) 기억하는 것을 확실히 할 것이다. 그러나, 이들 3 개의 위치 모두를 동기화시키는 것을 잊기가 너무 쉽다. 본 발명의 일 실시예에 따라, 일단 데이터 저장소(208)가 사용자가 문서(204)에 디스플레이하기를 원하는 XML 데이터(209)를 포함하는 장소에 있으면, 문서의 복수의 위치들(즉, 위에서 논의된 3 개의 위치들)은 모두 데이터 저장소(208)의 한 개의 XML 노드(213)에 바인드된 컨텐트 영역들(207) 데이터일 수 있다.
그러므로, 모든 3 개의 위치들의 내용은 데이터(209)의 한 개의 소스에 링크 되거나 바인드된다. 이것은, 이들 영역들 중의 임의의 것의 내용을 변경하여(예를 들어, 커버 페이지), 사용자는 자동으로 사용자의 텍스트가 기반되는 XML 데이터(209)에 푸쉬되도록 하고, 그 다음 차례로 대응하는 데이터 바인딩들(205)을 갖는 컨텐트 영역들(207)(이 경우, 헤더와 풋터)을 갖는 문서(204)의 다른 위치들로 푸쉬될 것이다. 이것은, 문서와의 그들의 인터랙션 범위에서, 사용자가 내용의 이들 3 개의 범위들을 이제 링크하거나 바인드되여, 그들이 모두 동일하도록 함을 의미한다. 본 발명의 실시예들에 따라, 문서의 영역들은 복수의 방식으로(크고 굵고, 작고 이탤릭, 기타 등등) 제공될 수 있지만, 데이터 저장소(208)의 데이터 구조는 동일하게 남아 있는다.
댕글링 참조들
본 발명의 일 실시예에 따라, 사용자들은 또한 타겟을 갖지 않는 XPath 표현들을 명시할 수 있다 - 그들의 명시된 타겟 XML 노드(213)는 데이터 저장소(208)의 XML 데이터(209)에 존재하지 않는다. 데이터 바인딩(205)은 그것의 원하는 타겟 노드(213)를 '잊지' 않으며, 그 보다 그것은, 그것이 임의의 특정 XML 데이터(209)에 접속되지 않지만 원하는 노드(213)가 후원하는 XML 데이터 저장소(208)의 XML 데이터(209)에 나타나는지를 보기 위해 기다리는, '대기' 상태로 들어간다. 이것은 문서(204)의 각 부분(예를 들어, 표준 커버 페이지, 끝 페이지 및 재사용되는 절들)이 이들 부분들이 한 개의 최종 문서(204)로 어셈블될 때 단지 채워져야만 하는 데이터 바인딩들(205)을 포함할 수 있는, 문서 어셈블리 시나리오들을 위해 특히 유용하다. 이 경우, 문서 생성자는 문서 '부분들'의 각각의 컨텐트 영역들 (207) 내의 데이터 바인딩들(205)을 그 부분에 존재하지 않았던 XML 데이터(209)의 XML 노드들(213)로 명시한다(예를 들어, 커버 페이지는 <Title/> XML 구성요소 및 <Date/> XML 구성요소로 바인딩(205)을 갖는 컨텐트 영역을 포함할 것임). 그 부분이 그것의 타겟 문서의 외부를 뷰잉할 때, 아무런 XML 데이터(209)가 존재하지 않으므로, 이들 바인딩들은 접속되지 않지만, 그 부분이 원하는 데이터(209)를 포함하는 문서에 추가되는 즉시, 데이터 바인딩들(205)은 데이터(209)에 즉시 접속되고(동기화됨), 정확한 내용을 디스플레이하여, 문서 생성자가 바인딩들(205)을 명시하도록 하고, 데이터(209)가 아직 생성되지는 않았지만 그들을 저장하도록 한다.
댕글링 참조(215)의 한 유형은 컨텐트 영역(207)의 데이터 바인딩(205)이 링크된 XML 스트림의 노드(213)에 성공적으로 링크될 수 없을 때 발생한다(즉, 컨텐트 영역의 바인딩의 한 상태). 노드(213)가 링크된 XML 스트림으로부터 교체/제거될 때, 한 개 이상의 데이터 바인딩들(205)은 결과적으로 댕글링 참조들(215)이 될 수 있다. 데이터 바인딩(205)이 그것의 XPath 때문에 댕글링 참조(215)를 가지면, 워드 프로세서 애플리케이션(202)이 데이터 바인딩(205)의 노드(213)에 대해 최종으로 알려진 XPath를 저장하기를 계속하는 것이 선호된다. 이것은 XPath가 임의의 노드(209)로 더 이상 리졸브(resolve)되지 않을 때 발생할 수 있다. 데이터 저장소(208)가 워드 프로세서 문서(204)로 어떤 XML 데이터(209)의 업데이트를 메시징할 때마다, 워드 프로세서 애플리케이션(202)은 임의의 댕글링 참조들(215)이 최신 업데이트로 리졸브되었는지(즉, XPath가 이제 XML 트리의 유효한 노드(213)를 가리킴)를 검사한다. 워드 프로세서 애플리케이션(202)이 댕글링 참조를 리졸브하면, 데이터 저장소(208)의 내용이 현재 데이터 바인딩(205)에 있는 내용에 대해 우위를 갖는 것이 선호된다 - 즉, 데이터 바인딩(205)의 내용은 데이터 저장소(208)의 노드(213)의 내용에 의해 교체된다. 댕글링 참조들은, 한 개 이상의 프로그래밍 환경들(206)을 통해 액세스가능한, 단순한 API 층을 사용하여 나타내는 것이 선호된다.
예로서, 워드 프로세서 문서(204)가, 마이크로소프트사가 어떤 XML 데이터(209)의 XPath/contract/header/company(3)에 바인드되는 플레인 텍스트 컨텐트 영역(207) 데이터에 대응하는, 아래 문단을 포함한다고 가정하자.
"Microsoft Corporation is located at One Microsoft Way."
대응하는 XML 데이터(209)는 다음과 같을 것이다(작은 따옴표 안에 노드(213)로의 링크를 가짐):
Figure 112005076565918-PAT00004
개발자와 같은, 사용자가 데이터 저장소(208) API를 사용하여 <header> 하의 제1 <company> 노드(213)를 제거하면(작은 따옴표 안의 노드(213)):
Figure 112005076565918-PAT00005
문서(204)의 컨텐트 영역(207)에 대해 결과적 데이터 바인딩(205)은 동일 XPath로의 링크를 관리하여, 데이터 바인딩(205)이 이제 존재하지 않는 /contract/header/company(3)로의 댕글링 참조(215)가 된다:
Figure 112005076565918-PAT00006
이것은, 내부적으로 우리가 끊긴 링크를 가지고 있지만, 본 발명에 따라, 컨텐트 영역(207)의 내용이 변경되지 않고, 아무런 오류가 발생하지 않음을 의미한다, 즉,
"Microsoft Corporation is located at One Microsoft Way."
어떤 XML 데이터(209)가 교체되거나 제거될 때(또는 링크가 한 개의 문서에서 다른 문서로 이동될 때), 그 XML 데이터(209)를 참조하는 모든 데이터 바인딩들(205)은 즉각적으로 삭제된 XML 데이터(209)를 가리키는 댕글링 참조들(215)이 된다. 데이터 바인딩(205)이 댕글링 참조(215)를 포함하면, 워드 프로세서 애플리케이션(202)은 데이터 바인딩(205)과 관련된 최종으로 알려진 XPath/namespace 링크를 저장하기를 계속한다. 본 발명의 일 실시예에 따라, 데이터 바인딩들(205)의 집합이 댕글링 참조들(215)이 될 때, 워드 프로세서 애플리케이션(202)은 관련된 XML 데이터 저장소(208)의 임의의 다른 이용가능한 XML 데이터(209)에 이들 링크들을 재부착하려고 시도한다. 데이터 바인딩들(205) 중의 임의의 것이 다른 XML 데이터(209)의 노드(213)로 리졸브되면, 모든 댕글링 참조들(215)은 이 XML 데이터(209)에 연관되어, 데이터 바인딩들(205)이 이제 접속되는 관련된 컨텐트 영역들(207)을 업데이트한다. 이 XML 데이터(209)가 댕글링 참조들(215) 중의 임의의 것에 대한 유효한 데이터 바인딩들(205)로 결과가 되어지지 않으면, 워드 프로세서 애플리케이션(202)은 데이터 저장소(208)의 각 XML 데이터(209)로 유사한 검사 등을 수행한다. XML 데이터(209) 중의 아무것도 댕글링 참조들(215)을 위해 사용될 수 없으면, 바인딩들은 원래 XML 데이터(209)로의 댕글링 참조들(215)로서 남아 있는다.
도 3에 도시된 흐름도를 참조하고 계속해서 도 2를 참조해보면, 본 발명의 일 실시예가 기재된다. 도 3에 보여진 프로세스(300)는 사용자가 워드 프로세서 애플리케이션(202)을 사용하여 워드 프로세서 문서(204)를 열 때 블록(302)에서 시작한다. 블록(304)에서, 워드 프로세서 애플리케이션은 데이터 저장소(208)를 생성하고, 그 다음 이것은 블록(310)에서 워드 프로세서 문서(204)에 저장된 임의의 XML 데이터(209)로 채워지거나 또는 사용자 인터페이스나 프로그래밍 윈도우(206)를 사용하여 요구된다. 데이터 저장소(208)는 문서(204)의 일부로서 포함되는 것이 선호되지만, 문서 편집 표면(203)에 가시적이지 않다. 데이터 저장소(208)는 컨텐트 영역들(207)과 데이터 바인딩들(205)을 생성하기 전에 로드될 수 있음을 이 해할 것이다. 유사하게, 컨텐트 영역들(207)은 데이터 저장소(208) 전에 생성될 수 있다. 부연하면, 도 3에 도시된 다양한 동작들은 임의의 특정 순서로 수행될 필요가 없고, 특정 사용자의 선호사항에 따라 구현될 수 있다.
블록(306)에서, 사용자는 문서(204)의 표면(203)에 존재하는 한 개 이상의 컨텐트 영역들(207)을 생성한다. 이들 컨텐트 영역들이 또한 문서(204)의 기존 내용으로부터 판독될 수 있음을 주목한다. 블록(308)에서, 사용자는, 특정 링크된 XML 데이터(209) 및 타겟 노드(213)를 명시하는 XPath 표현식을 제공하여, 데이터 바인딩 정보와 컨텐트 영역(207)을 연관시킬 수 있다. 한 개 이상의 데이터 바인딩들은 데이터 저장소(208)의 XML 데이터(209)의 한 개 이상의 노드들(213)과 한 개 이상의 컨텐트 영역들(207)을 링크한다. 데이터 바인딩(205)은 바인드되거나 또는 매달린 상태가 된다. 위에서 기재된 바와 같이, 각 노드(213)는 복수의 컨텐트 영역들(207)에 바인드될 수 있고, 각각은 동일 XML 노드(213)에 데이터 바인딩(205)을 명시할 수 있다. 더욱이, 데이터 바인딩들(205)은 복수의 데이터 저장소들(208)에 링크될 수 있다. 블록(309)에서, 사용자는, 컨텐트 영역(207) 또는 데이터 저장소(208) 중의 어느 한 곳에, XML 데이터를 생성할 수 있다. 블록(310)에서, 워드 프로세서 애플리케이션(202)은 데이터 저장소(208)에 모든 XML 데이터를 로드한다. 블록(312)에서, 워드 프로세서 애플리케이션(202)은 문서(204)로부터, 또는 사용자에 의해 요구된 컨텐트 영역들(207)을 로드하고(306), 블록(314)에서, 워드 프로세서 애플리케이션(202)은 문서(204)로부터, 또는 사용자에 의해 요구된 데이터 바인딩들(205)을 로드한다(308). 블록(316)에서, 워드 프로세서 애플리케 이션(202)은 특정 데이터 바인딩(205)에 의해 명시된 노드(213)와 관련된 XML 데이터(209)가 존재하는지를 검사한다.
블록(316)에서 XML 데이터(209)가 데이터 저장소 내에 위치하는 경우, 블록(320)에서 워드 프로세서 애플리케이션(202)은 명시된 XPath에 대한 관련 XML 노드(213)가 존재하는지 여부를 판정한다. XPath XML 노드(213)가 존재하는 경우, 블록(322)에서 워드 프로세서 애플리케이션(202)은 데이터 바인딩을 통해 각종 문서 컨텐트, 즉 컨텐트 영역(207) 및 임의의 다른 링크된 컨텐트를 관련 XML 노드 또는 노드들(213)에 접속시킨다. 블록(320)에서 XPath XML 노드(213)가 위치하지 않는 경우, 블록(324)에서 워드 프로세서 애플리케이션(202)은 특정 데이터 바인딩(205)을 댕글링 참조(215)로서 레이블링한다(댕글링 상태로 진입). 블록(316)에서 XML 데이터(209)가 존재하지 않는 경우, 블록(318)에서 워드 프로세서 애플리케이션(202)은 동일한 XML 네임스페이스 내의 다른 XML 데이터(209)를 검색한다. 블록(326)에서, 다른 XML 데이터(209)가 데이터 저장소(208) 내의 동일한 XML 네임스페이스에서 존재하는 것으로 판정되는 경우, 블록(320)에서 워드 프로세서 애플리케이션(202)은 XPath XML 노드(213)가 그 데이터 내에 존재하는지 여부를 점검한다. 블록(320)에서 XPath XML 노드(213)가 존재하는 것으로 판정되는 경우, 블록(322)에서 워드 프로세서 애플리케이션(202)은 문서 컨텐트, 즉 컨텐트 영역(207) 및 임의의 다른 링크된 컨텐트를 관련 XML 노드 또는 노드들(213)에 접속시킨다. 블록(326)에서 다른 XML 데이터(209)가 동일한 XML 네임스페이스 내에 존재하지 않는 경우, 블록(324)에서 워드 프로세서 애플리케이션(202)은 특정 데이터 바인딩(205) 을 댕글링 참조(215)로서 레이블링한다(댕글링 상태로 진입).
본 발명의 다양한 실시예들의 논리 동작들은 (a) 컴퓨터 시스템에서 실행하는 컴퓨터 구현된 동작들 또는 프로그램 모듈들의 시퀀스로서 및/또는 (b) 컴퓨팅 시스템 내의 상호접속된 기계 논리 회로들 또는 회로 모듈들로서 구현된다. 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요구사항에 따른 선택 문제이다. 따라서, 본 명세서에 기재된 본 발명의 실시예들을 만드는 논리 동작들은 동작, 구조적 장치, 액트, 또는 모듈로서 다양하게 일컬어진다. 이들 동작, 구조적 장치, 액트 및 모듈은 본 명세서에 기재된 청구범위 내에 기재된 대로 본 발명의 취지 및 범위로부터 벗어나지 않고 소프트웨어, 펌웨어, 특수 목적 디지털 논리 및 그들의 임의의 조합으로 구현될 수 있다.
위의 명세, 예들 및 데이터는 본 발명의 구성의 제조와 사용의 완전한 설명을 제공한다. 본 발명의 다수의 실시예들이 본 발명의 취지와 범위를 벗어나지 않고 만들어질 수 있으므로, 본 발명은 이후에 첨부된 청구범서에 귀속한다.
본 발명을 통해 워드 프로세싱 애플리케이션의 사용자는, 계속해서 변경될 수 있는 프레젠테이션 포맷의 복잡성을 다룰 필요 없이, 링크된 데이터를 직접 변경함으로써 워드 프로세서 문서의 프레젠테이션의 내용을 수정할 수 있다.

Claims (20)

  1. 워드 프로세서 애플리케이션에서, 워드 프로세서 문서를 제공하는 방법은,
    상기 문서의 내용을 디스플레이하는 프레젠테이션 표면을 생성하는 단계;
    관련 구조를 포함하는 문서 데이터를 저장하는 데이터 저장소를 생성하는 단계;
    스키마 파일과 상기 워드 프로세서 문서 내에 저장된 데이터를 관련시키는 단계;
    상기 워드 프로세서 문서에 하나 이상의 컨텐트 영역을 생성하는 단계 및
    상기 하나 이상의 컨텐트 영역과 관련된 하나 이상의 바인딩을 생성하는 단계
    를 포함하는 워드 프로세서 애플리케이션.
  2. 제1항에 있어서, 상기 방법은 상기 데이터 구조를 상기 프레젠테이션 표면과 분리시키는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  3. 제1항에 있어서, 상기 방법은 상기 데이터 저장소의 데이터로의 액세스를 제공하는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  4. 제3항에 있어서, 상기 방법은 상기 데이터 저장소 내에서 상기 데이터를 직 접 편집하는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  5. 제4항에 있어서, 상기 방법은 상기 데이터 편집과 관련된 상기 하나 이상의 컨텐트 영역을 업데이트하는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  6. 제1항에 있어서, 상기 방법은 하나 이상의 컨텐트 영역의 편집에 기초하여 상기 데이터 저장소의 관련 데이터를 업데이트하는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  7. 제1항에 있어서, 상기 방법은 데이터 바인딩이 상기 데이터 저장소의 존재하지 않는 위치를 참조할 때 댕글링 참조(dangling reference)를 생성하는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  8. 제1항에 있어서, 상기 방법은 프로그래밍 인터페이스를 상기 워드 프로세서 애플리케이션에 노출시키는 단계 및 상기 프로그래밍 인터페이스를 이용하여 상기 데이터 저장소 또는 상기 프레젠테이션 표면의 하나 이상의 컨텐트 영역에서의 변경을 야기시키거나/이에 반응하는 코드를 개발하는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  9. 제1항에 있어서, 상기 방법은 상기 데이터 저장소의 적어도 하나의 노드와 관련된 수정에 기초하여 다수의 컨텐트 영역의 내용을 업데이트하는 단계를 더 포함하는 워드 프로세서 애플리케이션.
  10. 워드 프로세서 문서를 제공하는 워드 프로세싱 애플리케이션에 있어서,
    데이터를 저장하기 위한 저장소를 생성하는 수단,
    상기 저장소에 XML 데이터를 추가하는 수단,
    상기 데이터의 구조를 정의하는 스키마 파일을 상기 저장소 내의 XML 데이터와 관련시키는 수단 및
    상기 저장소의 하나 이상의 노드를 상기 문서의 컨텐트 영역과 관련시키는 하나 이상의 데이터 바인딩을 생성하는 수단
    을 포함하는 워드 프로세싱 애플리케이션.
  11. 제10항에 있어서, 상기 하나 이상의 링크를 모니터하는 코드를 개발하는 프로그래밍 수단을 더 포함하는 워드 프로세싱 애플리케이션.
  12. 제10항에 있어서, 상기 저장소의 관련 변경을 야기하는 상기 문서의 다수의 링크된 영역을 편집하도록 동작하는 워드 프로세싱 애플리케이션.
  13. 제10항에 있어서, 상기 문서의 하나 이상의 컨텐트 영역의 관련 편집을 야기하는 상기 저장소의 한 노드를 편집하도록 동작하는 워드 프로세싱 애플리케이션.
  14. 제10항에 있어서, 링크를 생성하는 상기 수단은 댕글링 또는 바운드 링크를 생성하도록 또한 동작하는 워드 프로세싱 애플리케이션.
  15. 컴퓨터 실행가능 컴포넌트를 포함하는 컴퓨터 판독가능 매체에 있어서,
    워드 프로세서 문서의 내용을 제공하는 워드 프로세서 프레젠테이션 표면,
    제1 데이터를 저장하는 제1 저장소 및
    상기 제1 저장소의 제1 데이터를 상기 문서의 영역에 바인딩하는 바인딩
    을 포함하는 컴퓨터 판독가능 매체.
  16. 제15항에 있어서, 제2 데이터를 저장하는 제2 저장소를 더 포함하는 컴퓨터 판독가능 매체.
  17. 제16항에 있어서, 상기 제1 저장소와 관련된 제1 스키마 및 상기 제2 저장소와 관련된 제2 스키마를 더 포함하는 컴퓨터 판독가능 매체.
  18. 제15항에 있어서, 상기 제1 저장소를 모니터하는 코드를 개발하는 프로그래밍 인터페이스를 더 포함하는 컴퓨터 판독가능 매체.
  19. 제15항에 있어서, 상기 워드 프로세싱 애플리케이션은 링크가 상기 저장소의 알려지지 않은 위치를 참조할 때 댕글링 참조를 생성하도록 또한 동작하는 컴퓨터 판독가능 매체.
  20. 제15항에 있어서, 상기 워드 프로세싱 애플리케이션은 댕글링 또는 바운드 링크를 생성하도록 또한 동작하는 컴퓨터 판독가능 매체.
KR1020050130324A 2005-01-06 2005-12-27 워드 프로세서 문서를 제공하는 워드 프로세싱애플리케이션 KR101213812B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/030,423 2005-01-06
US11/030,423 US7730394B2 (en) 2005-01-06 2005-01-06 Data binding in a word-processing application

Publications (2)

Publication Number Publication Date
KR20060080861A true KR20060080861A (ko) 2006-07-11
KR101213812B1 KR101213812B1 (ko) 2013-01-09

Family

ID=36218132

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050130324A KR101213812B1 (ko) 2005-01-06 2005-12-27 워드 프로세서 문서를 제공하는 워드 프로세싱애플리케이션

Country Status (5)

Country Link
US (1) US7730394B2 (ko)
EP (1) EP1679616B1 (ko)
JP (1) JP4936715B2 (ko)
KR (1) KR101213812B1 (ko)
CN (2) CN1811765B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100751691B1 (ko) * 2005-11-08 2007-08-23 삼성에스디에스 주식회사 다수의 파워포인트 문서 편집 방법

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293242B2 (en) * 2002-10-15 2007-11-06 International Business Machines Corporation Facilitated source to target object editing functions
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7617234B2 (en) * 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7668873B2 (en) 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7499931B2 (en) * 2005-05-09 2009-03-03 International Business Machines Corporation Method and apparatus for approximate projection of XML documents
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US7904809B2 (en) 2007-06-29 2011-03-08 Microsoft Corporation Model-based editors for dynamic validation
US20090089268A1 (en) * 2007-09-28 2009-04-02 Benedikt Michael A XML Update Facility for an XQuery Processor
US8370391B2 (en) * 2008-03-25 2013-02-05 Microsoft Corporation Functional updates for tree processing
JP5455321B2 (ja) * 2008-05-02 2014-03-26 キヤノン株式会社 文書処理装置及び文書処理方法
CN101339500B (zh) * 2008-05-22 2010-06-09 清华大学 基于xml模式的数据绑定应用程序接口生成方法
US10453043B2 (en) * 2008-06-25 2019-10-22 Thomson Reuters Global Resources Unlimited Company System and method for online bill payment
CN101477516B (zh) * 2008-09-10 2010-12-01 北京书生国际信息技术有限公司 一种电子数据处理方法和系统
KR101044870B1 (ko) * 2008-10-02 2011-06-28 한국전자통신연구원 경로 코드를 이용한 xml 문서의 부호화 및 복호화 방법과 장치
JP5632593B2 (ja) * 2009-07-01 2014-11-26 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US8244764B2 (en) * 2009-07-31 2012-08-14 Microsoft Corporation Stashing of locally persisted data to network accessible storage
JP2011123556A (ja) 2009-12-08 2011-06-23 Canon Inc 情報処理装置、情報処理方法及びプログラム
KR20110095612A (ko) * 2010-02-19 2011-08-25 삼성전자주식회사 링크 제공 방법 및 이를 적용한 전자장치
JP5547599B2 (ja) * 2010-09-30 2014-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索クエリーの作成を支援する装置、グラフィカルユーザインターフェース生成システム、方法及びプログラム
US8924842B2 (en) * 2011-02-25 2014-12-30 Hewlett-Packard Development Company, L.P. Method and system to build interactive documents
US8850306B2 (en) * 2011-03-28 2014-09-30 Microsoft Corporation Techniques to create structured document templates using enhanced content controls
JP2013089130A (ja) * 2011-10-20 2013-05-13 Sony Corp 情報処理装置、情報処理方法、プログラム、及び記録媒体
US8499122B2 (en) * 2011-11-21 2013-07-30 Microsoft Corporation Asynchronous data binding
EP2836923A4 (en) * 2012-04-10 2016-01-13 Blackberry Ltd METHODS AND APPARATUS FOR COPYING AND INSERTING INFORMATION
IL222847A (en) * 2012-11-04 2015-05-31 Aron Tevyowitz Hierarchical code lock system
US9460073B2 (en) 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US20140281876A1 (en) * 2013-03-15 2014-09-18 Meteor Development Group, Inc. Document element mapping
US10055396B2 (en) 2013-04-12 2018-08-21 Microsoft Technology Licensing, Llc Binding of data source to compound control
CN103294477B (zh) * 2013-06-14 2018-02-13 北京新学堂网络科技有限公司 使用Office文档进行移动开发项目管理的方法
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US10909080B2 (en) 2015-05-04 2021-02-02 Microsoft Technology Licensing, Llc System and method for implementing shared document edits in real-time
US9696967B2 (en) * 2015-11-09 2017-07-04 Microsoft Technology Licensing, Llc Generation of an application from data

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69032649T2 (de) 1989-08-01 1999-05-06 Silicon Graphics Inc Mountain Dateiveränderungsmonitor für rechner-, betriebs- und dateiverwaltungssysteme
WO1994006236A2 (en) 1992-08-26 1994-03-17 Bellsouth Corporation Personal number communications system
US5440745A (en) 1993-04-29 1995-08-08 International Business Machines Corporation Batch format processing of record data
US5630131A (en) 1994-11-14 1997-05-13 Object Technology Licensing Corp. Method and apparatus for importing and exporting archive files for a graphical user interface
US5911068A (en) * 1995-03-30 1999-06-08 Microsoft Corporation Container independent control architecture
JP3700733B2 (ja) 1995-06-12 2005-09-28 富士ゼロックス株式会社 文書管理装置及び文書管理方法
US5727348A (en) * 1995-11-07 1998-03-17 Arnell; Louis G. Portable remote controlled door closer
US20050033659A1 (en) 1996-01-17 2005-02-10 Privacy Infrastructure, Inc. Third party privacy system
US6006239A (en) 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US6088431A (en) 1996-03-20 2000-07-11 Aeris Communications, Inc. Method for transmitting voice or data in a wireless network depending on billing account status
US5715415A (en) 1996-06-05 1998-02-03 Microsoft Corporation Computer application with help pane integrated into workspace
US5845299A (en) 1996-07-29 1998-12-01 Rae Technology Llc Draw-based editor for web pages
US5903902A (en) 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US6268851B1 (en) 1996-09-30 2001-07-31 Trellix Corporation Hypermedia authoring and publishing system
US7062500B1 (en) 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US6256627B1 (en) 1997-07-08 2001-07-03 At&T Corp. System and method for maintaining a knowledge base and evidence set
US5991878A (en) 1997-09-08 1999-11-23 Fmr Corp. Controlling access to information
US5974430A (en) * 1997-09-30 1999-10-26 Unisys Corp. Method for dynamically embedding objects stored in a web server within HTML for display by a web browser
US6157940A (en) 1997-11-21 2000-12-05 International Business Machines Corporation Automated client-based web server stress tool simulating simultaneous multiple user server accesses
US6247020B1 (en) 1997-12-17 2001-06-12 Borland Software Corporation Development system with application browser user interface
AUPP252298A0 (en) 1998-03-24 1998-04-23 80-20 Software Pty Limited Document management software
US6731314B1 (en) 1998-08-17 2004-05-04 Muse Corporation Network-based three-dimensional multiple-user shared environment apparatus and method
US6562076B2 (en) 1998-08-31 2003-05-13 Xerox Corporation Extending application behavior through active properties attached to a document in a document management system
GB2341523B (en) 1998-09-12 2003-10-29 Ibm Apparatus and method for establishing communication in a computer network
US6397351B1 (en) 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6275824B1 (en) 1998-10-02 2001-08-14 Ncr Corporation System and method for managing data privacy in a database management system
US6507856B1 (en) 1999-01-05 2003-01-14 International Business Machines Corporation Dynamic business process automation system using XML documents
US6490601B1 (en) 1999-01-15 2002-12-03 Infospace, Inc. Server for enabling the automatic insertion of data into electronic forms on a user computer
JP2000227914A (ja) * 1999-02-05 2000-08-15 Dainippon Screen Mfg Co Ltd 文書編集装置
US6317777B1 (en) 1999-04-26 2001-11-13 Intel Corporation Method for web based storage and retrieval of documents
US6920455B1 (en) 1999-05-19 2005-07-19 Sun Microsystems, Inc. Mechanism and method for managing service-specified data in a profile service
US6859821B1 (en) 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US7039863B1 (en) 1999-07-23 2006-05-02 Adobe Systems Incorporated Computer generation of documents using layout elements and content elements
JP5113967B2 (ja) 1999-08-05 2013-01-09 オラクル・インターナショナル・コーポレイション インターネットファイルシステム
WO2001015004A2 (en) 1999-08-26 2001-03-01 Cma Business Credit Services Service bureau architecture
US7055094B2 (en) 1999-12-30 2006-05-30 Rutgers, The State University Of New Jersey Virtual tags and the process of virtual tagging utilizing user feedback in transformation rules
US20040220926A1 (en) 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US7237002B1 (en) 2000-01-04 2007-06-26 International Business Machines Corporation System and method for dynamic browser management of web site
US6944622B1 (en) 2000-01-20 2005-09-13 International Business Machines Corporation User interface for automated project management
US6701314B1 (en) 2000-01-21 2004-03-02 Science Applications International Corporation System and method for cataloguing digital information for searching and retrieval
US7340481B1 (en) 2000-01-21 2008-03-04 International Business Machines Corp. Method and system for adding user-provided content to a content object stored in a data repository
US20020010716A1 (en) * 2000-02-24 2002-01-24 Mccartney Alan F. System and method for dynamically publishing XML-compliant documents
US6629843B1 (en) 2000-03-22 2003-10-07 Business Access, Llc Personalized internet access
US20050091576A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6571253B1 (en) * 2000-04-28 2003-05-27 International Business Machines Corporation Hierarchical view of data binding between display elements that are organized in a hierarchical structure to a data store that is also organized in a hierarchical structure
AUPQ808700A0 (en) * 2000-06-09 2000-07-06 Honeywell Limited Human-machine interface
US20010056463A1 (en) 2000-06-20 2001-12-27 Grady James D. Method and system for linking real world objects to digital objects
US6944662B2 (en) 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
AU2001294555A1 (en) 2000-09-14 2002-03-26 Bea Systems Inc. Xml-based graphical user interface application development toolkit
US7190976B2 (en) 2000-10-02 2007-03-13 Microsoft Corporation Customizing the display of a mobile computing device
CA2427354A1 (en) 2000-10-31 2002-08-01 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US7191252B2 (en) 2000-11-13 2007-03-13 Digital Doors, Inc. Data security system and method adjunct to e-mail, browser or telecom program
US6996800B2 (en) 2000-12-04 2006-02-07 International Business Machines Corporation MVC (model-view-controller) based multi-modal authoring tool and development environment
ATE379807T1 (de) 2000-12-11 2007-12-15 Microsoft Corp Verfahren und system zur verwaltung von mehreren netzwerk-betriebsmitteln
US7076728B2 (en) 2000-12-22 2006-07-11 International Business Machines Corporation Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US7085773B2 (en) 2001-01-05 2006-08-01 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
JP4099948B2 (ja) 2001-01-18 2008-06-11 株式会社日立製作所 構造化文書をプログラム言語の構造体データへマッピングするシステム及び方法及びプログラム
US20030164859A1 (en) 2001-02-02 2003-09-04 Evans Clark Cameron Hybrid widget/layout user interface for structured information
US6963930B2 (en) 2001-02-15 2005-11-08 Centric Software, Inc. Automatic transfer and expansion of application-specific data for display at a website
US6996769B1 (en) 2001-02-28 2006-02-07 Cisco Technology, Inc. Method and system for generating documentation from operating system command syntax
US6950831B2 (en) * 2001-03-23 2005-09-27 Siemens Medical Solutions Health Services Corporation Processing system for use with a user interface display
US7134075B2 (en) 2001-04-26 2006-11-07 International Business Machines Corporation Conversion of documents between XML and processor efficient MXML in content based routing networks
US20020198962A1 (en) 2001-06-21 2002-12-26 Horn Frederic A. Method, system, and computer program product for distributing a stored URL and web document set
BR0210589A (pt) 2001-06-22 2005-04-26 Nosa Omoigui Sistema e método para a recuperação, o gerenciamento, a entrega e a apresentação do conhecimento
US7287227B2 (en) 2001-06-29 2007-10-23 Ve Enterprises Llc System and method for editing web pages in a client/server architecture
US7117504B2 (en) 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7305614B2 (en) 2001-07-17 2007-12-04 International Business Machines Corporation Interoperable retrieval and deposit using annotated schema to interface between industrial document specification languages
US6990534B2 (en) 2001-07-20 2006-01-24 Flowfinity Wireless, Inc. Method for a proactive browser system for implementing background frame maintenance and asynchronous frame submissions
US20030097457A1 (en) 2001-08-08 2003-05-22 Amitabh Saran Scalable multiprocessor architecture for business computer platforms
US9460414B2 (en) 2001-08-28 2016-10-04 Eugene M. Lee Computer assisted and/or implemented process and system for annotating and/or linking documents and data, optionally in an intellectual property management system
AU2002332812A1 (en) 2001-09-04 2003-03-18 Soft2B Llc Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization
US7284194B2 (en) 2001-10-23 2007-10-16 Sun Microsystems, Inc. XML based report generator
US20040103147A1 (en) 2001-11-13 2004-05-27 Flesher Kevin E. System for enabling collaboration and protecting sensitive data
JP4286143B2 (ja) 2001-11-23 2009-06-24 リサーチ イン モーション リミテッド 拡張可能マークアップ言語(xml)ドキュメントを処理するシステムおよび方法
US7496841B2 (en) 2001-12-17 2009-02-24 Workshare Technology, Ltd. Method and system for document collaboration
US7502996B2 (en) * 2002-02-21 2009-03-10 Bea Systems, Inc. System and method for fast XSL transformation
US7962925B2 (en) * 2002-02-22 2011-06-14 Oracle International Corporation System and method for XML data binding
US7091846B2 (en) 2002-03-18 2006-08-15 Siemens Communications, Inc. Methods and apparatus for handling information regarding an alarm for a communication network
AU2003228416A1 (en) 2002-04-02 2003-10-20 Collabo-Technology, Inc. Method and apparatus for synchronous project collaboration
KR100860984B1 (ko) 2002-10-15 2008-09-30 삼성전자주식회사 메타데이터 관리 방법
JP4036718B2 (ja) 2002-10-02 2008-01-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 文書検索システム、文書検索方法、文書検索を実行するためのプログラム
US20040088647A1 (en) 2002-11-06 2004-05-06 Miller Adrian S. Web-based XML document processing system
CA2414047A1 (en) 2002-12-09 2004-06-09 Corel Corporation System and method of extending scalable vector graphics capabilities
US8032860B2 (en) 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US7017112B2 (en) 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US7380212B2 (en) 2003-03-18 2008-05-27 Microsoft Corporation Dynamic-template incorporation of digital images in an electronic mail message
US20050071477A1 (en) 2003-03-27 2005-03-31 Microsoft Corporation Providing information links via a network
US7653876B2 (en) 2003-04-07 2010-01-26 Adobe Systems Incorporated Reversible document format
US7188308B2 (en) * 2003-04-08 2007-03-06 Thomas Weise Interface and method for exploring a collection of data
US20040237036A1 (en) 2003-05-21 2004-11-25 Qulst Robert D. Methods and systems for generating supporting files for commands
US7308458B2 (en) 2003-06-11 2007-12-11 Wtviii, Inc. System for normalizing and archiving schemas
US7698397B2 (en) 2003-06-27 2010-04-13 Microsoft Corporation Method and framework for providing system performance information
US7171741B2 (en) * 2003-07-25 2007-02-06 Hitachi Global Storage Technologies Netherlands B.V. Method for extended self-pinned layer for a current perpendicular to plane head
JP2005056127A (ja) 2003-08-04 2005-03-03 Lintec Corp 認定材料の販売方法
US8140980B2 (en) 2003-08-05 2012-03-20 Verizon Business Global Llc Method and system for providing conferencing services
US20050044145A1 (en) 2003-08-20 2005-02-24 International Business Machines Corporation Collaboration method and system
US8001156B2 (en) 2003-08-29 2011-08-16 Cybertrust Ireland Limited Processing XML node sets
US20050086384A1 (en) 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US7523220B2 (en) 2003-09-17 2009-04-21 Microsoft Corporation Metaspace: communication middleware for partially connected mobile ad hoc networks
US7657832B1 (en) * 2003-09-18 2010-02-02 Adobe Systems Incorporated Correcting validation errors in structured documents
US7424672B2 (en) 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
US20050091346A1 (en) 2003-10-23 2005-04-28 Brijesh Krishnaswami Settings management infrastructure
US7386563B1 (en) 2003-12-11 2008-06-10 Unisys Corporation Method for using deferred column retrieval to improve row retrieval and query performance of OLE DB applications
US20050154978A1 (en) 2004-01-09 2005-07-14 International Business Machines Corporation Programmatic creation and access of XML documents
US7200816B2 (en) 2004-01-21 2007-04-03 Altova, Gmbh Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment
US7469408B2 (en) 2004-02-13 2008-12-23 Microsoft Corporation Document customization for transparent execution on a client and a server
US7318063B2 (en) 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US7577938B2 (en) 2004-02-20 2009-08-18 Microsoft Corporation Data association
US20050188350A1 (en) 2004-02-20 2005-08-25 Microsoft Corporation Data binding
US20060041558A1 (en) 2004-04-13 2006-02-23 Mccauley Rodney System and method for content versioning
US20060031755A1 (en) 2004-06-24 2006-02-09 Avaya Technology Corp. Sharing inking during multi-modal communication
US9098476B2 (en) 2004-06-29 2015-08-04 Microsoft Technology Licensing, Llc Method and system for mapping between structured subjects and observers
US7451186B2 (en) 2004-08-10 2008-11-11 Microsoft Corporation Method and system of integrating instant messaging with other computer programs
US7506324B2 (en) 2004-09-02 2009-03-17 Microsoft Corporation Enhanced compiled representation of transformation formats
US20060053194A1 (en) 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7945590B2 (en) 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100751691B1 (ko) * 2005-11-08 2007-08-23 삼성에스디에스 주식회사 다수의 파워포인트 문서 편집 방법

Also Published As

Publication number Publication date
EP1679616A3 (en) 2008-01-16
US7730394B2 (en) 2010-06-01
CN100489849C (zh) 2009-05-20
JP2006323813A (ja) 2006-11-30
CN1811766A (zh) 2006-08-02
KR101213812B1 (ko) 2013-01-09
CN1811765A (zh) 2006-08-02
EP1679616B1 (en) 2018-05-02
CN1811765B (zh) 2010-10-13
EP1679616A2 (en) 2006-07-12
US20060150085A1 (en) 2006-07-06
JP4936715B2 (ja) 2012-05-23

Similar Documents

Publication Publication Date Title
KR101213812B1 (ko) 워드 프로세서 문서를 제공하는 워드 프로세싱애플리케이션
KR101213832B1 (ko) 데이터 바인딩을 위한 프로그램 가능성
US7617234B2 (en) XML schema for binding data
US7752224B2 (en) Programmability for XML data store for documents
RU2398274C2 (ru) Хранилище данных для документов программного приложения
KR101311123B1 (ko) 문서의 xml 데이터 저장소에 대한 프로그램가능성
US7379943B2 (en) Method and system for bidirectionally data binding a control of a template
US20080250394A1 (en) Synchronizing external documentation with code development
US7720885B2 (en) Generating a word-processing document from database content
US20070061349A1 (en) Hierarchically describing shapes
US20080295013A1 (en) Method and apparatus for performing semantically informed text operations
US7231598B1 (en) User interface for editing documents containing markup language
US7533335B1 (en) Representing fields in a markup language document
US20080294425A1 (en) Method and apparatus for performing semantic update and replace operations
JPH11110391A (ja) 文書管理方法
Jacobs Foundation XML and E4X for Flash and Flex

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: 20151118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 7