KR20020023048A - Xml 문서의 레이아웃 방법과 이를 위한 시스템 - Google Patents

Xml 문서의 레이아웃 방법과 이를 위한 시스템 Download PDF

Info

Publication number
KR20020023048A
KR20020023048A KR1020000055790A KR20000055790A KR20020023048A KR 20020023048 A KR20020023048 A KR 20020023048A KR 1020000055790 A KR1020000055790 A KR 1020000055790A KR 20000055790 A KR20000055790 A KR 20000055790A KR 20020023048 A KR20020023048 A KR 20020023048A
Authority
KR
South Korea
Prior art keywords
xml
diagram
components
document
diagrams
Prior art date
Application number
KR1020000055790A
Other languages
English (en)
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 KR1020000055790A priority Critical patent/KR20020023048A/ko
Publication of KR20020023048A publication Critical patent/KR20020023048A/ko

Links

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
    • G06F40/106Display of layout of documents; Previewing
    • 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/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Abstract

본 발명은 XML에 관한 것으로, 특히 시스템을 표현하기 위해 사용되는 다이어그램을 기술하기 위해 새롭게 제안된 XML을 이용한 마크업 언어와, 이 마크업 언어로 기술된 XML 문서의 레이아웃 방법과 이를 위한 시스템에 관한 것이다. 본 발명에 따른 레이아웃 시스템은 다이어그램을 기술하는 다이어그램용 XML 문서를 인코딩하는 다이어그램용 XML 엔진과, 상기 인코딩된 다이어그램용 XML 문서를 분석하고, 검증하여 그 결과가 유효한 경우, 상기 인코딩된 다이어그램용 XML 문서의 컴포넌트들을 돔(DOM) 트리 구조로 생성하는 XML 파서와, 상기 돔(DOM) 트리 구조로 생성된 컴포넌트들의 우선 순위를 계산하여, 이 우선 순위에 따라 각 컴포넌트들의 위치를 결정하는 레이아웃 프로세서로 구성되고, 이와 같은 구성에 의하여 다이어그램을 기술하는 다이어그램용 XML 문서를 스트림의 형태로 인코딩하는 단계와, 상기 인코딩된 다이어그램용 XML 문서를 분석하고, 검증하여 그 결과가 유효한 경우 이 인코딩된 다이어그램용 XML 문서를 구성하는 컴포넌트들을 돔(DOM) 트리 구조로 생성하여 순차적으로 저장하는 단계와, 상기 컴포넌트들의 우선 순위를 계산하여, 이 우선 순위에 따른 각 컴포넌트의 위치정보를 그리드 구조에 표현하는 단계와, 상기 그리드 구조의 위치 정보에 따라 상기 컴포넌트들을 출력하는 단계로 이루어지는 절차에 의하여 다이어그램용 XML 문서의 레이아웃이 수행된다. 따라서, 본 발명은 인터넷 기반으로 제안된 표준인 XML을 이용해 정의되었고 스트림 형태로 제공되는 텍스트 타입의 정보이기 때문에 인터넷을 통해 정보교환이 용이하다.

Description

XML 문서의 레이아웃 방법과 이를 위한 시스템{Method for layout of Documents using Extensible Markup Language and system for the same}
본 발명은 XML에 관한 것으로, 특히 시스템을 표현하기 위해 사용되는 다이어그램을 기술하기 위해 새롭게 제안된 XML을 이용한 마크업 언어와, 이 마크업 언어로 기술된 XML 문서의 레이아웃 방법과 이를 위한 시스템에 관한 것이다.
알려진 바와 같이 OMG에 의해 소프트웨어 모델링 언어의 표준으로 제정된 UXF(Unified markup language eXchange Format)라는 언어가 있다. 상기 UXF는 시스템 디자인 문서를 다루는 응용 프로그램인 UML(Unified Markup Language) 모델들을 인코딩하고 생성, 접근, 교환하하도록 간단하고 구조화된 포맷을 제공한다.
상기 UXF에 의해서 제공되는 포맷에 의해 생성된 XML(eXtensible Markup Language) 문서는 문서의 내용을 논리적으로 기술하는 부분과 기술된 문서를 가시적으로 표현하는 부분으로 구성된다.
상기 논리적으로 기술하는 부분을 위해 UXF에서는 모델 디자인에서 기본적이고 필수적인 클래스 다이어그램, 콜레보레이션 다이어그램, 스테이트챠트 다이어그램에 관한 DTD(Document Type Definition)를 정의한다.
그리고, 상기 정의된 DTD를 통해서 상기에서 설명한 세 종류의 다이어그램을 UXF 마크업 언어(XML)에 의해 논리적인 구조로 표현할 수 있다.
다음으로 기술된 문서를 가시적으로 표현하는 부분은 스타일 쉬트(Style sheet)를 작성하거나 부가적인 응용 프로그램을 구현함으로써 이루어질 수 있는데 UXF에서는 XML의 스타일 쉬트를 작성하는 언어인 XSL(XML Stylesheet Language)을 이용해서 문서를 가시적으로 표현한다.
이와 더불어 상기 UML 디자인 정보들은 인터넷을 기본으로 하는 분산환경에서 서로 다른 응용 프로그램을 갖고 이 UML 디자인 정보들을 변환하여 이용하도록 하는 시스템을 구현하여 이용하고 있다.
도 1은 일반적인 인터넷을 통해 UML 모델을 공유하는 시스템의 배치구조를 나타낸 도면이다.
도 1을 참고하면, 먼저 UXF 문서를 접근하기 위해서는 HTTP(Hyper Text Transfer Protocol)나 TCP/IP(Transmission Control Protocol/Internet Protocol)를 근간으로 하는 CORBA의 표준 프로토콜인 IIOP(Internet Inter-ORB Protocol)를 이용한다. IIOP를 이용한 통신방법은 CORBA의 표준 IDL(Interface Description Language) 인터페이스에 의해 이루어진다.
HTTP 접근 방식은 웹브라우저와 같은 클라이언트 응용프로그램이 웹서버나 데이터베이스에 저장된 UXF 문서를 참조하도록 하기 위한 것이다. 그리고 IIOP 접근 방식은 서로 다른 장소에 있는 개발자들이 일관성있게 UXF 문서를 등록하고 참조, 수정하도록 하기 위한 것으로 서버 응용 프로그램은 시스템의 초기 시작시간에 UXF 문서를 파싱하고 트리 구조 같은 메모리 구조를 생성한다. 이런 메커니즘을 확장함으로써 정보의 일관성을 유지하고 검색이나, 색인, 정렬 같은 기능을 제공하면서 서버쪽의 데이터 베이스에 저장된 많은 문서들을 관리할 수 있다.
즉, 상기 UML 디자인 정보들은 도 1에서와 같이 현재 웹환경(웹브라우저와 웹서버가 HTTP 와 UXF로 인터페이스되고, 상기 웹서버는 상기 UXF 문서가 저장된 저장장소에 접근하여 이 UXF 문서를 사용자측에 전달된다)과 자바로 이루어진CORBA(Common Object Request Broker Architecture) ORB(Object Request Broker)의 기반위에서 개발되었고 분산환경에 적용되어 이용되고 있다.
이와 같은 웹환경과 분산 환경위에서의 UXF 디자인 정보들에 대한 사용자 교환 및 변환 기능은 다음 도2 에서와 같은 구조에 의해 그 기능들이 수행된다.
도 2는 일반적인 IIOP 접근 방식에 대한 시스템의 구조를 나타낸 도면이다.
도 2를 참고하면, UML 디자인 문서들은 UXF를 이용해서 기술되어 UXF 문서 저장장소에 저장되고, 이 기술된 문서는 UXF 파서에서 문서의 유효성을 검증받게 되고 검증된 문서가 유효할 경우 UXF 서버와, CORBA 서버 인터페이스와, CORBA ORB를 통해 인터넷에 연결되어, 이 기술된 문서를 요구하는 사용자에게 전달되고, 상기 사용자측의 UXF 서버와, CORBA 서버 인터페이스를 통하여 GUI로 변환되어 사용자가 이를 가시적으로 출력하여 볼 수 있게 된다. 이때, 상기 UXF 문서를 요구한 사용자 측은 UXF의 응용 프로그램을 통하여 이미 정의된 스타일 쉬트를 통해 웹브라우저 상에 표현되는 것이다.
즉, 종래 기술은 스타일 쉬트를 사용해서 UXF 문서의 가시적인 표현방법을 구현하는 방법을 이용하고 있다. 하지만, 현재 스타일 쉬트 프로세서는 인터넷 익스플로러 5.0이상에서만 제공되고 사용자에게 친숙한 형태의 표현방법이 아닌 텍스트 베이스 형태의 표현방법으로 구성되어 있다.
또한, 기존에는 여러 응용 프로그램에 따라서 다이어그램을 기술하는 방법이 달랐기 때문에 서로 다른 환경에서 작업을 하는 사용자들은 다른 사용자들이 작성한 다이어그램 문서를 이용하기 위해 여러 가지 변환시스템을 만들어야하는 문제점이 있다.
또한, 이를 해결하기 위해 UXF 문서를 브라우징하기 위한 전용 브라우저의 개발이 요구된다.
따라서, 본 발명의 목적은 이상에서 언급한 종래 기술의 문제점을 감안하여 안출한 것으로서, 어플리케이션에 따라 서로 다른 형태로 표현되었던 다이어그램들을 표준화된 형태의 문서로 표현하기 위한 다이어그램용 XML 언어와, 이 언어로 기술된 XML 문서의 레이아웃 방법 및 이를 위한 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적은 서로 다른 응용 프로그램에 독립적인 포맷을 제공하기에 적당하도록 하는 다이어그램용 XML 언어와, 이 언어로 기술된 XML 문서의 레이아웃 방법 및 이를 위한 시스템을 제공하기 위한 것이다.
이상과 같은 목적을 달성하기 위한 본 발명의 장치상 특징에 따르면, 다이어그램을 기술하는 다이어그램용 XML 문서를 인코딩하는 다이어그램용 XML 엔진과, 상기 인코딩된 다이어그램용 XML 문서를 분석하고, 검증하여 그 결과가 유효한 경우, 상기 인코딩된 다이어그램용 XML 문서의 컴포넌트들을 돔(DOM) 트리 구조로 생성하는 XML 파서와, 상기 돔(DOM) 트리 구조로 생성된 컴포넌트들의 우선 순위를 계산하여, 이 우선 순위에 따라 각 컴포넌트들의 위치를 결정하는 레이아웃 프로세서 구성된다.
바람직하게, 상기 돔(DOM) 트리 구조로 생성된 컴포넌트들을 다큐먼트 오브젝트 모델(Document Object Model)로 변환시키는 변환 시스템을 더 포함하여 구성되는 것을 특징으로 한다.
또한, 상기 다이어그램용 XML 엔진은 상기 다이어그램용 XML 문서를 구성하는 컴포넌트들에 대한 정보를 스트림 형태로 인코딩하고, 상기 다이어그램용 XML 엔진에서는 상기 컴포넌트들의 이름과, 상기 컴포넌트들이 포함하는 내용과, 상기 컴포넌트들의 출발지 및 도착지가 텍스트 형태의 스트링 변수로 선언되는 것을 특징으로 한다.
이상과 같은 목적을 달성하기 위한 본 발명의 방법상 특징에 따르면, 다이어그램을 기술하는 다이어그램용 XML 문서를 스트림의 형태로 인코딩하는 단계와, 상기 인코딩된 다이어그램용 XML 문서를 분석하고, 검증하여 그 결과가 유효한 경우 이 인코딩된 다이어그램용 XML 문서를 구성하는 컴포넌트들을 돔(DOM) 트리 구조로 생성하여 순차적으로 저장하는 단계와, 상기 컴포넌트들의 우선 순위를 계산하여, 이 우선 순위에 따른 각 컴포넌트의 위치정보를 그리드 구조에 표현하는 단계와, 상기 그리드 구조의 위치 정보에 따라 상기 컴포넌트들을 출력하는 단계를 포함하여 이루어진다.
도 1은 일반적인 인터넷을 통해 UML 모델을 공유하는 시스템의 배치구조를 나타낸 도면.
도 2는 일반적인 IIOP 접근 방식에 대한 시스템의 구조를 나타낸 도면.
도 3은 다이어그램용 XML 문서를 웹 페이지상에서 레이아웃한 화면을 나타낸 도면.
도 4는 본 발명에 따른 레이아웃 시스템의 구조를 나타낸 도면.
도 5는 본 발명에 따른 레이아웃 과정을 나타내는 흐름도를 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
101 : 다이어그램용 XML 엔진
102 : 데이터베이스
103 : XML 파서
104 : 레이아웃 프로세서
105 : 변환 시스템
본 발명에서는 새로운 문법으로 정의되는 다이어그램용 XML 언어를 제안한다.
또한, 본 발명은 상기 새로이 정의된 언어를 이용하여 기술된 다이어그램 문서를 웹브라우저 상에 레이아웃하는 방법과 이를 위한 레이아웃 시스템을 제안한다.
이하 본 발명의 바람직한 일 실시 예에 따른 구성 및 작용을 첨부된 도면을 참조하여 설명한다.
먼저, 본 발명에서 새로이 정의되는 다이어그램용 XML은 다음에서와 같이 일반적으로 시스템 디자인을 하는데 있어 필요한 모든 가능한 다이어그램용에 대해 하나의 XML 문법(XML DTD) 파일에서 정의한다.
XML 문법 파일
1. 전체 문법(DTD) 파일의 구조
<!ELEMENT Diagram (Description?, Mode)>
<!ELEMENT Description (Tag*)>
<!ELEMENT Tag (#PCDATA, Value*)>
<!ELEMENT Value (#PCDATA)>
<!ELEMENT Note (#PCDATA)>
<!ELEMENT Mode (Flowchart | DFD | ERDiagram)>
<!ATTLIST Mode
NAME CDATA #REQUIRED>
<!ENTITY % Flowchart
SYSTEM "flowchart.dtd">
%Flowchart;
<!ENTITY % DFD
SYSTEM "dataflow.dtd">
%DFD;
<!ENTITY % ERDiagram
SYSTEM "erdiagram.dtd">
%ERDiagram;
2. 플로우 챠트를 위한 문법(DTD) 파일 ( flowchart.dtd )
<!ELEMENT Flowchart (Description?, (External | Process | Decision | Note)*>
<!ATTLIST Flowchart
NAME CDATA #REQUIRED>
<!ELEMENT External (Document | Data | StoredData | Card | Tape )*>
<!ELEMENT Document (Transition | Note)*>
<!ATTLIST Document
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Data (Transition | Note)*>
<!ATTLIST Data
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT StoredData (Transition | Note)*>
<!ATTLIST StoredData
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Card (Transition | Note)*>
<!ATTLIST Card
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Tape (Transition | Note)*>
<!ATTLIST Tape
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Process (Transition | Note)*>
<!ATTLIST Process
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Decision (Transition | Note)*>
<!ATTLIST Decision
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Transition EMPTY>
<!ATTLIST Transition
CONTENT CDATA #IMPLIED
source CDATA #IMPLIED
target CDATA #REQUIRED>
<!ELEMENT Note #PCDATA>
3. 데이터 플로우 다이어그램을 위한 문법(DTD) 파일 ( dataflow.dtd )
<!ELEMENT DFD (Description?, (Input | Process | Actor | DataStorage | Note)*>
<!ATTLIST DFD
NAME CDATA #REQUIRED>
<!ELEMENT Input EMPTY>
<!ATTLIST Input
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED
target CDATA #REQUIRED>
<!ELEMENT Process (Dataflow | Note)*>
<!ATTLIST Process
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Actor (Dataflow , Note*)>
<!ATTLIST Actor
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT DataStorage (Dataflow , Note*)>
<!ATTLIST DataStorage
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
<!ELEMENT Dataflow EMPTY>
<!ATTLIST Dataflow
source CDATA #IMPLIED
target CDATA #REQUIRED
CONTENT CDATA #REQUIRED>
4. ER 다이어그램에 대한 문법(DTD) 파일( er di agram. dtd )
<!ELEMENT ERDiagram (Description?, (Entity | WeakEntity | Relationship)*>
<!ATTLIST ERDiagram
NAME CDATA #REQUIRED>
<!ELEMENT Entity (Attribute | Map | Note)*>
<!ATTLIST Entity
NAME CDATA #REQUIRED
CONTENT CDATA #REQUIRED >
상기와 같이 다이어그램용 XML의 문법 파일은 실제로 여러 개의 XML 문법 파일들로 구성되는데, 이는 사용자에 의해 작성되는 XML 문서에서 다이어그램에 대한 정보를 문법 파일에 정의된 택(Tag)으로 나타낸다.
즉, 상기 다이어그램용 XML 문법 파일에서 플로우 챠트(flowchart) 또는 데이터플로우(dataflow) 또는 er 다이어그램(er diagram)을 구성하는 각 컴포넌트들이 각각의 종류에 따라 하나의 모듈로 구성되어 전체 하나의 다이어그램용 XML 문법 파일을 구성한다.
그리고, 상기 각각의 다이어그램의 컴포넌트들은 각각의 모듈 DTD 파일에서 이 컴포넌트들에 부여된 서로 다른 이름(NAME)과, 이 컴포넌트가 포함하고 있는 각각의 내용(COMPONENT)과, 이 컴포넌트의 출발지(source) 또는 도착지(target)의 컴포넌트들의 이름들이 스트림의 형태로 저장되도록 하는 문법을 제시한다.
상기 다이어그램용 XML 문법 파일에서 컴포넌트들은 "REQUIRED(필수)" 또는 "IMPLIED(선택)"으로써, 각 컴포넌트의 필수 유무가 표시된다.
상기 컴포넌트들은 예를 들어, "flowchart.dtd" 파일에서는 {Flowchart, Document, Data, StoreData, Card, Tape, Process, Decision, Transition}로 이루어지고, "dataflow.dtd" 파일에서는 {DFD, Input, Process, Actor, DataStorage, Dataflow}로 이루어지고, "erdiagram.dtd" 파일에서는 {ERDiagram, Entity}로 이루어진다.
상기에서 제시된 XML 문법 파일을 엔진으로 이용하여 UXF 문서 파일을 작성하고자 하는 사용자는 다음과 같은 인스턴스를 먼저 생성한다.
인스턴스 생성
<?xml version="1.0"?>
<!DOCTYPE Diagram SYSTEM "Diagram.DTD">
<Diagram>
<Description>
<Tag>Title<Value>Window Graphics Display</Value></Tag>
<Tag>Author<Value>Myung-eun Lee</Value></Tag>
<Tag>Date<Value>2, July, 1999</Value></Tag>
</Description>
<Mode>
<DFD Name="Display">
<Input NAME="icon" CONTENT="icon name" target="Expand"/>
<Input NAME="location" CONTENT="location" target="Expand"/>//입력단자 2개의 이름과 내용 그리고, 이 입력 단자의 제1 도착지(Expand)
<Process NAME="Expand" CONTENT="Expand into vector">//상기 제1 도착지(Expand)가 포함하는 내용
<Dataflow target="Clip" CONTENT="Application vector list"/>//상기 제1도착지(Expand)의 제2 도착지(Clip)
</Process>
<Process NAME="Clip" CONTENT="Clip vector">//상기 제2 도착지(Clip)가 포함하는 내용
<Dataflow target="Offset1" CONTENT="Window vector list"/>
<Dataflow target="Offset2" CONTENT="Window vector list"/>//상기 제2 도착지(Clip)의 제3 도착지(Offset1과 Offset2)
</Process>
<Process NAME="Offset1" CONTENT="Offset vector1">//상기 제3 도착지 Offset1이 포함하는 내용
<Dataflow target="Convert1" CONTENT="Screen vector list"/>
<Dataflow target="Convert2" CONTENT="Screen vector list"/>//상기 제3 도착지 Offset1의 제4 도착지(Convert1과 Convert2)
</Process>
<Process NAME="Convert1" CONTENT="Convert to pixels1">//상기 제4 도착지중 Convert1이 포함하는 내용
<Dataflow target="Screen" CONTENT="Pixel operation"/>//상기 제4도착지(Convert1)의 제5 도착지(Screen)
</Process>
<Actor NAME="Screen" CONTENT="Screen buffer"/>//상기 제5 도착지(Screen)가 포함하는 내용
<Process NAME="Convert2" CONTENT="Convert to pixels2">//상기 제4 도착지중 Convert2가 포함하는 내용
<Dataflow target="Screen2" CONTENT="Pixel operation2"/>//상기 제4 도착지중 Convert2의 제6 도착지(Screen2)
</Process>
<Actor NAME="Screen2" CONTENT="Screen Buffer2" />//상기 제6 도착지(Screen2)가 포함하는 내용
<Process NAME="Offset2" CONTENT="Offset vector2" />//상기 제3 도착지중 Offset2가 포함하는 내용
<DataStorage NAME="definition" CONTENT="Icon definition">//제1 DataStorage의 이름과 포함하는 내용
<Dataflow target="Expand" CONTENT="Expand"/>//제1 DataStorage의 도착지(Expand)
</DataStorage>
<Actor NAME="Window" CONTENT="Window">//제1 Actor의 이름과 포함하는 내용
<Dataflow target="Clip" CONTENT="test"/>//제1 Actor의 도착지(Clip)
</Actor>
<Actor NAME="Window2" CONTENT="Window">//제2 Actor의 이름과 포함하는 내용
<Dataflow target="Offset1" CONTENT="test"/>//제2 Actor의 도착지(Offset1)
</Actor>
<DataStorage NAME="table" CONTENT="Icon position table">//제2 DataStorage의 이름과 포함하는 내용
<Dataflow target="Convert1" CONTENT="Convert1"/>//제2 DataStorage의 도착지(Convert1)
</DataStorage>
<DataStorage NAME="table2" CONTENT="Icon position table">//제3 DataStorage의 이름과 포함하는 내용
<Dataflow target="Convert2" CONTENT="Convert2"/>//제3 DataStorage의 도착지(Convert2)
</DataStorage>
</DFD>
</Mode>
</Diagram>
즉, 사용자가 제안된 언어의 문서를 만들기 위한 인스턴스를 상기와 같이 구성하고, 이에 앞서 정의된 다이어그램용 XML 문법 파일을 엔진으로 이용하여, 이를 웹 페이지상에서 레이아웃하면 도 3과 같은 다이어그램이 출력된다.
도 3은 다이어그램용 XML 문서를 웹 페이지상에서 레이아웃한 화면을 나타낸 도면이다.
도 3을 참고하면, 상기 XML에서 정의된 컴포넌트 Input(---->) 또는 Process(원형의 블록) 또는 Actor(직사각형 블록) 또는 DataStorage(〓)를 상기 예제에서 텍스트 형태로 선언하여 다이어그램용 XML 문서 즉, 인스턴스를 생성하면 레이아웃 프로세서는 상기 다이어그램용 XML 문법 파일과 상기 다이어그램용 XML문서로부터 웹 페이지상의 화면에 시스템 디자인이 출력하고자 하는 화면을 뿌려준다.
상기 XML 문법 파일에 의해 제안된 다이어그램용 XML과, 이 다이어그램용 XML을 이용한 문서를 웹 페이지상에서 레이아웃 하기위한 레이아웃 시스템을 도 4에 나타내었다.
본 발명에서 제안되는 레이아웃 시스템은 다이어그램용 XML 문서가 생성되고, 프로세싱, 출력되는 방법에 대해 다루며 인스턴스 생성, 파싱, 레이아웃 과정으로 나뉘어진다.
도 4는 본 발명에 따른 레이아웃 시스템의 구조를 나타낸 도면이다.
도 4를 참고하면, 본 발명에 의한 레이아웃 시스템은 본 발명에서 제안된 다이어그램용 XML 문법(DTD)을 이용하여 다이어그램을 기술하는 다이어그램용 XML 문서를 인코딩하는 다이어그램용 XML 엔진(101)과, 상기 다이어그램용 XML 문서의 인스턴스를 저장하는 데이터베이스(103)와, 상기 인코딩된 다이어그램용 XML 문서를 분석하고 검증하여(또는 파싱하여), 그 파싱 결과가 유효한 경우, 상기 인코딩된 다이어그램용 XML 문서의 컴포넌트들을 돔(DOM) 트리 구조로 출력하는 XML 파서(103)와, 상기 돔(DOM) 트리 구조로 생성된 컴포넌트들의 우선 순위를 계산하여, 이 우선 순위에 따라 각 컴포넌트들의 위치를 결정하는 레이아웃 프로세서(104)로 구성된다.
상기 돔(DOM) 트리 구조로 출력된 다이어그램용 XML 문서를 DOT 포맷으로 변환시키는 변환 시스템(105)을 더 포함하여 구성되기도 한다.
먼저 상기 레이아웃 시스템은 이용하기 위해 기본적으로 상기에서 제안된 다이어그램용 XML 엔진(101)을 플러그인 형태로써 레이아웃 시스템내에 포함하고 있다.
디자인하고자 하는 시스템에서 대하여 이미 작성된 인스턴스가 데이터 베이스(102)에 저장되어 있다면, 상기 데이터 베이스(102)에 저장되어 있는 기존 인스턴스들을 접근해서 가져오거나, 사용자가 텍스트 에디터(Text Editor)를 통해 인스턴스를 작성한다. 이는 모든 인스턴스는 전송이 용이한 텍스트 형태를 가지므로 기존의 텍스트 에디터를 이용해 작성하면 된다.
상기 가져오거나, 새로이 작성된 인스턴스 즉, 다이어그램용 XML 문서는 상기 다이어그램용 XML 엔진(101)에 의하여 스트림 형태로 인코딩되고. 이후에 상기 인코딩된 상기 인스턴스는 분석, 검증 과정(또는 파싱)이 수행되는데 이는 XML 파서(103)에 의해 수행된다. 상기 사용된 XML 파서(103)는 데이터채널(Datachannel)의 XJParser인데 이것은 자바로 구현된 프로세서로 XML DOM 인터페이스를 통해 활용 가능하다.
상기 XML 파서(103)에 의한 파싱의 결과가 유효하면 XML 파서(103)는 결과로서 상기 인코딩된 다이어그램용 XML 문서의 컴포넌트들의 돔(DOM) 트리를 생성한다. 상기 생성된 돔(DOM) 트리 구조는 레이아웃 프로세서(104)에서 레이아웃 과정을 수행하는데 있어 상위 컴포넌트들은 이 컴포넌트의 하위 컴포턴들이 유기적으로 연결되어 있어, 레이아웃하는데 있어 짧은 시간에 레이아웃 과정이 수행된다.
상기 레이아웃 프로세서(104)는 상기 XML 파서(103)에서 생성된 돔(DOM) 트리를 분석하고, 그래프 알고리즘의 여러 휴리스틱(Heuristic)을 적용해서 각 컴포넌트의 위치를 결정한다.
상기 사용된 휴리스틱은 먼저 데이터 흐름의 주체가 되는 객체들을 레이아웃 그리드 구조에 배치하고 배치된 그리드 구조에 객체들 사이의 데이터 흐름선들을 배치하는 방식이다. 특히 교차되는 선 문제를 해결하기 위해서 웹브라우저상에 레이아웃된 최대 x좌표와 y좌표를 고려해서 레이아웃되지 않은 그리드 영역에 선을 배치했다.
상기 변환 시스템(105)은 다이어그램용 XML로 인코딩된 정보를 DOT(Document Object Model) 응용 프로그램의 포맷으로 변환시킨다. 상기 DOT 응용 프로그램은 다양한 종류의 그래프를 그리는 응용 프로그램으로, 작성된 그래프는 PS, PDF 또는 GIF 등의 다양한 파일 포맷으로 저장이 가능하다. 상기 변환 시스템(105)을 이용해서 본 발명에서는 다이어그램용 XML로 인코딩된 데이터를 다양한 형태의 파일 포맷으로 저장할 수 있다.
도 5는 본 발명에 따른 레이아웃 과정을 나타내는 흐름도를 나타낸 도면이다.
도 5를 참고하면, 먼저 다이어그램용 XML 문서를 파싱한다.(S10)
상기 파싱 과정은, 이 과정에 앞서 본 발명에서 제안된 다이어그램용 XML 엔진을 이용하여, 상기 다이어그램용 XML 문서를 스트림 형태로 인코딩하고, 이후에 상기 다이어그램용 XML 문서를 분석하고, 검증하는 과정 즉, 파싱 과정이 수행된다.
상기 다이어그램용 XML 문서는 사용자가 텍스트 에디터를 이용하여 새로이 작성하였거나, 데이터베이스에 저장된 인스턴스를 가리킨다.
상기 파싱 결과가 유효하면, 스트림 형태의 상기 다이어그램용 XML 문서의 컴포넌트들을 DOM 트리로 변환하여 연속된 형태의 메모리에 저장한다.(S11)
이후 상기 각 컴포넌트의 우선순위를 계산해서(S12), 이 컴포넌트의 위치정보를 그리드 구조에 표현한다.(S13)
예를 들어, 상기 인스턴스 예제에서 "Diagram"은 그 하위 컴포넌트로서 "Mode"를 갖고, 이 "Mode"의 하위 컴포넌트는 다시 "DFD"를 갖고, 이 "DFD"는 "제1 Input, 제2 Input, 제1 Process, 제2 Process, DataStorage"를 갖고, 다시 상기 "제1 Process"는 하위 컴포넌트로서 "dataflow"를 갖는다.
따라서, 상기 예시된 컴포넌트들이 레이아웃되는 과정에서는 "Mode, DFD, 제1 Input, 제2 Input, 제1 Process, dataflow, 제2 Process, DataStorage"와 같은 우선 순위로 그리드 구조에 출력된다.
이후에 데이터 흐름선의 위치정보를 그리드 구조에 표현한다.(S14)
상기 그리드 구조의 위치 정보에 따라서 각 컴포넌트들을 레이아웃 화면에 출력한다.(S15)
최종적으로, 모든 컴포넌트가 출력되었는가를 체크하고(S16), 만약 출력되지 않은 컴포넌트가 존재하면, 이를 다시 그리드 구조의 위치 정보에 따라서 컴포넌트를 출력하고, 레이아웃을 종료한다.
이상의 설명에서와 같이 본 발명은 첫째로, 인터넷 기반으로 제안된 표준인 XML을 이용해 정의되었고 스트림 형태로 제공되는 텍스트 타입의 정보이기 때문에 인터넷을 통해 정보교환이 용이하다.
둘째, 본 발명에서 구현된 레이아웃 시스템을 통해서 전용 브라우저가 아닌 범용의 웹브라우저에 다이어그램용 XML로 기술된 다이어그램 문서를 사용자가 이해하기에 용이한 형태인 그래픽 형태로 표현함으로써 사용자들 사이의 디자인 문서에 대한 이해력을 증진시킬 수 있다.
셋째, 본 발명은 IMT-2000등의 서비스가 제공이 되면 사용자는 모바일 폰에 웹 브라우저를 띄울 수 있고 사용자들이 모바일 폰을 통해 디자인 문서등의 정보를 주고 받을 수 있다. 이때, 다이어그램용 XML을 가시적으로 레이아웃할 수 있는 레이아웃 시스템이 플러그인 형태로 웹 브라우저에 탑재된다면 사용자들이 전송받은 디자인 문서를 모바일 폰 내의 웹 브라우저에 표현할 수 있고 PC와 연결해 전송받은 디자인 문서를 간단히 수정한 뒤 다시 모바일 폰을 이용해 상대 사용자에게 전송할 수 있다.
넷째, 본 발명에서 제안된 다이어그램용 XML로 기술된 문서는 텍스트 스트림의 형태이기 때문에 그래픽 형태의 파일에 비해 무선환경에서의 문서의 교환에 더 적합한 장점을 갖는다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정하는 것이아니라 특허 청구 범위에 의해서 정해져야 한다.

Claims (5)

  1. 다이어그램을 기술하는 다이어그램용 XML 문서를 인코딩하는 다이어그램용 XML 엔진과;
    상기 인코딩된 다이어그램용 XML 문서를 분석하고, 검증하여 그 결과가 유효한 경우, 상기 인코딩된 다이어그램용 XML 문서의 컴포넌트들을 돔(DOM) 트리 구조로 생성하는 XML 파서와;
    상기 돔(DOM) 트리 구조로 생성된 컴포넌트들의 우선 순위를 계산하여, 이 우선 순위에 따라 각 컴포넌트들의 위치를 결정하는 레이아웃 프로세서로 구성되는 것을 특징으로 하는 XML 문서의 레이아웃 시스템.
  2. 제 1항에 있어서, 상기 돔(DOM) 트리 구조로 생성된 컴포넌트들을 다큐먼트 오브젝트 모델(Document Object Model)로 변환시키는 변환 시스템을 더 포함하여 구성되는 것을 특징으로 하는 XML 문서의 레이아웃 시스템.
  3. 제 1항에 있어서, 상기 다이어그램용 XML 엔진은 상기 다이어그램용 XML 문서를 구성하는 컴포넌트들에 대한 정보를 스트림 형태로 인코딩하는 것을 특징으로 하는 XML 문서의 레이아웃 시스템.
  4. 제 1항에 있어서, 상기 다이어그램용 XML 엔진에서는 상기 컴포넌트들의 이름과, 상기 컴포넌트들이 포함하는 내용과, 상기 컴포넌트들의 출발지 및 도착지가 텍스트 형태의 스트링 변수로 선언되는 것을 특징으로 하는 XML 문서의 레이아웃 시스템.
  5. 다이어그램을 기술하는 다이어그램용 XML 문서를 스트림의 형태로 인코딩하는 단계와;
    상기 인코딩된 다이어그램용 XML 문서를 분석하고, 검증하여 그 결과가 유효한 경우 이 인코딩된 다이어그램용 XML 문서를 구성하는 컴포넌트들을 돔(DOM) 트리 구조로 생성하여 순차적으로 저장하는 단계와;
    상기 컴포넌트들의 우선 순위를 계산하여, 이 우선 순위에 따른 각 컴포넌트의 위치정보를 그리드 구조에 표현하는 단계와;
    상기 그리드 구조의 위치 정보에 따라 상기 컴포넌트들을 출력하는 단계로 이루어지는 것을 특징으로 하는 XML 문서의 레이아웃 방법.
KR1020000055790A 2000-09-22 2000-09-22 Xml 문서의 레이아웃 방법과 이를 위한 시스템 KR20020023048A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000055790A KR20020023048A (ko) 2000-09-22 2000-09-22 Xml 문서의 레이아웃 방법과 이를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000055790A KR20020023048A (ko) 2000-09-22 2000-09-22 Xml 문서의 레이아웃 방법과 이를 위한 시스템

Publications (1)

Publication Number Publication Date
KR20020023048A true KR20020023048A (ko) 2002-03-28

Family

ID=19689973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000055790A KR20020023048A (ko) 2000-09-22 2000-09-22 Xml 문서의 레이아웃 방법과 이를 위한 시스템

Country Status (1)

Country Link
KR (1) KR20020023048A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010088529A (ko) * 2001-08-02 2001-09-28 정회경 전자문서 편집/변환처리장치와 그 방법
WO2004012096A1 (en) * 2002-07-27 2004-02-05 Samsung Electronics Co., Ltd. Data managing apparatus and method for reproducing interactive digital content, and information storage medium therefor
WO2006004266A1 (en) * 2004-04-02 2006-01-12 Samsung Electronics Co., Ltd. Xml processor having function for filtering tree path, method of filtering tree path and recording medium thereof
CN1307553C (zh) * 2002-06-26 2007-03-28 三星电子株式会社 语法分析扩展标记语言文件的装置和方法
US7661060B2 (en) 2002-06-11 2010-02-09 Lg Electronics Inc. Multimedia reproducing apparatus and method
KR100977352B1 (ko) * 2002-06-27 2010-08-20 마이크로소프트 코포레이션 워드 프로세서 문서의 원시 xml에서 비원시 xml을 지원하는 시스템 및 방법
KR101066628B1 (ko) * 2003-04-07 2011-09-22 톰슨 라이센싱 계층적 데이터 포맷의 데이터베이스 모델

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010088529A (ko) * 2001-08-02 2001-09-28 정회경 전자문서 편집/변환처리장치와 그 방법
US7661060B2 (en) 2002-06-11 2010-02-09 Lg Electronics Inc. Multimedia reproducing apparatus and method
CN1307553C (zh) * 2002-06-26 2007-03-28 三星电子株式会社 语法分析扩展标记语言文件的装置和方法
US8413041B2 (en) 2002-06-26 2013-04-02 Samsung Electronics Co., Ltd. Apparatus and method for parsing XML document by using external XML validator
KR100977352B1 (ko) * 2002-06-27 2010-08-20 마이크로소프트 코포레이션 워드 프로세서 문서의 원시 xml에서 비원시 xml을 지원하는 시스템 및 방법
WO2004012096A1 (en) * 2002-07-27 2004-02-05 Samsung Electronics Co., Ltd. Data managing apparatus and method for reproducing interactive digital content, and information storage medium therefor
KR101066628B1 (ko) * 2003-04-07 2011-09-22 톰슨 라이센싱 계층적 데이터 포맷의 데이터베이스 모델
WO2006004266A1 (en) * 2004-04-02 2006-01-12 Samsung Electronics Co., Ltd. Xml processor having function for filtering tree path, method of filtering tree path and recording medium thereof

Similar Documents

Publication Publication Date Title
US8020112B2 (en) Clipboard augmentation
US7065561B2 (en) Selective parsing of an XML document
JP4625464B2 (ja) 文書処理装置
JP5020075B2 (ja) 文書処理装置
US20030069881A1 (en) Apparatus and method for dynamic partitioning of structured documents
US8677328B2 (en) Generating a dynamic content creation program
WO2007034858A1 (ja) データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
JP2004334866A (ja) タグリブを介するウェブサイトサマリの変換
Herman et al. GraphXML—an XML-based graph description format
WO2006051870A1 (ja) データ処理装置、文書処理装置及び文書処理方法
JP2008539487A (ja) データフォーマットを提供するシステム及び方法
WO2006051958A1 (ja) 情報配信システム
WO2006051975A1 (ja) 文書処理装置
WO2006051713A1 (ja) 文書処理装置及び文書処理方法
WO2006051969A1 (ja) 文書処理装置及び文書処理方法
JP2009524132A (ja) 計算およびプレゼンテーション技術を統合するための方法およびシステム
US20090265615A1 (en) Data processing server and data processing method
WO2007081017A1 (ja) 文書処理装置
KR20020023048A (ko) Xml 문서의 레이아웃 방법과 이를 위한 시스템
WO2006051712A1 (ja) 文書処理装置及び文書処理方法
WO2006051716A1 (ja) 文書処理装置及び文書処理方法
WO2006051721A1 (ja) 文書処理装置及び文書処理方法
JPWO2007007529A1 (ja) 文書処理装置および文書処理モジュール
WO2006051972A1 (ja) データ処理装置、文書処理装置および文書処理方法
WO2006051714A1 (ja) 文書処理装置及び文書処理方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination