KR100733054B1 - 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법 - Google Patents

구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법 Download PDF

Info

Publication number
KR100733054B1
KR100733054B1 KR1020050068377A KR20050068377A KR100733054B1 KR 100733054 B1 KR100733054 B1 KR 100733054B1 KR 1020050068377 A KR1020050068377 A KR 1020050068377A KR 20050068377 A KR20050068377 A KR 20050068377A KR 100733054 B1 KR100733054 B1 KR 100733054B1
Authority
KR
South Korea
Prior art keywords
document
structured document
structured
synchronization
conversion
Prior art date
Application number
KR1020050068377A
Other languages
English (en)
Other versions
KR20070013770A (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 주식회사 유텍
Priority to KR1020050068377A priority Critical patent/KR100733054B1/ko
Publication of KR20070013770A publication Critical patent/KR20070013770A/ko
Application granted granted Critical
Publication of KR100733054B1 publication Critical patent/KR100733054B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/186Templates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (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)

Abstract

본 발명은 하나의 구조화 문서를 다른 구조화 문서로 변환할 때 서로 다른 구조화 문서를 동기화시키는 새로운 구조의 동기화 문서를 생성하여 어느 하나의 구조화 문서를 수정하는 경우 동기화 문서를 참조하여 수정된 부분과 연관된 다른 구조화 문서를 자동으로 수정할 수 있도록 하는 구조화 문서의 동기화를 이용한 문서변환 시스템 및 문서변환 방법에 관한 것이다.
본 발명에 따른 구조화 문서의 동기화를 이용한 문서변환 시스템은 저장을 위한 제 1 구조화 문서의 문서형을 정의하는 제 1 구조화 문서형 정의와 표현을 위한 제 2 구조화 문서의 문서형을 정의하는 제 2 구조화 문서형 정의의 차이에 따라 제 1 구조화 문서와 제 2 구조화 문서의 변환 규칙을 규정한 변환 템플릿을 기반으로 제 1 구조화 문서를 변환하여 제 2 구조화 문서를 생성하는 문서변환 시스템에 있어서, 상기 문서변환 시스템은 상기 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환 규칙이 규정된 변환 템플릿(301)에 상기 변환 템플릿(301)의 문법 구문과 제 1 구조화 문서형 정의(110) 및 제 2 구조화 문서형 정의(210)에 따른 제 1 구조화 문서(100) 객체와 제 2 구조화 문서(200) 객체의 연관 관계를 나타내는 동기화 변환 규칙을 추가하여 동기화 변환 템플릿(302)을 생성하는 동기화 변환 템플릿 생성부(300b)와; 상기 동기화 변환 템플릿(302)을 기반으로 제 1 구조화 문서(100)를 변환하여 제 2 구조화 문서(200)를 생성하고, 동기화 변환 템플릿(302)에 포함된 동기화 변환 규칙에 따라 제 1 구조화 문서(100)와 제 2 구조화 문서(200) 의 각 객체간 연관 관계가 규정된 동기화 문서(310)를 생성하는 문서구조 변환부(300c);가 구비된 동기화 문서구조 변환기(300)를 포함하여 이루어지는 것을 특징으로 한다.
문서변환, 구조화 문서, 동기화, 변환 템플릿, 문서형 정의

Description

구조화 문서의 동기화를 이용한 문서변환 시스템 및 문서변환 방법 {Document Conversion System Using Synchronization of Structured Documents, And It's Method}
도 1은 종래 제 1 구조화 문서가 문서구조 변환기를 통하여 제 2 구조화 문서로 변환되는 과정을 나타낸 개념도,
도 2는 DOM 객체를 이용하여 종래 제 1 구조화 문서인 XML 문서가 제 2 구조화 문서인 HTML 문서로 변환되는 방식을 나타내는 개념도,
도 3은 본 발명에 따른 구조화 문서의 동기화를 이용하여 구조화 문서가 변환되는 과정을 나타낸 개념도,
도 4는 본 발명에 따라 DOM Tree 구조를 통하여 XML 문서가 변환되어 HTML 문서와 EXSL 문서가 생성되는 과정을 나타내는 개념도,
도 5는 본 발명에 따른 EXSL DOM Tree와 XML DOM Tree 및 HTML DOM Tree의 각 Node Object간 연결을 나타내는 블록도,
도 6은 본 발명에 따라 제 1 구조화 문서를 제 2 구조화 문서로 변환하는 문서변환 서버의 블록 구성도,
도 7은 본 발명에 따른 문서변환 서버에 구비된 동기화 문서구조 변환기의 블록 구성도,
도 8은 본 발명에 따른 문서변환 서버에 구비된 데이터저장소의 블록 구성도,
도 9는 본 발명에 따라 제 1 구조화 문서가 변환되어 제 2 구조화 문서와 동기화 문서가 생성되는 과정을 나타낸 흐름도,
도 10a는 간단한 물품 구매서 정보를 포함하는 XML 문서의 일례,
도 10b는 XML 문서를 HTML 문서로 변환하기 위하여 적용되는 XSLT 템플릿의 일례,
도 10c는 상기 도 10a의 XML 문서에 도 10b의 XSLT 템플릿을 적용하여 생성된 HTML 문서의 일례,
도 10d는 상기 도 10c에 도시된 HTML 문서를 WYSIWYG 형태로 표현한 화면의 일례.
도 11a는 상기 도 10a의 XML 문서 중 <이름>, <가격>, <개수> 엘리먼트로 구성된 <목록> 엘리먼트를 나타낸 XML 문서의 일례,
도 11b는 상기 도 11a의 XML 문서를 HTML 문서로 변환하기 위하여 적용되는 XSLT 템플릿의 일례,
도 11c는 상기 도 11b의 XSLT 템플릿에 XML 문서와 HTML 문서의 동기화를 위한 정보가 추가되어 전처리된 EXSLT 템플릿을 일례,
도 11d는 상기 도 11a의 XML 문서에 도 11c의 EXSLT 템플릿을 적용하여 생성된 HTML 문서의 일례,
도 12a 내지 도 12d는 본 발명에 따라 XSLT 템플릿에 동기화 정보를 추가하 여 EXSLT 템플릿을 생성하는 과정을 나타낸 일례,
도 13은 상기 도 11a에 도시된 XML 문서에 도 11c의 EXSLT 템플릿을 적용하여 도 11d의 HTML 문서 변환되는 과정에서 생성되는 EXSL 문서의 EXSL DOM Tree를 도시한 일례,
도 14는 본 발명에 따라 HTML 문서가 편집되는 경우 이와 연관된 XML 문서가 업데이트되는 과정을 나타낸 흐름도,
도 15는 본 발명에 따라 XML 문서가 편집되는 경우 HTML 문서가 업데이트되는 과정을 나타낸 흐름도이다.
※ 도면의 주요 부분에 대한 부호의 설명
100 : 제 1 구조화 문서 100a: XML DOM Tree
101: XML DOM Node Object 110 : 제 1 구조화 문서형 정의
200: 제 2 구조화 문서 200a: HTML DOM Tree
201: HTML DOM Node Object 210: 제 2 구조화 문서형 정의
300: 동기화 문서구조 변환기 300a: 문서형 정의 해석부
300: 동기화 변환 템플릿 생성부 300c: 문서구조 변환부
300d: 이벤트처리부 301 : 변환 템플릿
302: 동기화 변화 템플릿 310 : 동기화 문서
310a: EXSL DOM Tree 311 : EXSL DOM Node Object
320: 이벤트 문서 400 : 데이터저장소
600: 문서변환 서버
본 발명은 문서변환 시스템 및 문서변환 방법에 관한 것으로, 더욱 상세하게는 하나의 구조화 문서를 다른 구조화 문서로 변환할 때 서로 다른 구조화 문서를 동기화시키는 새로운 구조의 동기화 문서를 생성하여 어느 하나의 구조화 문서를 수정하는 경우 동기화 문서를 참조하여 수정된 부분과 연관된 다른 구조화 문서를 자동으로 수정할 수 있도록 하는 구조화 문서의 동기화를 이용한 문서변환 시스템 및 문서변환 방법에 관한 것이다.
구조화 문서는 논리 구조를 갖는 문서로서, 대표적으로 국제규격(ISO/IEC 8879)인 SGML(Standard Generalized Markup Language)과 W3C(World Wide Web Consortium)에 의해 제정된 XML(eXtensible Markup Language) 등이 있다.
이러한 구조화 문서에서는 논리 구조에 의해 배치에 관한 정보가 자동으로 생성되기 때문에 문서를 작성할 때 배치의 명세에 대해 고려할 필요가 없어 문서를 효율적으로 작성할 수 있게 된다.
구조화 문서 중 웹상에서 구조화된 데이터를 전송 가능하도록 하고 있는 XML은 종래 HTML(HyperText Markup Language)보다 웹 페이지 구축 기능, 검색 기능 등 이 향상되었고 클라이언트 시스템의 복잡한 데이터 처리를 쉽게 할 수 있도록 하고 있다. 이 XML은 웹 페이지에서 데이터베이스처럼 구조화된 데이터를 사용자 뜻대로 조작할 수 있도록 하고 있는데, 이 XML 문서는 구조적으로 SGML 문서 형식을 따르고 있다.
특히, XML은 구조화된 데이터를 표현할 수 있도록 함과 동시에 쉽게 HTML과 같은 형태로 보일 수 있도록 하기 위하여 데이터의 내용과 표현을 분리하였는데, 이는 XML 데이터 생성자가 데이터의 표현과 무관하게 데이터를 생성할 수 있도록 하고, 하나의 XML 데이터에 여러 스타일시트를 적용함으로써 하나의 데이터에서 다양한 표현이 가능하도록 하였다.
이와 같이, XML 문서는 정보의 표현보다는 정보의 구조적 저장을 목적으로 하기 때문에 XML 데이터를 WYSIWYG(What You See Is What You Get)를 지원하는 HTML과 같은 다른 표준 구조화 문서 형태로 표현하기 위해서는 별도의 CSS(Cascading Style Sheet) 또는 XSL(eXtensible Stylesheet Language)로 구현된 XSLT(XSL Transformations) 같은 스타일시트를 필요하게 하게 된다. 통상, XML 문서는 W3C 표준화 위원회에서는 표준으로 정한 문서구조 변환기인 XSLT를 이용하여 HTML 문서로 변환된다.
도 1은 종래 XML 문서와 같은 저장을 위한 제 1 구조화 문서가 XSLT 엔진과 같은 문서구조 변환기를 통하여 HTML 문서와 같은 표현을 위한 제 2 구조화 문서로 변환되는 과정을 나타낸 개념도이다.
도 1에 도시된 바와 같이, 변환대상인 제 1 구조화 문서(XML 문서)(10)는 문서구조 변환기(XSLT 엔진)(30)에 의해 표현을 위한 제 2 구조화 문서(HTML 문서)(20)로 변환되는데, 통상 제 1 구조화 문서(10)는 제 1 구조화 문서(10)의 마크업을 식별할 수 있도록 규칙을 정의한 제 1 구조화 문서형 정의(XML DTD(Document Type Definition)(11)를 동반하며, 제 2 구조화 문서(20) 또한 제 2 구조화 문서(20)의 마크업을 식별할 수 있도록 규칙이 정의된 제 2 구조화 문서형 정의(HTML DTD)(21)를 동반하게 된다.
통상, HTML 문서와 같은 제 2 구조화 문서(20)는 문서형이 미리 정의되어 변경되지 않기 때문에 제 2 구조화 문서형 정의(21)가 제 2 구조화 문서(20) 자체에 포함되어 있지만, XML 등과 같은 제 1 구조화 문서(10)는 사용자에 의해 문서형이 정의되기 때문에 별도의 제 1 구조화 문서형 정의(11)로서 존재하게 된다.
상기 문서구조 변환기(30)는 변환 템플릿(XSLT 템플릿)(31)에 기술된 변환규칙에 기초하여 제 1 구조화 문서(10)를 제 2 구조화 문서(20)로 변환하게 되는데, 이 변환 템플릿(31)에는 제 1 구조화 문서형 정의(11)와 제 2 구조화 문서형 정의(21)의 변환 관계가 규정된 문서구조 변환규칙이 기술되어 있다.
통상 XML, SGML, HTML 등 구조화 문서를 구성하는 데이터는 계층적 구조를 이루고 있는데, 이러한 구조화 문서의 계층적 데이터는 파서(Parser)에 의해 파싱(Parsing)이 수행된 후 프로그램에 의해 제어 가능한 형태인 Tree 구조의 DOM(Document Object Model)으로 변환되어 메모리에 적재된다.
도 2는 이러한 DOM 객체를 이용하여 제 1 구조화 문서인 XML 문서가 제 2 구조화 문서인 HTML 문서로 변환되는 방식을 나타내는 개념도이다.
도 2에 도시된 바와 같이, 문서구조 변환기(30)는 제 1 구조화 문서(10)인 XML 문서를 XML DOM Tree(Soure Tree)(100a)로 인식한 후, 이를 변환 템플릿(31)인 XSLT 템플릿에 적용시켜 HTML DOM Tree(Result Tree)(200a)로 변환함으로써 제 2 구조화 문서(20)인 HTML 문서를 생성하게 된다.
이때, DOM Tree를 통한 XML 문서의 HTML 문서로의 변환은 XML 문서 전체가 동시에 변환되는 방식을 취하기 때문에 XML 문서의 일부분이 변경되는 경우에도 XML 문서 전체를 다시 변환해야만 표현결과인 HTML 문서를 얻을 수 있게 된다. 따라서, 문서의 수정에 따른 변환 과정이 복잡하고 처리시간이 많이 소요되어 실시간으로 XML 문서의 수정을 표현결과로서 반영하기 어려운 문제점이 있었다.
또한, XML은 그 문법구성이 복잡하여 일반 사용자들이 XML 문법을 사용하여 XML 문서를 수정하는데 어려움이 많으며, WYSIWYG 화면을 제공하는 HTML은 일반 사용자들이 사용하기에는 쉬우나 HTML을 이용하여 XML문서를 수정할 수 있는 방법이 아직 제공되지 못하였다.
이러한 문제점들은 XML 문서를 HTML 문서로 변환하는 경우에만 해당되는 것이 아니라, SGML 등과 같은 저장을 위한 논리 구조화 문서를 HTML과 같은 표현을 위한 구조화 문서로 변환하는 과정에서도 공통으로 발생하였다.
본 발명은 상술한 종래 저장을 위한 제 1 구조화 문서를 표현을 위한 제 2 구조화 문서로 변환하는 과정에서 발생하는 문제점들을 해결하기 위하여 제안된 것으로서, 본 발명의 목적은 저장을 위한 제 1 구조화 문서를 표현을 위한 제 2 구조화 문서로 변환한 후 제 1 구조화 문서의 일부를 수정하는 경우 제 1 구조화 문서 전체를 변환하지 않고도 제 1 구조화 문서의 수정된 부분과 연관된 제 2 구조화 문서의 일부가 실시간으로 수정될 수 있도록 하는 구조화 문서의 동기화를 이용한 문서변환 시스템 및 문서변환 방법을 제공하는 데 있다.
본 발명의 다른 목적은 제 1 구조화 문서를 제 2 구조화 문서로 변환한 후 WYSIWYG으로 표현되는 제 2 구조화 문서를 수정하는 경우 수정된 제 2 구조화 문서의 수정된 부분과 연관된 제 1 구조화 문서의 일부가 실시간으로 수정될 수 있도록 하는 구조화 문서의 동기화를 이용한 문서 변환 시스템을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 구조화 문서의 동기화를 이용한 문서변환 시스템은 저장을 위한 제 1 구조화 문서의 문서형을 정의하는 제 1 구조화 문서형 정의와 표현을 위한 제 2 구조화 문서의 문서형을 정의하는 제 2 구조화 문서형 정의의 차이에 따라 제 1 구조화 문서와 제 2 구조화 문서의 변환 규칙을 규정한 변환 템플릿을 기반으로 제 1 구조화 문서를 변환하여 제 2 구조화 문서를 생성하는 문서변환 시스템에 있어서, 상기 문서변환 시스템은 상기 제 1 구조화 문서와 제 2 구조화 문서의 변환 규칙이 규정된 변환 템플릿에 상기 변환 템플릿의 문법 구문과 제 1 구조화 문서형 정의 및 제 2 구조화 문서형 정의에 따른 제 1 구조화 문서 객체와 제 2 구조화 문서 객체의 연관 관계를 나타내는 동기화 변환 규칙을 추가하여 동기화 변환 템플릿을 생성하는 동기화 변환 템플릿 생성부와; 상기 동기화 변환 템플릿을 기반으로 제 1 구조화 문서를 변환하여 제 2 구조화 문서를 생성하고, 동기화 변환 템플릿에 포함된 동기화 변환 규칙에 따라 제 1 구조화 문서와 제 2 구조화 문서의 각 객체간 연관 관계가 규정된 동기화 문서를 생성하는 문서구조 변환부;가 구비된 동기화 문서구조 변환기를 포함하여 이루어진다.
상기 문서구조 변환기에는 제 2 구조화 문서 또는 제 1 구조화 문서가 수정되면 수정된 구조화 문서의 객체와 연관된 타 구조화 문서의 객체를 상기 동기화 문서에서 검색한 후, 수정된 구조화 문서의 객체와 부합되게 타 구조화 문서의 객체를 수정하는 이벤트처리부가 구비된다.
상기 이벤트처리부는 제 2 구조화 문서의 수정에 따라 제 1 구조화 문서의 수정을 수행한 후, 수정된 제 1 구조화 문서의 객체와 연관된 수정되지 않은 제 2 구조화 문서의 객체를 동기화 문서에서 검색한 후, 수정된 제 1 구조화 문서의 객체와 부합되게 제 2 구조화 문서의 객체를 수정한다.
상기 문서구조 변환부에 의해 생성되는 동기화 문서의 객체는 제 1 구조화 문서의 객체와 연결되는 인터페이스와, 상기 제 1 구조화 문서의 객체와 연관된 제 2 구조화 문서의 객체와 연결되는 인터페이스와, 상기 제 2 구조화 문서의 객체에서 발생하는 이벤트 정보를 전달받는 인터페이스와, 상기 제 1 구조화 문서의 객체와 제 2 구조화 문서의 객체 간 변환 규칙이 규정된 동기화 문서변환 템플릿을 포 함하여 이루어진다.
상기 문서구조 변환부에 의해 생성되는 동기화 문서를 구성하는 EXSL DOM Node에는 문서의 형태 및 편집영역을 제어하기 위한 EXSL Region Node와, 반복적으로 나타나는 상기 EXSL Region Node의 삽입과 삭제 및 반복횟수를 제어하기 위한 EXSL Container Node와, 사용자의 텍스트 입력을 감지하여 제 1 구조화 문서 및 제 2 구조화 문서를 변경하는 EXSL Text Node와, 윈도우 공용 컨트롤을 제어하여 윈도우 공용 컨트롤을 통해 입력된 값이 제 1 구조화 문서와 제 2 구조화 문서에 반영되도록 하는 EXSL Control Node가 포함된다.
한편, 상기 목적을 달성하기 위하여 본 발명에서 사용하는 구조화 문서의 동기화 객체를 이용한 문서변환 방법은 저장을 위한 제 1 구조화 문서에서 표현을 위한 제 2 구조화 문서를 생성하기 위해서 일반적으로 사용되는 구조화 문서의 변환 규칙을 규정한 변환 템플릿에 상기 변환 템플릿의 문법 구문과 제 1 구조화 문서형 정의 및 제 2 구조화 문서형 정의에 따른 제 1 구조화 문서와 제 2 구조화 문서의 객체 간 연관관계 및 제어 정보를 나타내는 동기화 변환규칙을 추가하여 동기화 변환 템플릿을 생성하는 동기화 변환 템플릿 생성단계와; 상기 단계에서 생성된 동기화 변환 템플릿을 기반으로 제 1 구조화 문서를 변환하여 제 2 구조화 문서를 생성하고, 동기화 변환 템플릿에 포함된 제 1 구조화 문서 객체와 제 2 구조화 문서 객체의 동기화 변환 규칙에 따라 제 1 구조화 문서와 제 2 구조화 문서의 각 객체 간 연관관계를 규정하는 동기화 문서 객체를 생성하는 문서구조 변환단계;를 포함하여 이루어진다.
상기 문서구조 변환단계를 통하여 제 2 구조화 문서 객체와 동기화 문서 객체가 생성된 후 제 2 구조화 문서가 수정되면, 수정된 제 2 구조화 문서의 객체와 연관된 제 1 구조화 문서의 객체를 상기 동기화 문서 객체에서 검색한 후, 검색된 제 1 구조화 문서의 객체를 수정된 제 2 구조화 문서의 객체와 부합되게 수정하고; 상기 수정된 제 1 구조화 문서의 객체와 연관된 수정되지 않은 제 2 구조화 문서의 객체를 동기화 문서 객체에서 검색한 후, 검색된 제 2 구조화 문서의 객체를 수정된 제 1 구조화 문서의 객체와 부합되게 수정하게 된다.
또한, 상기 문서구조 변환단계를 통하여 제 2 구조화 문서와 동기화 문서 객체가 생성된 후 제 1 구조화 문서가 수정되면, 수정된 제 1 구조화 문서의 객체와 연관된 제 2 구조화 문서의 객체를 상기 동기화 문서에서 검색한 후, 검색된 제 2 구조화 문서의 객체를 수정된 제 1 구조화 문서의 객체와 부합되게 수정하게 된다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 상세한 설명에서는 저장을 위한 제 1 구조화 문서로 XML 문서를, 표현을 위한 제 2 구조화 문서로 HTML 문서를 실시예로 들어 설명한다.
도 3은 본 발명의 실시예에 따른 구조화 문서의 동기화를 이용하여 구조화 문서가 변환되는 과정을 나타낸 개념도이다.
도 3에 도시된 바와 같이, 본 발명의 실시예에 따른 동기화 문서구조 변환기 (EXSLT(Enhanced eXtensible StyleSheet Language Transformations) 엔진)(300)는 동기화 변환 템플릿(EXSLT 템플릿)(302)에 기술된 변환규칙에 따라 제 1 구조화 문서(XML 문서)(100)를 변환하여 제 2 구조화 문서(HTML 문서)(200)를 생성함과 동시에 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 연관 관계를 나타내는 동기화 문서(EXSL 문서)(310)를 생성하게 된다.
상기 동기화 문서구조 변환기(300)에 문서구조 변환규칙을 제공하는 동기화 변환 템플릿(302)은 제 1 구조화 문서형 정의(110)와 제 2 구조화 문서형 정의(210)의 차이에 따른 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환규칙이 규정된 변환 템플릿(XSLT 템플릿)(301)이 전처리되어 생성되는 것으로, 이 동기화 변환 템플릿(302)은 종래 변환 템플릿(301)에 동기화 변환을 위한 추가 정보만 삽입된 것이기 때문에 종래의 문서구조 변환기(30)와 호환된다.
상기 동기화 문서구조 변환기(300)는 동기화 변환 템플릿(302)에 규정된 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환규칙에 따라 제 1 구조화 문서(100)를 변환하여 제 2 구조화 문서(200)를 생성하고, 동기화 변환 템플릿(302)에 규정된 동기화 문서 생성규칙에 따라 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 각 객체간 연관관계를 나타내는 동기화 문서(310)를 생성하게 된다.
도 4는 본 발명의 실시예에 따라 DOM Tree 구조를 통하여 제 1 구조화 문서인 XML 문서가 변환되어 제 2 구조화 문서인 HTML 문서와 동기화 문서인 EXSL 문서가 생성되는 과정을 나타내는 개념도이다.
도 4에 도시된 바와 같이, 제 1 구조화 문서(100)인 XML 문서를 DOM Tree 구조를 통하여 제 2 구조화 문서(200)인 HTML 문서로 변환하는 과정은 도 2에 도시된 종래 변환 과정과 동일하다.
다만, 본 발명에서는 동기화 문서구조 변환기(300)인 EXSLT 엔진이 동기화 변환 템플릿(302)인 EXSLT 템플릿을 참조하여 제 1 구조화 문서(XML DOM Tree)(100a)를 변환시켜 제 2 구조화 문서(HTML DOM Tree)(200a)를 생성함과 동시에, 제 1 구조화 문서(100a)와 제 2 구조화 문서(200a)의 연관 관계를 나타내는 동기화 문서(EXSL DOM Tree)(310a)를 추가로 생성시키게 된다. 제 1 구조화 문서(XML DOM Tree)(100a)의 각 Node Object(101)는 동기화 문서(EXSL DOM Tree)(310a)의 각 Node Object(311)와 연결되고, 동기화 문서(EXSL DOM Tree)(310a)의 각 Node Object(311)는 제 2 구조화 문서(HTML DOM Tree)(200a)의 각 Node Object(201)와 연결된다. 통상 제 1 구조화 문서(XML DOM Tree)(100a)의 각 Node Object(101)와 제 2 구조화 문서(HTML DOM Tree)(200a)의 각 Node Object(201)는 1:n의 관계를 이루고 있으므로, 본 발명에 의해 생성되는 동기화 문서(EXSL DOM Tree)(310a)는 제 1 구조화 문서(XML DOM Tree)(100a)보다 복잡한 구조를 이루게 된다.
서로 상이한 XML DOM Tree(100a)와 HTML DOM Tree(200a) 및 EXSL DOM Tree(310a)의 각 Node Object(101)(201)(311)간 연결은 컴포넌트의 통합 및 커뮤니케이션 방법에 대한 표준을 정의한 COM(Component Object Model ; 컴포넌트 개체 모델) 표준 인터페이스 기술을 통하여 구현됨으로써 특정 벤더나 제품에 종속이지 않는다.
도 5는 본 발명의 실시예에 따른 EXSL DOM Tree와 XML DOM Tree 및 HTML DOM Tree의 각 Node Object간 연결을 나타내는 블록도이다.
도 5에 도시된 바와 같이, XML DOM Tree(100a)의 각 Node Object(101) 및 HTML DOM Tree(200a)의 각 Node Object(201)는 COM 표준 인터페이스인 IUnknown 인터페이스를 기반으로 하는 다양한 인터페이스를 제공하여 EXSL DOM Tree(310a)의 각 Node Object(311)와 연결된다.
상기 EXSL DOM Node Object(311)에는 XML DOM Node Object(101)와의 연결을 위한 IXMLDOMNodeSite 인터페이스(311a)와, HTML DOM Node Object(201)와의 연결을 위한 IHTMLDOMNodeSite 인터페이스(311b)와, HTML DOM Node Object(201)에서 발생하는 이벤트 정보를 전송받기 위한 EventSink 인터페이스(311c)와, 상기 IXMLDOMNodeSite 인터페이스(311a)와 IHTMLDOMNodeSite 인터페이스(311b)를 통하여 연결된 XML DOM Node Object(101)와 HTML DOM Node Object(201) 사이의 변환 정보가 기술된 XSLT Template(311d)이 구비되어 있다.
한편, HTML DOM Node Object(201)에는 WYSIWYG으로 표현되는 HTML 문서의 변경이 EXSL DOM Node Object(311)를 통하여 XML 문서에 실시간으로 반영될 수 있도록 하기 위하여 HTML 문서의 수정이나 삭제 및 추가 등에 따른 이벤트 정보를 발생시켜 EXSL DOM Node Object의(311) EventSink 인터페이스(311c)에 실시간 전송하는 EventSoure 인터페이스(201a)가 구비된다.
상기의 구성으로 이루어진 EXSL DOM Node Object(311)는 IXMLDOMNodeSite 인 터페이스(311a)와 IHTMLDOMNodeSite 인터페이스(311b)를 통하여 각각 XML DOM Node Object(101)와 HTML DOM Node Object(201)를 제어하게 되는데, XML DOM Node Object(101) 또는 HTML DOM Node Object(201)의 변경시 XSLT Template(311d)에 기술된 XML DOM Node Object(101)와 HTML DOM Node Object(201)의 변환 규칙에 따라 문서 전체가 아닌 수정된 문서 부분과 연관된 문서 부분만 변환할 수 있도록 한다.
도 6은 본 발명의 실시예에 따라 XML 문서와 같은 제 1 구조화 문서를 HTML 문서 같은 제 2 구조화 문서로 변환하는 문서변환 서버의 블록 구성도이다.
도 6에 도시된 바와 같이, 본 발명에 따른 문서변환 서버(600)는 데이터를 입력받는 키보드나 마우스 등의 입력장치(620)와, 문서변환 서버(600)에 의해 처리되는 데이터를 모니터나 프린터 등으로 출력하는 출력장치(630), 네트워크 연결을 위한 네트워크장치(640), 외부 장치와의 데이터 송수신을 제어하는 입출력포트(650), 문서변환 서버(600)의 구동을 위한 프로그램 및 데이터가 저장되는 기억장치(660), 상기 각 구성부를 제어하고 관리하는 중앙제어부(610)를 포함하여 이루어진다.
상기 중앙제어부(610)는 문서변환 서버(600)를 구동시키고 기억장치(660)에 탑재된 각종 프로그램을 실행시켜 데이터를 처리하는 장치로서, 이 중앙제어부(610)는 중앙처리장치(CPU)와 롬(ROM) 및 램(RAM)을 포함하여 이루어진다.
상기 기억장치(660)에는 문서변환 서버(600)의 운영을 위한 윈도즈(Windows) 등의 운영체제(OS ; Operating System)(500)와, 제 1 구조화 문서와 제 2 구조화 문서의 변환을 수행하는 동기화 문서구조 변환기(EXSLT 엔진)(300)와, 동기화 문서구조 변환기(300)를 통하여 처리하는데 필요한 데이터가 저장되는 데이터저장소(400)가 탑재된다.
상기 동기화 문서구조 변환기(300)는 XML 문서와 같은 제 1 구조화 문서(100)를 변환하여 HTML 문서 등의 제 2 구조화 문서(200)를 생성하고, 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 각 객체간 연관 관계를 나타내는 동기화 문서(310)를 생성하여 어느 한쪽의 문서가 변경되는 경우, 변경사항을 감지하여 다른 한쪽의 문서에서 변경사항과 연관된 부분만 자동적으로 수정하도록 하는 프로그램이다.
도 7은 본 발명의 실시예에 따른 문서변환 서버에 구비된 동기화 문서구조 변환기의 블록 구성도이다.
도 7에 도시된 바와 같이, 본 발명의 실시에 따른 동기화 문서구조 변환기(EXSLT 엔진)(300)는 문서형 정의 해석부(300a)와, 동기화 변환 템플릿 생성부(300b), 문서구조 변환부(300c), 이벤트처리부(300d)를 포함하여 구성된다.
상기 문서형 정의 해석부(300a)는 제 1 구조화 문서형 정의(XML DTD)(110)와 제 2 구조화 문서형 정의(HTML DTD)(210)를 해석하는 프로그램 모듈로서, 이 문서형 정의 해석부(300a)는 제 1 구조화 문서형 정의(110)에 정의된 문서형을 해석하여 각 엘리먼트의 발생빈도(Cardinality)와 엘리먼트 간 상하관계, 삽입 가능한 엘리먼트 목록 및 기본형태 등 동기화 변환 템플릿 생성(300b)에 필요한 정보들을 추 출하여 데이터저장소(400)에 저장한다. 그리고 이 문서형 정의 해석부(300a)는 문서구조 변환부(300c)에 의해 변경되는 제 1 구조화문서(100)와 제 2 구조화 문서(200)의 유효성을 검사하여 정확한 구조화 문서가 유지되도록 한다.
상기 동기화 변환 템플릿 생성부(300b)는 문서형 정의 해석부(300a)의 문서형 정의 해석 결과로써 생성된 데이터를 기반으로 동기화 변환 템플릿(302)을 생성하는 프로그램 모듈로서, 기존의 표준 변환 방법으로 사용되는 변환 템플릿(XSLT 템플릿)(301)을 기본으로 하여 동기화 문서 생성에 필요한 추가 정보를 삽입하거나 템플릿의 구조를 변경하여 동기화 변환 템플릿(EXSLT 템플릿)(302)을 생성하게 된다.
상기 문서구조 변환부(300c)는 동기화 변환 템플릿(302)에 규정된 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환규칙에 따라 제 1 구조화 문서(100)를 변환하여 제 2 구조화 문서(200)를 생성하고, 동기화 변환 템플릿(302)의 동기화 변환규칙에 따라 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 각 객체간 연관관계를 나타내는 동기화 문서(310)를 생성하는 프로그램 모듈이다. 본 발명의 실시예에서 이 문서구조 변환부(300c)는 제 1 구조화 문서(100)인 XML 문서를 파싱하여 생성된 XML DOM Tree(100a)를 동기화 변환 템플릿(302)인 EXSLT 템플릿의 변환 규칙에 따라 변환시켜 제 2 구조화 문서(200)를 나타내는 HTML DOM Tree(200a)를 생성하고, EXSLT 템플릿의 동기화 변환 규칙에 따라 XML DOM Tree(100a)의 각 Node Object(101)와 이 XML DOM Tree(100a)의 각 Node Object(101)가 변환되어 생성된 HTML DOM Tree(200a)의 각 Node Object(201)를 연결하는 EXSL DOM Tree(310a) 의 각 Node Object(311)를 생성하게 된다. 상기 EXSL DOM Tree(310a)의 각 Node Object(311)가 모여 EXSL DOM Tree(310a)를 구성하게 되고, 이 EXSL DOM Tree(310a)를 통하여 동기화 문서(310)인 EXSL 문서가 작성된다.
상기 이벤트처리부(300d)는 문서구조 변환부(300c)에 의해 변환된 제 2 구조화 문서(200) 또는 변환전 문서인 제 1 구조화 문서(100)의 일부 데이터가 변경되면 이와 연관된 상대 문서를 자동으로 변경시키는 프로그램 모듈이다. 이 이벤트처리부(300d)는 WYSIWYG로 표현되는 제 2 구조화 문서(200)의 일부 데이터가 수정, 삭제, 추가 등 변경되는 경우 이벤트 발생신호에 따라 제 2 구조화 문서(200)의 변경 데이터와 연관된 제 1 구조화 문서(100)의 데이터를 동기화 문서(310)에서 검색한 후 이 제 1 구조화 문서(100)의 데이터를 제 2 구조화 문서의 변경 데이터와 연관되도록 변경시키게 된다. 또한, 이 이벤트처리부(300d)는 제 1 구조화 문서(100)의 일부 데이터가 변경되는 경우 동기화 문서(310)로부터 변경된 제 1 구조화 문서(100)의 변경 데이터와 연관된 제 2 구조화 문서(200)의 데이터를 검색하여 변경시킴으로써 제 1 구조화 문서(100)의 변경이 제 2 구조화 문서(200)에 반영될 수 있도록 한다.
도 8은 본 발명의 실시예에 따른 문서변환 서버에 구비된 데이터저장소의 블록 구성도이다.
도 8에 도시된 바와 같이, 문서변환 서버(600)의 데이터저장소(400)에는 제 1 구조화 문서(100)의 문서형이 정의된 제 1 구조화 문서형 정의(XML DTD)(110)와, 제 2 구조화 문서(200)의 문서형이 정의된 제 2 구조화 문서형 정의(HTML DTD)(210)와, 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환 규칙이 규정된 변환 템플릿(XSLT 템플릿)(301)과, 상기 변환 템플릿(301)에 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 각 객체 간 연관 관계를 나타내는 동기화 변환 규칙이 추가로 삽입된 동기화 변환 템플릿(EXSLT 템플릿)(302)과, 제 1 구조화 문서형 정의(110)에 따라 작성된 제 1 구조화 문서(XML 문서)(100)와, 제 1 구조화 문서(100)가 변환되어 생성된 제 2 구조화 문서(HTML 문서)(200)와, 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 연관 관계를 나타내는 동기화 문서(EXSL 문서)(4310)와, 제 1 구조화 문서(100) 또는 제 2 구조화 문서(200)의 변경에 따른 이벤트 발생정보 및 처리정보가 기록된 이벤트 로그(Event Log)(320) 등이 등록된다.
본 발명의 실시예에서 상기 제 1 구조화 문서(100)인 XML 문서와 제 2 구조화 문서(200)인 HTML 문서 및 동기화 문서(310)인 EXSL 문서는 도 4에 도시된 DOM Tree 형태의 구조를 가지며, 이 DOM Tree를 구성하는 각 객체는 도 5의 DOM Node Object 형태의 구조를 갖는다.
이하, 상기의 구성으로 이루어진 본 발명의 실시예에 따른 문서변환 서버(600)를 통하여 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환과정에 대하여 설명한다.
도 9는 본 발명의 실시예에 따라 제 1 구조화 문서가 변환되어 제 2 구조화 문서와 동기화 문서가 생성되는 과정을 나타낸 흐름도이다.
도 9에 도시된 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환과정은, 제 1 구조화 문서(100)와 이 제 1 구조화 문서(100)를 정의하는 제 1 구조화 문서형 정의(110)가 존재하고, 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 표준 변환 규칙을 규정하는 표준 변환 템플릿(XSLT 템플릿)(301)이 존재하는 것으로부터 설명한다.
먼저, 문서형 정의 해석부(300a)는 제 1 구조화 문서(100)의 문서형을 정의하는 제 1 구조화 문서형 정의(110)를 파싱하여 데이터저장소(400)에 등록하고(단계 S100), 표준 변환에 사용되는 변환 템플릿(XSLT 템플릿)(301)을 파싱하여 데이터저장소(400)에 등록한다(단계 S110). 동기화 변환 템플릿 생성부(300b)는 등록된 변환 템플릿(XSLT 템플릿)(301)을 처리가 용이하도록 구조를 변경하고 제 1 구조화 문서형 정의(110)에 맞게 변환 정보를 추가하여 동기화 변환 템플릿(EXSLT 템플릿)(302)을 생성하고 이를 데이터저장소(400)에 등록한다(단계 S120).
동기화 변환 템플릿(302)이 생성되면, 문서구조 변환부(300c)는 동기화 변환 템플릿(302)의 변환 규칙에 따라 제 1 구조화 문서(100)를 변환시키게 된다(단계 S130). 동기화 변환 템플릿(302)에 규정된 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환규칙에 따라 제 1 구조화 문서(100)가 변환되어 제 2 구조화 문서(200)가 생성되고(단계 S140), 동기화 변환 템플릿(302)에 규정된 동기화 변환 규칙에 따라 제 1 구조화 문서(100)와 이 제 1 구조화 문서(100)가 변환되어 생성된 제 2 구조화 문서(200)의 각 객체 간 연관관계를 나타내는 동기화 문서(310)를 생 성하게 된다(단계 S150).
제 1 구조화 문서(100)가 변환되어 생성된 제 2 구조화 문서(200)와 동기화 문서(310)는 유효성 검사를 거친 후 최종적으로 제 2 구조화 문서(200)와 동기화 문서(310)로 제작된다(단계 S160).
이하에서는 상기의 과정을 통하여 생성되는 제 1 구조화 문서(100)인 XML 문서와, 변환 템플릿(301)인 XSLT 템플릿과, 동기화 변환 템플릿(302)인 EXSLT 템플릿과, 제 2 구조화 문서(200)인 HTML 문서와, 동기화 문서(310)인 EXSL 문서의 구체적인 실시예를 설명한다.
먼저, 제 1 구조화 문서(100)인 XML 문서가 종래의 변환방법인 변환 템플릿(301)인 XSLT 템플릿을 통하여 제 2 구조화 문서(200)인 HTML 문서로 변환되는 일례를 설명한다.
도 10a는 간단한 물품 구매서 정보를 포함하는 XML 문서의 일례로, XML 문서에는 최상위 루트 엘리먼트인 <물품구매> 엘리먼트의 아래에 작성자 정보를 나타내는 <작성자> 엘리먼트, 작성날짜를 나타내는 <작성날짜> 엘리먼트, 문서 제목을 나타내는 <제목> 엘리먼트, 구매 물품 정보를 포함하는 <물품목록> 엘리먼트가 존재한다. 이 <물품목록> 엘리먼트 아래에는 각 구매 물품에 대한 상세 정보를 표현하는 <이름>, <가격>, <개수> 엘리먼트로 구성된 <목록> 엘리먼트가 구매 물품의 종류만큼 존재하게 된다.
도 10b는 상기 XML 문서를 HTML 문서로 변환하기 위하여 적용되는 XSLT 템플릿의 일례로, XSLT 템플릿은 최상위 엘리먼트인 <물품구매> 엘리먼트에 적용되는 물품구매 템플릿과 각 구매 목록에 적용되는 목록 템플릿으로 구성되어 있으며, XML 문서에 포함된 제목, 구매물품 정보, 작성자 정보가 변환 결과에 포함되고 구매물품 목록은 테이블 형식으로 표현하도록 구성되어 있다.
도 10c는 상기 도 10a의 XML 문서에 도 10b의 XSLT 템플릿을 적용하여 생성된 HTML 문서의 일례이고, 도 10d는 상기 도 10c에 도시된 HTML 문서를 WYSIWYG 형태로 표현한 화면의 일례이다.
이러한 종래의 변환방법은, 도 10d의 HTML 문서의 표현 화면에서 볼펜의 개수를 5개에서 다른 값으로 바꾼다 하여도 도 10a의 XML 문서의 <개수> 엘리먼트의 값은 변하지 않는다. 만약, 도 10d의 표시화면에 나타난 문서를 수정하려면, 원본 데이터인 XML 문서의 각 객체들과 결과 문서인 HTML 문서의 각 객체들 사이의 연관관계를 구성하고 관리하여 HTML 문서의 수정 시 이와 연관된 XML 문서의 변경이 실시간으로 반영될 수 있도록 하여야 한다.
도 11a는 상기 도 10a의 XML 문서 중 <이름>, <가격>, <개수> 엘리먼트로 구성된 <목록> 엘리먼트를 나타낸 XML 문서의 일례이고, 도 11b는 상기 도 11a의 XML 문서를 HTML 문서로 변환하기 위하여 적용되는 XSLT 템플릿의 일례이며, 도 11c는 상기 도 11b의 XSLT 템플릿에 XML 문서와 HTML 문서의 동기화를 위한 정보가 추가되어 전처리된 EXSLT 템플릿을 일례이고, 도 11d는 상기 도 11a의 XML 문서에 도 11c의 EXSLT 템플릿을 적용하여 생성된 HTML 문서의 일례이다.
도 11a의 XML 문서와 도 11b의 XSLT 템플릿 및 도 11d의 HTML 문서는 도 10a와 도 10b 및 도 10d에 나타난 XML 문서와 XSLT 템플릿 및 HTML 문서의 해당 부분과 동일함을 알 수 있다.
다만, 본 발명에서는 XSLT 템플릿이 전처리되어 생성된 EXSLT 템플릿을 이용하여 XML 문서를 변환시켜 HTML 문서를 생성하게 되는데, 이 EXSLT 템플릿은 XSLT 템플릿에 XML 문서 유형을 정의하는 XML DTD나 스키마 정보와 변환결과로 생성되는 HTML 문서의 엘리먼트 정보를 기반으로 하여 변화에 필요한 추가 정보가 삽입되어 생성된다. 도 11c에 도시된 바와 같이, 추가 정보로는 exsl 네임스페이스를 사용하는데, 여기에는 EXSL 객체의 유형을 나타내는 exsl:type과, 이 EXSL 객체의 유형과 연관된 원본 XML 문서의 엘리먼트를 나타내는 XPath 형식의 exsl:select 등의 속성 정보가 포함된다. EXSLT 템플릿은 XSLT 템플릿에 XML 데이터의 객체와 HTML 데이터의 객체간의 동기화를 위한 정보가 추가된 것이기 때문에 EXSLT 템플릿과 XSLT 템플릿은 호환이 가능하다.
도 12a 내지 도 12d는 본 발명의 실시예에 따라 XSLT 템플릿에 동기화 정보를 추가하여 EXSLT 템플릿을 생성하는 과정을 나타낸 일례이다.
도 12a는 XML 템플릿을 구성하는 최상위 문서요소가 하나가 될 수 있도록 XML 템플릿의 구조를 수정하여 편집 단위가 되는 최상위 엘리먼트를 EXSL Region Node 유형으로 정의하는 것을 나타낸 것이다. 상기 정의된 EXSL Region Node 유형 에 의해 생성되는 EXSLT 문서의 EXSL Region Node는 테이블, 이미지와 같이 편집 영역을 갖는 문서요소의 틀을 생성하고 제어하기 위한 것으로 삽입 및 삭제의 단위가 된다.
도 12b는 XSLT 템플릿의 <xsl:apply-of> 문법 구문을 식별하여 사용자의 키보드 입력을 처리하는 EXSL Text Node 유형으로 정의하는 것을 나타낸 것이다. 상기 정의된 EXSL Text Node 유형에 의해 생성되는 EXSLT 문서의 EXSL Text Node는 사용자의 키보드 입력을 감지하여 사용자로부터 입력된 내용이 XML 문서와 HTML 문서에 실시간 반영되도록 한다.
도 12c는 XSLT 템플릿의 <xsl:apply-templates> 문법 구문을 식별하여 XML DTD에서 정의된 문서요소의 반복횟수에 맞는 EXSL Container Node 유형으로 정의하는 것을 나타낸 것이다. 상기 정의된 EXSL Container Node 유형에 의해 생성되는 EXSLT 문서의 EXSL Container Node는 XML DTD에서 정의된 반복적으로 나타나는 문서요소를 제어하기 위한 것으로, 반복적으로 나타나는 Region Node의 삽입/삭제 및 반복횟수를 제어하게 된다.
도 12d는 HTML 문서의 문서요소를 식별하여 사용자의 입력을 돕는 EXSL Control Node 유형으로 정의하는 것을 나타낸 것이다. 상기 정의된 EXSL Control Node 유형에 의해 생성되는 EXSLT 문서의 EXSL Control Node는 사용자의 입력을 돕는 콤보박스, 체크박스와 같은 윈도우 공용 컨트롤을 제어하여 윈도우 컨트롤을 통해 입력된 값이 XML 문서와 HTML 문서에 실시간으로 반영되도록 한다.
이와 같이, 본 발명에 따른 동기화 문서구조 변환기(EXSLT 엔진)(300)의 동 기화 변환 템플릿 생성부(300b)는 문서형 정의 해석부(300a)에서 파싱된 XSLT 템플릿을 동기화 제어가 가능하도록 구조를 수정하거나, XSLT 템플릿의 문법 요소와 XML DTD 및 HTML DTD를 참조하여 적절한 EXSL Node의 유형을 정의하여 삽입함으로써 EXSLT 템플릿을 생성하게 된다.
도 13은 상기 도 11a에 도시된 XML 문서에 도 11c의 EXSLT 템플릿을 적용하여 도 11d의 HTML 문서 변환되는 과정에서 생성되는 EXSL 문서의 EXSL DOM Tree를 도시한 일례이다.
도 13에 도시된 바와 같이, XML 문서는 파싱 후 XML DOM Tree(100a)로 변환되는데, 먼저 최상위 엘리먼트인 <목록> 엘리먼트(101)는 EXSLT 템플릿의 목록 템플릿에 의해 변환되어 생성된 HTML DOM Tree(200a)의 TR 엘리먼트(201)와 대응되고 이러한 대응상태를 나타내기 위하여 EXSLT 템플릿의 Region EXSL 정보에 의해 EXSL DOM Tree(310a)의 EXSL Region Node(311)가 생성되어 <목록> XML DOM Node(101)와 <TR> HTML DOM Node(201)에 각각 연결된다.
또한, <이름>과 <가격> XML DOM Node(102)(103)는 각각 <TD> HTML DOM Node(202)(203)에 대응하는 EXSL Text Node(312)(313)로 구성되고, <개수> XML DOM Node(104)는 <SELECT> HTML DOM Node(204)에 대응하는 EXSL Control Node(314)로 구성된다. 상기 EXSL Region Node(311)와 EXSL Text Node(312)(313) 및 EXSL Control Node(314) 등의 EXSL DOM Node는 도 5에서 설명한 EXSL DOM Node Object의 구성을 따른다.
상기와 같이, XML 문서에 EXSLT 템플릿이 적용되어 변환된 HTML 문서는 XML 문서에 XSLT 템플릿을 적용하여 변환된 HTML 문서와 동일하지만, XML 문서에 EXSLT 템플릿을 적용하는 경우 HTML 문서의 생성과 함께 XML 문서와 HTML 문서의 각 객체간 연관관계를 나타내는 EXSLT 문서가 생성되게 된다.
이에 따라, 만약 HTML 문서의 표현 화면에서 볼펜의 개수를 다른 값으로 변경하게 되면 HTML DOM Tree(200a)의 SELECT Node(204)에서 변경 이벤트가 발생되고, 발생된 이벤트 정보는 SELECT HTML DOM Node(204)와 연결된 EXSL Control Node(314)에 전달되며 이에 따라 이 EXSL Contol Node(314)와 연결된 <개수> XML DOM Node(104)의 값이 변경되어 실시간으로 HTML 문서의 변경이 XML 문서에 반영되게 된다.
도 14는 본 발명의 실시예에 따라 제 2 구조화 문서인 HTML 문서가 편집되는 경우 이와 연관된 제 1 구조화 문서인 XML 문서가 업데이트되는 과정을 나타낸 흐름도이다.
도 14에 도시된 바와 같이, WYSIWYG으로 표현되는 HTML 문서가 사용자에 의해 편집되게 되면(단계 S200), 편집 대상에 해당되는 HTML DOM Node Object(201)는 편집 내용에 따른 편집 이벤트를 발생시키게 된다(단계 S210).
HTML DOM Node Object(201)에서 발생하는 편집 이벤트 정보는 Event Source 인터페이스(201a)를 통하여 연결된 EXSL DOM Node Object(311)로 전송되게 되고(단계 S220), EXSL DOM Node Object(311)에 전송된 편집 이벤트 정보에 따라 이벤트 처리부(300d)는 EXSL DOM Node Object(311)와 연결된 XML DOM Node Object(101)를 업데이트시키게 된다(단계 S230).
한편, XML DOM Node Object(101)가 업데이트되게 되면 이 XML DOM Node Object(101)와 연관된 편집되지 않은 다른 HTML DOM Node Object도 업데이트되어야 하기 때문에, 이벤트 처리부(300d)는 업데이트된 XML DOM Node Object(101)와 연관된 HTML DOM Node Object가 존재하는지 EXSL DOM Tree(310a)를 검색하게 된다(단계 S240).
만약, 업데이트된 XML DOM Node Object(101)와 연관된 HTML DOM Node Object가 존재하게 되면(단계 S250), EXSLT 템플릿의 변환 규칙에 따라 해당 HTML DOM Node Object를 업데이트시키게 된다(단계 S260). 이러한 HTML DOM Node Object(201)의 편집에 따른 XML DOM Node Object(101) 및 HTML DOM Node Object의 업데이트 과정은 사용자에 의해 편집이 종료될 때까지 반복 수행된다(단계 S270).
상기와 같이, HTML 문서가 편집되는 경우 편집된 HTML 문서와 연관된 XML 문서가 실시간으로 업데이트됨으로써 WYSIWYG으로 표현할 수 있는 HTML 문서의 편집을 통한 XML 문서의 변경이 가능하다.
도 15는 본 발명의 실시예에 따라 제 1 구조화 문서인 XML 문서가 편집되는 경우 제 2 구조화 문서인 HTML 문서가 업데이트되는 과정을 나타낸 흐름도이다.
도 15에 도시된 바와 같이, 먼저 XML 문서가 사용자에 의해 편집되면(단계 S300), 편집되는 내용은 편집 되돌리기/되살리기 기능 등을 위하여 편집 Transaction에 임시 저장되고(단계 S310), XML 문서의 편집이 XML DTD의 문서형 정의에 부합되지는 유효성 검사(DTD Check)가 수행된다(단계 S320). 유효성 검사 결과 편집된 XML 문서가 XML DTD의 문서형 정의에 어긋나는 경우 오류 메시지를 표시하여 사용자가 XML DTD의 문서형 정의에 부합되게 XML 문서를 재편집할 수 있도록 한다.
편집 XML 문서의 유효성 검사가 이루어진 후, XML 문서의 편집 종류에 따라 HTML 문서가 업데이트되게 된다(단계 S330).
먼저, XML 문서의 편집 종류가 XML 문서의 일부 데이터 신규 추가에 해당된다면(단계 S340), 추가된 XML 문서 부분을 나타내는 XML DOM Node Object(101)가 HTML DOM Node Object(201)로 변환되기 위한 EXSLT 템플릿의 적용 템플릿을 검색한 후(단계 S341), 해당 템플릿을 적용하여 XML DOM Node Object(101)를 HTML DOM Node Object(201)로 변환하는 EXSLT 변환을 수행하게 된다(단계 S242). XML DOM Node Object(101)의 EXSLT 변환에 따라 HTML DOM Node Object(201)가 생성되고 XML DOM Node Object(101)와 HTML DOM Node Object(201)의 연관관계를 나타내는 EXSL DOM Node Object(451)가 추가로 생성된다(단계 S343).
한편, XML 문서의 편집 종류가 XML 문서의 일부 데이터 삭제에 해당된다면(단계 S350), 삭제된 XML 문서 부분을 나타내는 XML DOM Node Object(101)와 연결된 EXSL DOM Node Object(311)를 EXSL DOM Tree(310a)에서 검색한 후(단계 S351), 삭제된 XML DOM Node Object(101)와 연결된 EXSL DOM Node Object(311)와 이 EXSL DOM Node Object(311)를 통하여 연결된 HTML DOM Node Object(201)를 삭제함으로써 삭제된 XML DOM Node Object(101)와 연관된 EXSL DOM Node Object(311) 및 HTML DOM Node Object(201)를 모두 삭제하게 된다(단계 S352).
또한, XML 문서의 편집 종류가 XML 문서의 일부 데이터 수정에 해당된다면(단계 S360), 수정된 XML 문서 부분을 나타내는 XML DOM Node Object(101)와 연결된 EXSL DOM Node Object(311)를 EXSL DOM Tree(310a)에서 검색한 후(단계 S361), 검색된 EXSL DOM Node Object(311)와 연결된 HTML DOM Node Object(201)를 수정함으로써 수정된 XML DOM Node Object(101)와 연관된 HTML DOM Node Object(201)를 수정하게 된다(단계 S362).
상술한 바와 같이, 본 발명에 따른 구조화 문서의 동기화를 이용한 문서 변환 시스템은 XML 문서 등의 저장을 위한 제 1 구조화 문서(100)를 HTML 문서 등의 표현을 위한 제 2 구조화 문서(200)로 변환할 때 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 각 객체를 동기화시키는 별도의 동기화 문서(310)를 생성하여, 제 2 구조화 문서(200) 또는 제 1 구조화 문서(100)의 일부를 수정하는 경우 동기화 문서(310)를 통하여 검색되는 수정 부분과 연관된 제 1 구조화 문서(100) 또는 제 2 구조화 문서(200)를 실시간으로 수정할 수 있다.
상술한 실시예에서는 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 실시예로 XML 문서와 HTML 문서를 설명하였지만, 이는 다른 종류의 구조화 문서로 변형되어 실시될 수 있다.
예를 들면, 제 1 구조화 문서(100)가 SGML 문서이고 제 2 구조화 문서(200) 가 HTML 문서라면, 동기화 변환 템플릿(302)은 SGML 문서와 HTML 문서의 변환규칙을 규정하는 변환 템플릿(301)에 SGML DTD와 SGML 문서가 변환되어 생성되는 HTML 문서의 엘리먼트 정보를 기반으로 하여 생성되는 SGML 데이터와 HTML 데이터의 연관 관계를 나타내는 동기화 정보가 삽입되어 생성될 수 있다.
이와 같이, 본 발명은 상술한 실시예에 한정되는 것은 아니며 본 발명이 속하는 기술분야에서 통상의 지식을 갖는 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위내에서 다양한 수정 및 변형할 수 있음은 물론이다.
상술한 바와 같이, 본 발명에 따른 구조화 문서의 동기화를 이용한 문서변환 시스템 및 문서변환 방법은 제 1 구조화 문서를 변환하여 제 2 구조화 문서를 생성한 후 생성된 제 2 구조화 문서를 수정하는 경우 제 1 구조화 문서와 제 2 구조화 문서의 연관 관계를 나타내는 동기화 문서에 의해 제 2 구조화 문서의 수정 부분과 연관된 제 1 구조화 문서가 실시간으로 수정될 수 있도록 함으로써, 사용자에게 친숙한 WYSIWYG으로 표현할 수 있는 제 2 구조화 문서의 수정을 통하여 제 1 구조화 문서를 수정할 수 있는 효과가 있다.
또한, 본 발명에 따른 구조화 문서의 동기화를 이용한 문서변환 시스템 및 문서변환 방법은 제 1 구조화 문서의 일부를 수정하는 경우 제 1 구조화 문서 전체를 변환하지 않고도 동기화 문서를 참조하여 제 1 구조화 문서의 수정된 부분과 연관된 제 2 구조화 문서를 수정할 수 있어, 문서 수정 및 확인에 소요되는 시간을 절약할 수 있는 효과가 있다.

Claims (8)

  1. 저장을 위한 제 1 구조화 문서의 문서형을 정의하는 제 1 구조화 문서형 정의와 표현을 위한 제 2 구조화 문서의 문서형을 정의하는 제 2 구조화 문서형 정의의 차이에 따라 제 1 구조화 문서와 제 2 구조화 문서의 변환 규칙을 규정한 변환 템플릿을 기반으로 제 1 구조화 문서를 변환하여 제 2 구조화 문서를 생성하는 문서변환 시스템에 있어서,
    상기 문서변환 시스템은
    상기 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환 규칙이 규정된 변환 템플릿(301)에 상기 변환 템플릿(301)의 문법 구문과 제 1 구조화 문서형 정의(110) 및 제 2 구조화 문서형 정의(210)에 따른 제 1 구조화 문서(100) 객체와 제 2 구조화 문서(200) 객체의 연관 관계를 나타내는 동기화 변환 규칙을 추가하여 동기화 변환 템플릿(302)을 생성하는 동기화 변환 템플릿 생성부(300b)와;
    상기 동기화 변환 템플릿(302)을 기반으로 제 1 구조화 문서(100)를 변환하여 제 2 구조화 문서(200)를 생성하고, 동기화 변환 템플릿(302)에 포함된 동기화 변환 규칙에 따라 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 각 객체간 연관 관계가 규정된 동기화 문서(310)를 생성하는 문서구조 변환부(300c);가 구비된 동기화 문서구조 변환기(300)를 포함하여 이루어지는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 시스템.
  2. 제 1항에 있어서,
    상기 문서구조 변환기(300)에는
    제 2 구조화 문서(200) 또는 제 1 구조화 문서(100)가 수정되면 수정된 구조화 문서의 객체와 연관된 타 구조화 문서의 객체를 상기 동기화 문서(310)에서 검색한 후, 수정된 구조화 문서의 객체와 부합되게 타 구조화 문서의 객체를 수정하는 이벤트처리부(300d)가 구비되는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 시스템.
  3. 제 2항에 있어서,
    상기 이벤트처리부(300d)는 제 2 구조화 문서(200)의 수정에 따라 제 1 구조화 문서(100)의 수정을 수행한 후, 수정된 제 1 구조화 문서(100)의 객체와 연관된 수정되지 않은 제 2 구조화 문서(200)의 객체를 동기화 문서(310)에서 검색한 후, 수정된 제 1 구조화 문서(100)의 객체와 부합되게 제 2 구조화 문서(200)의 객체를 수정하는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 시스템.
  4. 제 1항에 있어서,
    상기 문서구조 변환부(300c)에 의해 생성되는 동기화 문서(310)의 객체(EXSL DOM Node Object)(311)는
    제 1 구조화 문서(100)의 객체(XML DOM Node Object)(101)와 연결되는 인터페이스(IXMLDOMNodeSite)(311a)와, 상기 제 1 구조화 문서(100)의 객체(XML DOM Node Object)(311a)와 연관된 제 2 구조화 문서(200)의 객체(HTML DOM Node Object)(201)와 연결되는 인터페이스(IHTMLDOMNodeSite)(311b)와, 상기 제 2 구조화 문서(200)의 객체(HTML DOM Node Object)(201)에서 발생하는 이벤트 정보(EventSource)(201a)를 전달받는 인터페이스(EventSink)(311c)와, 상기 제 1 구조화 문서(100)의 객체(XML DOM Node Object)(101)와 제 2 구조화 문서(200)의 객체(HTML DOM Node Object)(201)간 변환 규칙이 규정된 동기화 문서변환 템플릿(XSLT Template)(311d)을 포함하여 이루어지는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 시스템.
  5. 제 1항에 있어서,
    상기 문서구조 변환부(300c)에 의해 생성되는 동기화 문서(310)를 구성하는 EXSL DOM Node에는 문서의 형태 및 편집영역을 제어하기 위한 EXSL Region Node와, 반복적으로 나타나는 상기 EXSL Region Node의 삽입과 삭제 및 반복횟수를 제어하기 위한 EXSL Container Node와, 사용자의 텍스트 입력을 감지하여 제 1 구조화 문서(100) 및 제 2 구조화 문서(200)를 변경하는 EXSL Text Node와, 윈도우 공용 컨트롤을 제어하여 윈도우 공용 컨트롤을 통해 입력된 값이 제 1 구조화 문서(100)와 제 2 구조화 문서(200)에 반영되도록 하는 EXSL Control Node가 포함되는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 시스템.
  6. 저장을 위한 제 1 구조화 문서의 문서형을 정의하는 제 1 구조화 문서형 정 의와 표현을 위한 제 2 구조화 문서의 문서형을 정의하는 제 2 구조화 문서형 정의의 차이에 따라 제 1 구조화 문서와 제 2 구조화 문서의 변환 규칙을 규정한 변환 템플릿을 기반으로 제 1 구조화 문서를 변환하여 제 2 구조화 문서를 생성하는 문서변환 방법에 있어서,
    (a) 상기 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 변환 규칙이 규정된 변환 템플릿(301)에 상기 변환 템플릿(301)의 문법 구문과 제 1 구조화 문서형 정의(110) 및 제 2 구조화 문서형 정의(210)에 따른 제 1 구조화 문서(100)의 객체와 제 2 구조화 문서(200)의 객체간 연관 관계를 나타내기 위한 동기화 변환 규칙을 추가하여 동기화 변환 템플릿(302)을 생성하는 동기화 변환 템플릿 생성단계와;
    (b) 상기 단계에서 생성된 동기화 변환 템플릿(302)을 기반으로 제 1 구조화 문서(100)를 변환하여 제 2 구조화 문서(200)를 생성하고, 동기화 변환 템플릿(302)에 포함된 제 1 구조화 문서(100) 객체와 제 2 구조화 문서(200) 객체의 동기화 변환 규칙에 따라 제 1 구조화 문서(100)와 제 2 구조화 문서(200)의 각 객체간 연관 관계를 규정하는 동기화 문서(310)를 생성하는 문서구조 변환단계;를 포함하여 이루어지는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 방법.
  7. 제 6항에 있어서,
    상기 문서구조 변환단계(b)를 통하여 제 2 구조화 문서(200)와 동기화 문서(310)가 생성된 후 제 2 구조화 문서(200)가 수정되면,
    수정된 제 2 구조화 문서(200)의 객체와 연관된 제 1 구조화 문서(100)의 객체를 상기 동기화 문서(302)에서 검색한 후, 검색된 제 1 구조화 문서(100)의 객체를 수정된 제 2 구조화 문서(200)의 객체와 부합되게 수정하고;
    상기 수정된 제 1 구조화 문서(100)의 객체와 연관된 수정되지 않은 제 2 구조화 문서(200)의 객체를 동기화 문서(302)에서 검색한 후, 검색된 제 2 구조화 문서(200)의 객체를 수정된 제 1 구조화 문서(100)의 객체와 부합되게 수정하는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 방법.
  8. 제 6항에 있어서,
    상기 문서구조 변환단계(C)를 통하여 제 2 구조화 문서(200)와 동기화 문서(310)가 생성된 후 제 1 구조화 문서(100)가 수정되면,
    수정된 제 1 구조화 문서(100)의 객체와 연관된 제 2 구조화 문서(200)의 객체를 상기 동기화 문서(310)에서 검색한 후, 검색된 제 2 구조화 문서(200)의 객체를 수정된 제 1 구조화 문서(100)의 객체와 부합되게 수정하는 것을 특징으로 하는 구조화 문서의 동기화를 이용한 문서변환 방법.
KR1020050068377A 2005-07-27 2005-07-27 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법 KR100733054B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050068377A KR100733054B1 (ko) 2005-07-27 2005-07-27 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050068377A KR100733054B1 (ko) 2005-07-27 2005-07-27 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법

Publications (2)

Publication Number Publication Date
KR20070013770A KR20070013770A (ko) 2007-01-31
KR100733054B1 true KR100733054B1 (ko) 2007-06-27

Family

ID=38013422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050068377A KR100733054B1 (ko) 2005-07-27 2005-07-27 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법

Country Status (1)

Country Link
KR (1) KR100733054B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8219526B2 (en) 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
KR20220113030A (ko) * 2021-02-05 2022-08-12 주식회사 알티스트 Arxml 마이그레이션을 위한 문서 구조 변환 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1021227A (ja) 1996-07-03 1998-01-23 Fuji Xerox Co Ltd 文書構造変換装置および文書構造変換方法
JPH11272667A (ja) 1997-12-23 1999-10-08 Ricoh Co Ltd 構造化文書作成方法、構造化文書作成装置及び構造化文書作成用プログラムを格納した記憶媒体
JP2002269068A (ja) 2001-03-12 2002-09-20 Shigenori Tanaka 構造化文書処理装置
JP2004139395A (ja) 2002-10-18 2004-05-13 Mitsubishi Electric Information Systems Corp 構造化文書更新管理装置及び構造化文書更新管理方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1021227A (ja) 1996-07-03 1998-01-23 Fuji Xerox Co Ltd 文書構造変換装置および文書構造変換方法
JPH11272667A (ja) 1997-12-23 1999-10-08 Ricoh Co Ltd 構造化文書作成方法、構造化文書作成装置及び構造化文書作成用プログラムを格納した記憶媒体
JP2002269068A (ja) 2001-03-12 2002-09-20 Shigenori Tanaka 構造化文書処理装置
JP2004139395A (ja) 2002-10-18 2004-05-13 Mitsubishi Electric Information Systems Corp 構造化文書更新管理装置及び構造化文書更新管理方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体及びプログラム

Also Published As

Publication number Publication date
KR20070013770A (ko) 2007-01-31

Similar Documents

Publication Publication Date Title
EP1630702B1 (en) System and method for automatically generating xml schema for validating xml input documents
US8286132B2 (en) Comparing and merging structured documents syntactically and semantically
US7139975B2 (en) Method and system for converting structured documents
CA2479310C (en) Dynamic generation of schema information for data description languages
US20040015782A1 (en) Templating method for automated generation of print product catalogs
US7992088B2 (en) Method and system for copy and paste technology for stylesheet editing
US20070208769A1 (en) System and method for generating an XPath expression
US20050240876A1 (en) System and method for generating XSL transformation documents
US20030135825A1 (en) Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
US20020169803A1 (en) System and user interface for generating structured documents
US20080163077A1 (en) System and method for visually generating an xquery document
US7831904B2 (en) Method of creating an XML document on a web browser
US20090083300A1 (en) Document processing device and document processing method
US20070028164A1 (en) Computer readable storage medium and document processing method
US6772395B1 (en) Self-modifying data flow execution architecture
KR100733054B1 (ko) 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법
US20080005662A1 (en) Server Device and Name Space Issuing Method
US8726152B2 (en) Automated detection and implementation of state and object modifications
Paradis et al. A virtual document interpreter for reuse of information
US8161376B2 (en) Converting a heterogeneous document
Durán et al. Verifying software requirements with XSLT
US20090083620A1 (en) Document processing device and document processing method
Gapeyev et al. Statically typed document transformation: An Xtatic experience
Simons et al. Third wave writing and publishing
van der Graaf A specification of Box to HTML in ASF+ SDF

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee