KR20040007570A - 웹 저작 보조 툴 - Google Patents

웹 저작 보조 툴 Download PDF

Info

Publication number
KR20040007570A
KR20040007570A KR10-2003-7014881A KR20037014881A KR20040007570A KR 20040007570 A KR20040007570 A KR 20040007570A KR 20037014881 A KR20037014881 A KR 20037014881A KR 20040007570 A KR20040007570 A KR 20040007570A
Authority
KR
South Korea
Prior art keywords
formatting
wac
generated
instructions
user
Prior art date
Application number
KR10-2003-7014881A
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20040007570A publication Critical patent/KR20040007570A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Primary Health Care (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Computational Linguistics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Digital Computer Display Output (AREA)

Abstract

실행시간(run-time) 기간동안 클라이언트측상에 복수의 문서를 디스플레이하기 위하여 서버상에서 복수의 문서에 대한 디스플레이 포맷팅 명령을 자동 생성하는 방법으로서, 상기 서버는 복수의 레퍼런스를 포함하는 제 1 셋트의 포맷팅 명령을 갖는 파일과 복수의 포맷팅 제어를 가지며, 각각의 레퍼런스는 복수의 문서 중 하나와 복수의 포맷팅 제어 중 하나를 표시하는 방법에 있어서, (A) 상기 파일을 처리하여 상기 복수의 레퍼런스의 각각을 찾음으로써 트리를 형성하는 단계; (B) 상기 복수의 레퍼런스 중의 하나에 따라 상기 복수의 포맷팅 제어 중 하나를 실행하여 상기 복수의 레퍼런스 중의 상기 하나에서 상기 표시된 문서에 기초하여 제 2 셋트의 포맷팅 명령을 생성하는 단계; (C) 상기 제 2 셋트의 포맷팅 명령을 출력 파일에 통합하는 단계; 및 (D) 상기 트리내의 상기 복수의 레퍼런스 각각에 대하여 상기 단계 (B) 및 (C)를 반복하는 단계를 포함하고, 상기 복수의 레퍼런스내에 지시되는 상기 복수의 포맷팅 제어의 각각은 실행시간 기간 전에 실행된다.

Description

웹 저작 보조 툴{TOOL FOR WEB AUTHORING ASSISTANCE}
월드 와이드 웹(WWW)의 급증으로, 웹 페이지의 신속한 설계 및 생성이 필수적으로 되었다. 웹 페이지는 신속하게 생성될 필요가 있지만 복잡성과 융통성을 갖는다. 입력 파라미터에 기초하여, 하이퍼텍스트 마크업 언어(Hypertext Markup Language; HTML) 등의 마크업 코드를 자동 생성함으로써 웹 페이지의 생성을 돕는 다수의 웹 페이지 저작 툴이 있다. 마크업 코드는 코드에 의해 의해 식별된 데이터를 표현하고 디스플레이하는 방법에 대한 명령을 포함한다. 이들 툴은 전체 페이지의 재생성을 필요로 하지 않으면서 웹 페이지의 콘텐트(content)가 변경될 수 있도록 해준다. 이것은 종종 웹 페이지와 별도로 변경 콘텐트를 저장하고 변경 콘텐트의 위치를 지칭하는 태그를 마크업 코드내에 포함함으로써 달성된다. 그러면, 웹 페이지는 별도로 저장된 변경 콘텐트에 대하여 생성되고 통합된 마크업과 태그에 의해 지정된 제어에 따라 처리될 수 있다.
마이크로소프트는 런타임(run-time) 전에, 페이지를 설계하는 동안 마크업 코드 파일로 삽입되어 처리될 수 있는 액티브엑스 설계시점제어(ActiveX DesignTime Control:DTC)를 제공한다(미국 특허 6,025,119 참조). 그러나, DTC 처리는, 종종 저작 클라이언트 상에 위치하는, 마크업 코드 파일이 생성되는 편집기로 제한된다. 처리가 클라이언트측상의 지정 편집기에서 발생할 필요가 없도록, 저작과 처리를 분리함으로써 많은 동작들이 좀 더 효율적으로 수행될 수 있다.
DTC는, 제어를 동봉(enclose)하는데 사용되는 마크업 코드 코멘트에 기초한다. 불행하게도, 마크업 코드 코멘트는 서로의 내부에 함유(nest)될 수 없고, 따라서, 페이지 래이아웃의 생성에 DTC의 사용을 한정시킨다. 즉, 페이지 래이아웃은 DTC를 사용하고 다른 DTC를 그 내부에 삽입함으로써 제어될 수 없다. 페이지 래이아웃 기능을 제공하기 위하여, 별도의 툴이 DTC와 결합하여 사용되어야 한다.
DTC는 그 사용이 마이크로소프트 플랫폼으로 제한되는 결점을 갖는다. 한편, 자바서버 페이지 태그리브(JSP; JavaServer Pages taglibs)는 유사한 기능을 제공하지만, 자바 언어에 기초하기 때문에 플랫폼을 특정하지 않는다. 그러나, 태그리브는 요청 시점에서만 실행되고, 태그리브 프로세서가 웹 애플리케이션 서버의 일부일 필요가 있다. 또한, 태그리브는 동적 콘텐트를 생성하므로, 서버 처리 로드가 증가한다.
본 발명은 웹 페이지 저작 보조 툴에 관한 것으로서, 특히, 웹 페이지용 디스플레이 포맷팅 코드를 자동 생성하는 툴에 관한 것이다.
본 발명은 도면과 결합하여 설명될 것이다.
도 1은 본 발명의 실시예에 따른 컴퓨팅 환경을 도시하는 개략도.
도 2는 콘텐트 소스로부터 마크업 코드를 자동 생성함으로써 웹 저작을 돕는 방법을 도시하는 흐름도.
도 3은 좀 더 상세하게 도 2로부터 마크업 코드를 생성하는 단계를 도시하는 흐름도.
도 4는 콘텐트 소스로부터 마크업 코드를 자동 생성함으로써 웹 저작을 돕는 시스템을 도시하는 시스템 다이어그램.
도 5는 도 4의 WAC 프로세서를 도시하는 시스템 구조도.
본 발명은 청구항 제 1 항에 청구된 바와 같이 서버 상의 복수의 문서에 대한 디스플레이 포맷팅을 자동 생성하는 방법을 제공한다. 본 발명은 청구항 제 9 항의 대응 서버 시스템과 청구항 제 10 항의 컴퓨터 프로그램 제품을 제공한다.
본 발명은 코드 라이프 사이클 동안 다양한 단계에서 웹 페이지에 대한 디스플레이 포맷팅 코드를 발생시키도록 하고 웹 페이지 래이아웃에 사용될 수 있는 웹 페이지 저작 보조 방법을 제공한다.
이것은 웹 페이지용 콘텐트 소스가 웹 페이지로부터 분리되도록 하고 소스의 변화에 응답하여 웹 페이지의 신속한 자동 업데이트를 제공한다. 본 발명의 제어(control)는 서로의 내부에 삽입될 수 있고, 복잡한 웹 페이지가 용이하게 생성되도록 한다.
도 1 및 그 관련 설명은 본 발명이 구현될 수 있는 적절한 컴퓨팅 환경의 일예를 나타낸다. 본 발명의 실시예는 퍼스널 컴퓨터 상에서 실행되는 컴퓨터 프로그램의 컴퓨터 실행가능 명령의 일반적인 컨텍스트로 설명될 것이며, 본 발명은 또한 다른 프로그램 모듈과 결합하여 구현될 수 있다.
일반적으로, 프로그램 모듈은, 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 본 발명은 핸드헬드(hand-held) 장치, 멀티프로세서 시스템, 마이크로프로세서 베이스드(microprocessor-based) 또는 프로그래머블 고객 전자장치, 미니컴퓨터, 메인프레임 컴퓨터, 및 프로그램 모듈이 로컬 및 원격 메모리 기억 장치 둘다에 위치할 수 있는 분배 컴퓨팅 환경을 포함하는 다른 컴퓨터 시스템 구성을 사용하여 구현될 수 있다.
도 1을 참조하면, 본 발명은 프로세싱 유닛(210), 시스템 메모리(220), 및 시스템 메모리(200)를 포함하는 많은 시스템 컴포넌트를 프로세싱 유닛(210)에 결합하는 시스템 버스(230)를 포함하는 종래의 퍼스널 컴퓨터(200)의 형태로 범용 컴퓨팅 장치내에서 구현될 수 있다. 시스템 메모리(200)는 리드 온리 메모리(ROM; 240) 및 랜덤 액세스 메모리(RAM; 250)를 포함한다.
(예를 들어, 시동시에) 퍼스널 컴퓨터(200)내의 소자들 사이에서 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS; 260)이 ROM(240)에 저장된다. 퍼스널 컴퓨터(200)는, 또한 하드디스크(미도시)로부터 판독하거나 하드디스크로 기입하는 하드 디스크 드라이브(270), 분리형 자기 디스크(290)로부터 판독하거나 자기 디스크로 기입하는 자기 디스크 드라이브(280), 및 CD ROM 또는 다른 광학 메체 등의 분리형 광학 디스크(292)로부터 판독하거나 광학 디스크로 기입하는 광학 디스크 드라이브(291)를 포함하고, 이들 모두는 각각의 인터페이스(292, 293, 294)에 의해 시스템 버스(230)에 접속된다. 드라이브 및 그들과 관련된 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 퍼스널 컴퓨터(200)용 다른 데이터의 비휘발성 기억장치를 제공한다. 여기에 기재된 예시적인 환경이 소정의 디스크를 사용하지만, 데이터를 저장하기 위한 다른 유형의 컴퓨터 판독가능 매체가 사용될 수 있음을 이해할 것이다.
많은 프로그램 모듈은 오퍼레이팅 시스템(295), 하나 이상의 애플리케이션 프로그램(296), 다른 프로그램 모듈(297), 및 프로그램 데이터(298)를 포함하여, 디스크(290, 292), ROM(240) 또는 RAM(250) 상에 저장될 수 있다. 코맨드 및 정보는 입력 장치(예를 들어, 키보드(201), 포인팅 장치(202), 마이크로폰, 조이스틱 등)를 통해 퍼스널 컴퓨터(200)로 입력될 수 있다. 이들 입력 장치는 직렬 포트 인터페이스(206), 병렬 포트, 게임 포트 또는 유니버설 시리얼 버스(USB)를 통해 프로세싱 유닛(210)에 접속될 수 있다. 모니터(207) 또는 다른 유형의 디스플레이 장치가 또한 비디오 어댑터(208) 등의 인터페이스를 통해 시스템 버스(230)에 접속된다.
퍼스널 컴퓨터(200)는 또다른 퍼스널 컴퓨터, 서버, 라우터(router), 네트워크 PC, 피어(peer) 장치 또는 다른 공통 네트워크 노드 등의 하나 이상의 원격 컴퓨터(209)로의 논리적 접속을 사용하여 네트워크 환경에서 동작할 수 있다. 도 1 에 도시된 논리적 접속은 근거리 통신망(LAN; 212) 및 원거리 통신망(WAN; 213)을 포함한다. 이러한 네트워크 환경은 사무실, 엔터프라이즈-와이드(enterprise-wide) 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용될때, 퍼스널 컴퓨터(200)는 네트워크 인터페이스 또는 어댑터(214)를 통해 근거리 통신망(212)에 접속된다. WAN 네트워크 환경에서 사용될때, 퍼스널 컴퓨터(200)는 직렬 포트 인터페이스(206) 또는 인터넷 등 원거리 통신망(213)을 통해 통신을 확립하는 다른 수단을 통해 시스템 버스(230)에 접속된 모뎀(215)을 포함한다. 본 발명의 동작은 2개의 컴퓨터(200, 209) 사이에 분배되어, 하나는 서버로서 동작하고 다른 하나는 클라이언트로서 동작하도록 할 수 있다(도 4 참조). 각각의 컴퓨터(200, 209; 클라이언트와 서버)에 대한 본 발명의 동작은 디스크(270, 280, 291) 중의 하나를 통해 애플리케이션 프로그램(296), 다른 프로그램 모듈(297)로서 각각의 컴퓨터(200, 209)의 RAM(250)에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며 컴퓨터들사이에 통신 링크를 확립하는 다른 수단이 사용될 수 있다.
도 2는 콘텐트 소스로부터 마크업 코드를 자동 생성함으로써 웹 저작을 돕는 방법(10)을 도시하는 흐름도이다. 용어 "마크업 코드"는, 웹 페이지를 포맷팅하고 디스플레이하는데 사용되는 임의의 코드를 지칭하며, 용어 "디스플레이 포맷팅 명령"과 혼용될 수 있다. 마크업 코드는 HTML, 자바 서버 페이지(JSP), 액티브 서버 페이지(ASP), 확장형 마크업 언어(XML) 등의 마크업 언어로 이루어질 수 있다. 복잡한 웹 페이지는 간단한 입력 파라미터에 기초하여 마크업 코드를 자동 생성하는 방법(10)에 의해 생성될 수 있다. 방법(10)은, 웹 페이지용 기초 코드(underlying code)내에 콘텐트 소스를 참조시키고 디스플레이 실행 전에 그 코드를 처리함으로써 웹 페이지로부터 분리될 수 있는 소스 콘텐트를 통합하는 방식을 제공한다.
웹페이지용 기본 역할을 제공하는 제 1 셋트의 마크업 코드가 단계(12)에서 생성된다. 제 1 셋트의 마크업 코드에는 단계(14)에서 코드에 삽입된 웹 저작 제어(web authoring control:WAC) 태그가 포함된다. WAC는 디스플레이용 콘텐트 소스를 포맷팅하고 포맷된 콘텐트 소스를 웹 페이지에 선택적으로 삽입하는 동작을 정의한다. WAC 태그는, 태그내에서 참조되는 콘텐트 소스가 어떻게 포맷되고 제 1 셋트의 코드에 삽입되는지를 지정한다. 태그내에 참조된 콘텐트 소스는 관련 문서와 제 1 셋트의 코드가 속하는 리소스(resource)를 포함하는 프로젝트(project)의 일부이다. WAC 태그에 입력 파라미터 값을 셋팅한 후 프로세서를 실행함으로써, WAC 태그가 참조하는 콘텐트 소스에 대한 마크업 코드가 생성된다. WAC의 실행은 파라미터로 나타나는 매크로와 유사한 결과를 생성한다.
예를 들어, 사이트맵 리소스와 사이트 맵을 판독하고 내비게이션 제어를 생성하고 이를 각각의 개별 웹 페이지에 삽입하는 WAC를 생성함으로써, 네비게이션 제어가 웹 사이트의 모든 페이지에 추가될 수 있다. 즉, 내비게이션 제어 콘텐트를 위한 WAC 태그를 웹 페이지에 삽입함으로써, 내비게이션 제어용 마크업 코드는 자동 생성되어 해당 페이지에 추가된다. 이러한 결과는 종종 마크업 코드의 내비게이션 제어를 각각의 개별 페이지에 추가하는 카피(copy) 및 페이스트(paste) 동작에 의해 미리 달성된다.
또다른 예에서, 데이터베이스 테이블의 각각의 레코드의 웹 페이지 디스플레이와 이들 레코드로 링크하는 인덱스 페이지의 웹 페이지 디스플레이를 위하여,WAC는 각각의 레코드와 인덱스 페이지에 대한 마크업을 발생시키는 프로세스를 간략화하는 데 사용될 수 있다. 인덱스 및 레코드를 갖는 웹 페이지는 한쌍의 WAC를 사용하여 생성될 수 있으며, 한쌍의 WAC 중의 하나는 인덱스용이고, 다른 하나는 레코드용이다. 이들 WAC용 태그는 인덱스 및 레코드의 디스플레이를 위하여 사용된 웹 페이지에 통합될 수 있다.
WAC 입력 파라미터의 값은 단계(16)에서 WAC 태그내에 셋팅된다. 제 1 셋트의 마크업 코드의 생성, WAC 태그의 삽입 및 파라미터값 셋팅(단계 12 내지 16)은 모두 표준 마크업 코드 편집기에서 수행될 수 있다.
제 2 셋트의 마크업 코드는 WAC 태그에 의해 참조된 콘텐트 소스로부터 단계(18)에서 발생된다. WAC는 이 발생 프로세스를 정의한다; 콘텐트 소스가 판독되고 마크업 코드로 포맷되는 방법을 정의한다.
웹 페이지 저작의 라이프 사이클은 생성, 저장, 편집, 프리뷰(preview), 체크인(check in) 및 발행(publish) 등을 포함하는 한정된 셋트의 컨텍스트를 가지며, 체크인과 발행 단계는 저작 서버 상에서 발생한다. 라이프 사이클내의 이들 단계는 트리거 포인터로서 사용되어, 저작 서버 상에서 WAC의 실행을 초기화할 수 있다. 예를 들어, 프로젝트내의 하나의 문서가 변경하고 체크인됨에 따라 이들 변화에 영향을 받은 모든 문서들은 이들 변경을 포함하기 위하여 다시 처리될 수 있다. 이것은 정적(static) 콘텐트가 용이하게 변경하는데 사용되도록 하고 웹 페이지가 존재하는 동안 임의의 시점에서 WAC가 처리되도록 한다. 정적 콘텐트의 사용은 서버 처리 로드를 감소시키고 웹 페이지가 검색 엔진에 의해 인덱싱되도록 한다.
마크업 코드를 생성하기 위한 WAC의 처리는 웹 페이지의 라이프 사이클중 다양한 단계에서 발생할 수 있다. 이것은 입력 파라미터, 리소스 또는 전체 콘텐트 소스가 변경될때 다시 처리될 수 있으므로 웹 페이지의 유지를 간략화한다. 내비게이션 제어에 대한 상술한 예에서, 내비게이션 제어 소스를 참조하는 WAC 태그를 포함하는 웹 페이지는 각각의 개별 페이지가 수동으로 변경되는 것을 필요치 않고 맵 사이트가 변경될 때 재처리될 수 있다.
콘텐트 소스로부터 생성된 제 2 셋트의 마크업 코드는 단계(20)에서 제 1 셋트의 마크업 코드로 통합된다. 선택적으로, 제 2 셋트의 마크업 코드는 별도의 출력 파일로 통합될 수 있다. 마크업 코드의 결합된 셋트는 단계(22)에서 저장된다. 결합된 마크업 코드는 탐색(retrieval) 및 디스플레이에 대한 요청을 단계(24)에서 수신할 때 요청자에게 전송된다.
제 2 셋트의 마크업 코드는 제 1 셋트의 마크업 코드에 통합되기 전에 선택적으로 편집될 수 있다. 이때, 사용자에 의해 수행된 임의의 변경 또는 추가는 사용자 발생으로서 마크(mark)된다.
도 3은 도 2로부터 마크업 코드(18)를 발생시키는 단계를 더 상세하게 나타내는 흐름도이다. WAC 프로세서는 단계(30)에서 제 1 셋트의 마크업 코드를 판독하고 단계(32)에서 이 코드내에 모든 WAC 태그를 찾는다. 제 1 셋트의 마크업 코드내의 모든 WAC 태그로부터 트리 구조가 형성된다. WAC의 탐색 및 트리의 형성은 공지된 기술에 따라 수행될 수 있다. 예를 들어 자바 및 XML을 사용하여 구현되는WAC는 DOM(Document Object Model) 표준에 따라 트리를 형성할 수 있다. 이 트리는 제 1 셋트의 마크업 코드를 위한 맵으로서 동작하고, 처리될 필요가 있는 제 1 셋트의 코드내에 모든 WAG 및 그 발생 순서를 셋팅한다. WAC 태그가 삽입될 수 있는 경우에 대하여, 트리는 WAC의 깊이 우선 순서 처리(depth-first order processing)을 허용하며 WAC 처리의 결과의 상대적인 배치를 유지한다.
단계(34)에서, 특정 WAC 태그를 위한 파라미터 입력은 WAC 프로세서로 전달된 후 단계(36)에서 WAC가 실행된다. 다수의 WAC가 단일의 제 1 셋트의 코드내에 위치할때, 단계(34, 36)는 각각의 개별 WAC에 대하여 반복된다. 모든 WAC가 실행되면, 단계(20)에서 처리의 결과가 제 1 셋트의 코드에 통합된다.
도 4는 콘텐트 소스(68)로부터 마크업 코드를 자동 생성함으로써 웹 저작을 돕는 시스템(50)을 도시하는 시스템 다이어그램이다. 도시된 시스템(50)은 클라이언트(54) 및 서버(52)를 사용하고, 웹 페이지의 저작은 클라이언트(54) 상에서 발생하고 WAC의 실행은 서버(52) 상에서 발생한다.
클라이언트(54)는 표준 마크업 언어 편집기(62)를 포함한다. 편집기(62)는 제 1 셋트의 마크업 코드(64)의 생성에 사용된다. 이 제 1 셋트의 코드(64)는 웹 페이지용 기본을 형성한다. 제 1 셋트의 코드(64)내에는 제 1 셋트의 코드(64)의 외부에 있는 콘텐트 소스(68)를 특정하는 WAC에 대한 태그(66)가 있다. 콘텐트 소스(68) 및 제 1 셋트의 코드(64)는 더 큰 프로젝트의 일부일 수 있다. 태그(66)내에 표시된 WAC는, 콘텐트 소스(68)가 처리되고 제 1 셋트의 코드(64)로 선택적으로 통합되는 방법을 특정한다.
클라이언트(54)는 예를 들어 프로젝트내의 리소스를 제어하는 프로젝트 관리기 및 리소스를 처리하는 구축 프로세서(build processor) 등의 다른 개발 툴을 포함할 수 있다. 클라이언트(54)는 또한 프로젝트 리소스의 버전을 저장하고 프로젝트 리소스로의 동시 액세스를 제어하는 소스 코드 제어 시스템을 포함할 수 있다.
서버(52)는 콘텐트 소스(68) 및 제 1 셋트의 코드(64)가 속하는 프로젝트의 모든 문서를 저장하는 저장소를 포함한다. 이 저장소인 웹 페이지 기억 장치(58)는 하나 또는 다수 클라이언트(54)로부터의 프로젝트와 관련된 문서를 수신한다. 다수의 클라이언트(54)는 이 데이터를 공유하고, 기억 장치(58)는 문서 제어 메카니즘을 포함하여 문서의 편집 능력을 한번에 하나의 클라이언트(54)로 제한할 수 있다. 이러한 제 1 셋트의 코드(64) 등의 문서는 클라이언트(54)로부터의 관련된 문서(즉, 콘텐트 소스(58))에 따라 생성된 후 웹 페이지 기억 장치(58)에 저장된다. 서버(52)는 또한 기억 장치(58)에 저장된 웹 페이지를 보고자 하는 요청을 처리해주는 발행 요청 프로세서(60)를 포함한다.
서버(52)는 WAC 정의 기억 장치(70)에 저장된 WAC 정의에 따라 기억 장치(58)의 문서내의 WAC 태그를 처리하는 WAC 프로세서(56)를 갖는다. 문서내의 WAC 태그는 처리를 제어하기 위하여 WAC에 데이터를 제공하는 파라미터 뿐만 아니라 WAC 식별자 또는 이름에 대한 참조를 포함한다. WAC 프로세서(56)는 프로젝트 문서가 업데이트될때 클라이언트(54)의 구축 프로세서에 의해 호출될 수 있다.
WAC 정의 기억 장치(70)에 저장된 각각의 WAC 정의는 3개의 컴포넌트, 즉, 식별자(72), 파라미터(74), 및 제어 동작(76)을 갖는다. WAC 태그가 처리를 위해서버(52) 상에 저장된 제 1 셋트의 코드(64)로부터 판독되면, WAC 식별자 및 파라미터가 WAC의 실행동안 사용될 별도의 요소들로서 저장된다. 식별자(72)는 소정 유형의 WAC에 특정된 유일 식별자이다. 파라미터(74)는 기본 포맷팅 정보를 포함하며 다른 WAC에 대한 참조를 포함할 수 있다. 제어 동작(76)은 파라미터(74)에 공급된 정보에 따라 마크업을 생성한다. 제어 동작(76)에 의해 생성된 마크업은 WAC 태그(66) 및 콘텐트 소스(68)에 참조된 문서에 삽입된 일련의 문자이다. 이러한 일련의 문자는 콘텐트 소스가 제 1 셋트의 코드(64)의 디스플레이와 결합하여 어떻게 디스플레이되는지를 나타낸다. 즉, 2 셋트의 코드가 균일하게 디스플레이될 수 있거나 또는 콘텐트 소스(68)가 제 1 셋트의 코드(64)로 통합될 수 있도록, 제어 동작(76)은 콘텐트 소스(68)를 제 1 셋트의 코드(64)의 마크업 언어(예를 들어, HTML)로 변환할 수 있다.
제어 동작(76)은 파라미터(74)를 셋팅하는 것을 돕는 인터페이스를 제공함으로써 웹 저작을 간략화한다. 클라이언트측(54) 상의 편집기(62)는, 선택적인 고객 속성(property) 편집기와 함께, 예를 들어 속성 쉬트(sheet)를 통해 식별자에 의한 WAC에 대한 참조를 포함할 수 있다. 제어 동작(74)은, 리스팅에 대한 라인 수의 추가 등의 지루한 작업을 자동화하거나 사용자가 복잡한 HTML 또는 자바스크립트(Javascripts)를 작성해야 하는 필요성을 제거하는 데 사용될 수 있다.
도 5는 도 4의 WAC 프로세서(56)를 도시하는 시스템 구조도이다. WAC 프로세서(56)는, 처리되어 제 1 셋트의 코드(64)를 포함하는 파일에 포함될 문서를 특정하는 파라미터를 수신한다. WAC 프로세서(56)는 또한 제 1 셋트의 코드(64)의 라이프 사이클 단계에 관련된 파라미터 및 제 1 셋트의 코드(64)가 출력 전에 업데이트되거나 WAC 태그에서 분리되어야 하는지 등에 대한 다른 처리 옵션을 수신한다.
WAC 프로세서(56)의 문서 판독기(80)는 현재의 프로젝트로부터 제 1 셋트의 코드(64)를 판독한다, 제 1 셋트의 코드(64)를 포함하는 파일이 판독됨에 따라, 문서 판독기(80)는 판독된 파일을 문서 파서(parser)(82)로 전달하고, 트리 구조가 판독된 파일의 콘텐트으로부터 형성된다.
문서 갱신기(84)는 파서된 파일에서 WAC를 갱신한다. 문서 갱신기(84)의 실행은 입력 파라미터를 사용하여 억제될 수 있다. 이것은, 파일이 이미 갱신되었지만 WAC 태그가 발행전에 제거되어야 할때 유용하다. 문서 갱신기(84)는 트리를 횡단하여 트리내에서 태그된 각각의 WAC를 실행한다. 각각 실행된 WAC는 트리의 일부가 되어 실행되는 추가의 WAC를 포함할 수 있는 마크업 코드를 생성한다. 트리는 파일내의 WAC의 순서에 대응하는 깊이 우선 순서로 횡단된다. 문서 갱신기(84)는 또한 제 1 셋트의 코드(64)로부터 WAC 태그를 추출하고 각각의 태그로부터 WAC 식별자 및 파라미터를 일시 저장한다.
문서 갱신기(84)내의 제어 로더(90)는 일시 저장된 WAC 식별자를 얻는다. 제어 로더(90)는 WAC 정의 기억 장치(70)의 WAC 정의를 탐색하여, 일시 저장된 것과 동일한 식별자(72)를 갖는 WAC 정의를 찾는다. 매칭 식별자를 찾으면, 제어 로더(90)는 그 WAC 정의의 인스턴스(instance)를 생성한다. WAC 인스턴스는 성능 향상을 위해 공동관리되어 재사용될 수 있다.
제어 실행기(92)는 일시 저장된 파라미터를 취하여 그 파라미터를 제어 로더(90)에 의해 생성된 WAC 인스턴스의 파라미터(74) 정의의 속성으로서 셋팅한다. 그후, 제어 실행기(92)는 WAC 인스턴스를 실행하고 제 2 셋트의 코드 등과 같은 갱신된 마크업 코드를 생성한다. WAC 인스턴스는 그 실행 동안 프로젝트 리소스를 액세스하여 WAC 태그로부터 참조된 서버(52) 또는 그 외의 곳에 저장된 콘텐트 소스로부터 콘텐트를 얻을 수 있다.
제어 실행기(92)내의 리소스 관리기(96)는 콘텐트 소스 등의 프로젝트 리소스로의 액세스를 실행 WAC 인스턴스에 제공한다. WAC 인스턴스는 프로젝트 리소스를 생성, 판독, 갱신 및 삭제할 수 있다. 예를 들어, 배너 또는 내비게이션 바를 생성하는 WAC는 사이트 맵 프로젝트 리소스를 액세스할 수 있다. 또한, 데이터베이스로부터 페이지를 생성시키는 WAC는 기존의 페이지 셋트를 삭제한 후 새로운 페이지 셋트를 생성할 수 있다.
문서 갱신기(84)내의 콘텐트 관리기(94)는 갱신된 마크업 코드를 얻고 그것을 파일에 병합한다, 즉, 콘텐트 관리기(94)는 자동 생성되거나 사용자의해 생성된 코드의 유형에 따라 제 2 셋트의 코드를 제 1 셋트의 코드(64)로 병합한다. 코드의 이들 유형은 서로 구별되어 제 2 셋트의 코드를 제 1 셋트의 코드(64)로 병합하는 것을 용이하게 한다. 사용자에 의해 생성된 코드는 사용자 생성으로 마크되고 임의의 나머지 비-사용자 생성 코드는 자동 생성된 것으로 추정된다. 제 2 셋트의 코드는 새로운 마크업으로부터 자동 생성되거나 사용자 생성으로 형성되는 반면, 제 1 셋트의 코드(64)는 오래된 코드를 포함한다. 2셋트의 코드를 병합하기 전에, 이들 두 셋트의 일부가 상관되는 대응 부분이 있는 지를 판단하고, 그러한 임의의 대응 부분에 대한 노트(note)가 이루어진다.
(제 1 셋트의 코드(64)내의) 오래된 자동 생성 마크업 코드는 파일로부터 제거되고 제 2 셋트의 코드로부터 자동 생성된 새로운 마크업 코드로 대체된다. 제 자동 생성되거나 사용자에 의해 생성된, 1 셋트의 코드(64)의 부분에 대응하지 않는, 새로운 마크업 코드는 제 1 셋트의 코드(64)로 삽입된다. 새로운 마크업 코드가 사용자로부터의 마크업을 포함하면, 코드 매칭에 대해 오래된 마크업 코드가 검사된다. 오래된 사용자 마크업 코드는 대응하는 새로운 사용자 마크업 코드에 대해서 유지될 수 있다. 이것은, WAG의 자동 실행중에, 예를 들어, 현재의 프로젝트의 문서의 변화에 응답하여, 포맷에 대한 본래의 사용자 변경이 유지되도록 하고, 이에 덮어쓰지(overwrite) 않도록 해준다. 다른 방법으로, 오래된 사용자 코드는 파라미터내에 이를 지정함으로써 이에 대응하는 새로운 사용자 코드로 대체될 수 있다. 사용자 마크업 코드는 오래된 및 새로운 사용자 마크업 코드사이를 대응시키기 위하여 병합 프로세서에서 사용되는 이름 속성을 가질 수 있다. 대응하는 새로운 사용자 마크업 코드는 오래된 사용자 마크업 코드와 상이한 순서일 수 있으며, 이 경우, 콘텐트 병합기(94) 모듈은 오래된 사용자 마크업 코드를 재순서화한다. 이것은 WAC가 융통성있는 페이지 래이아웃(layout)을 구현하도록 한다. 예를 들어, 페이지 래이아웃이 메인 토픽 및 사이드바를 정의하는 것으로 가정하면, 사이드바의 위치는 WAC의 파라미터에 의해 특정된다. 그후, 위치가 변경되면, 콘텐트 병합기(94)는 정확하게 래이아웃 영역을 재순서화한다.
WAC 프로세서(56)내의 제어 분리기(86)는 제 1 셋트의 코드로부터 WAC 태그를 제거한다. WAC 프로세서(56)는 통상 WAC 태그를 보존하지만, WAC 태그는 입력 파라미터를 WAC 태그내의 WAC 프로세서(56)로 특정함으로써 선택적으로 제거될 수 있다. 제 1 셋트의 코드(64)로부터 WAC 태그를 제거하는 것은 데이터베이스 패스워드 등의 민감한 파라미터 정보를 제거할 뿐만 아니라 문서 크기를 감소시킬 수 있다.
WAC 프로세서(56)내의 문서 작성기(88)는 출력 파일에 병합된 코드를 기입한다. 병합기의 출력은 본래의 파일에 겹쳐 기입되거나 다른 파일에 기입될 수 있다. 제어 분리를 원할 수 있으므로, 병합된 코드는 발행 시점에서 상이한 파일에 기입될 수 있다.
WAC 처리는, 또한 서버 및 클라이언트 기능이 단일 컴퓨터(미도시) 상에 위치하는 단일 위치에서 발생할 수 있다. 이 경우, 마크업 코드 파일은 코드를 개발하는데 사용되는 컴퓨터 상에서 완전히 처리될 수 있다(즉, WAC 실행은 클라이언트 상에서 발생된다). 처리후에, 제 1 셋트의 코드를 갖는 파일은 표준 웹 서버로 발행되어 디스플레이 요청을 처리할 수 있다. 컨텍스트 파라미터를 입력으로서 WAC 프로세서에 전달함으로써 처리가 제어될 수 있다. 컨텍스트 파라미터는 문서의 라이프 사이클 단계(즉, 생성, 유지, 등)를 지정한다. 개발 컴퓨터 상에 상주하는 WAC 프로세서는 웹 서버에 의해 수신된 요청에 응답하여 코드를 처리하여 코드를 디스플레이용으로 작성한다.
전술한 본 발명의 실시예는 저작의 완료시점에 처리되었지만, WAC는 웹 페이지를 디스플레이하라는 요청이 수신될때 실행 시점에서 처리될 수 있다.
WAC는 웹 페이지 상의 콘텐트를 주기적으로 자동 리프레쉬하는데 사용될 수 있다. 예를 들어, 웹 사이트가 매일 갱신되는 데이터베이스에 저장된 상품 정보를 갖는 상품 카탈로그를 포함하면, WAC는 데이터베이스 변화를 반영하도록 웹 페이지를 갱신하는 것을 도울 수 있다. 웹 사이트의 웹 페이지내의 WAC는 데이터베이스를 링크할 수 있고 웹 서버에 발행되는 웹페이지로 데이터베이스 정보를 추출하는데 사용될 수 있다. 데이터베이스의 각각의 업데이트후에, WAC 프로세서는 데이터베이스로부터의 모든 상품 페이지와 인덱스 페이지를 재생성하는데 사용될 수 있다. 더 이상의 동적(dynamic) 콘텐트가 웹 페이지에 포함되지 않으면 생성 문서는 HTML로 될 수 있으며, 또는, 추가의 동적 콘텐트가 필요하면, 예를 들어, JSP로 이루어질 수 있다. 가끔 변경되는(즉, 다소 정적일 수 있는) 콘텐트를 생성하기 위하여 WAC를 사용하는 것은 요구되는 처리량을 감소시킨다. WAC없이 JSP가 사용되면, 매 실행 시점에 요청된 각각의 페이지에 대하여 액세스되어, 성능이 느려지는 결과를 가져오고, 수용가능한 성능을 유지하기 위해서는 더 많은 컴퓨터를 필요로 하게 된다. WAC를 사용하는 것은 빈버히 변경되는 동적 콘텐트를 생성하는데 실행시간 처리를 한정한다.
본 발명에 대한 하나의 가능한 구현은 DTD (document type definition)를 사용하는 WAC 태그 및 XML 파일에서 이용될 수 있는 태그를 정의하는 규칙들 및 그 유효 값들을 특정하는 것이다. WAC에 대한 정의는 WAC를 웹 페이지에 삽입하는 태그를 지정하는 XML 방식, WAC를 개발하는 자바 라이브러리, 및 WAC를 포함하는 웹 페이지내의 코드를 발생시키는 자바 프로세서를 사용할 수 있다. XML 방식은 데이터의 요소 및 속성, 및 요소간의 관계를 정의하는 데이터 모델을 나타내는 시스템이다. 식별자(72), 파라미터(74), 및 제어 동작(76)은 요소들로서 구현될 수 있고, 요소는 시작 및 종료 태그 및 콘텐트으로서 참조되는 태그간의 정보를 갖는 XML 구조적 구문(construct)이다.
이러한 구현으로, 파라미터 값과 콘텐트 소스 위치 등의 WAC의 실행에 관련된 정보는 WAC 태그내에 속성으로서 포함된다. 이것은 WAC가 함유(nesting)되도록 하여, 제 1 WAC의 실행 동안, 제 2 삽입 WAC는 발견되고 실행되어 제 1 WAC 실행의 결과에 그 결과를 포함할 수 있도록 해준다.
WAC를 위한 DTD는, 모든 데이터가 WAC 태그의 XML 속성으로서 나타나는 것을 특정한다. WAC를 위한 DTD의 전체 구현은 첨부물 A(wac.dtd)에 도시된다. 웹 브라우저의 정상 행동이 HTML 태그만을 디스플레이하는 것이므로, 모든 WAC 태그는 문서가 디스플레이될때 효과적으로 숨겨진다. 따라서 XML의 이러한 사용은 HTML 코멘트의 사용과 동일한 효과를 가지며 복잡한 웹 페이지 래이아웃의 생성을 위하여 바람직하게 WAC가 함유되도록(nested) 한다.
제 1 셋트의 코드의 HTML 또는 XML 파싱(parsing)를 위하여, 트리의 생성은 WAC 처리 순서를 제어하는데 사용될 수 있는 DOM(Document Object Model)을 생성한다.
이 가능한 구현으로, 새로운 WAC는 자바 클래스를 구현함으로써 생성될 수있다. 자바 클래스는 특정 객체를 정의하는 데이터 멤버와 메소드(methods)의 집합이다.
이러한 구현에 기초한 예시적인 WAC의 호출은 다음과 같다.
<?xml version="1.0" encoding="ISO-8859-1"?>
<html>
<head>
<title>Listing of source</title>
<body>
<h4>Listing of source.</h4>
<wac:control xmlns:wac="urn:ibm.com:wac" name="mod"
class="wac.samples. Include">
<wac:parameters>
<wac:paramname="include" value="/source"
valuetype="ref"/>
<wac:param name="formatted" value="true"/>
<wac"param name="numbered" value="false"/>
</wac:parameters>
</wac:markup>
<wac:control>
</body>
</html>
태그 <wac:control>는 WAC 태그의 시작을 표시한다. 이 태그는 사용될 WAC가 자바 클래스 명명 wac.samples.Include라는 것을 특정한다. 이 클래스는 WAC 프로세서(56)에 의해 실행될 것이다. 태그 <wac:parameters>는 파라미터 섹션의 시작을 표시한다. 이것은, 파라미터 명명 "include"가 "source"를 갖는 것을 특정하며, "source"는 Include WAC에 의해 리소스 "source"가 HTML 페이지내에 포함되는 것을 의미하는 것으로 해석된다. 웹 페이지는, WAC가 처리되고 HTML 코드가 "source"의 콘텐트에 대하여 생성될때까지 "source"의 콘텐트를 포함하지 않는다. 웹 페이지가 처리되면, WAC 프로세서는 페이지를 판독하고 페이지에 WAC를 찾고, 그들에게 특정된 파라미터를 전달하고, 그들을 실행하고, 그 출력을 웹 페이지에 병합한다.
자바 구현을 위하여, 제어 요소는 이름, 클래스, 및 인에블먼트(enablement) 값을 갖는다. 이름은 다른 제어에 의해 참조될 수 있도록 제어를 위한 유일 식별자이다. 클래스는 제어를 구현하는 자바 클래스의 이름이다. 인에블먼트 값은 제어가 그 마크업을 재생해야 하는지를 판정하기 위하여 셋팅된다. 다음은 제어 요소에 대한 예시적인 구조이다.
<!ELEMENT control (parameters, markup)>
<!ATTLIST control
id ID #REQUIRED
class CDATA #REQUIRED
enabled (true |false) "true">
제어 요소는, 특성을 셋팅하는데 사용되는 파라미터를 포함하는 파라미터 요소와 상기 생성된 마크업을 포함하는 마크업 요소를 포함한다.
파라미터 요소는 제어 특성을 셋팅하는데 사용되는 파라미터를 포함한다. 다음은 파라미터 요소에 대한 예시적인 구조이다.
<!ELEMENT parameters (param |paramarray)*>
파라미터 요소는 단일 제어 특성을 정의하는 param 요소를 포함한다. param 요소는 다음과 같은 예시적인 구조를 갖는다.
<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED
valuetype (data|ref|object) "data">
param 요소는 특성 이름과 특성 값을 갖는다. param 요소는 또한 (스트링의 수 등의) 데이터일 수 있는 특성 값 유형, URL 참조 또는 또다른 요소를 갖는다. 특성의 유형이 URL이면, 절대적일 수 있거나 "http:"의 방식으로 시작하거나, 상대적일 수 있다. 상대적인 URL은 동일한 프로젝트내의 또다른 리소스를 참조한다.
파라미터 요소는 또한 paramarray 요소를 포함하며, 이하와 같은 예시적인 구조를 갖는다.
<!ELEMENT paramarray (paramvalue)*>
<!ATTLIST paramarray
name CDATA #REQUIRED
valuetype (data|ref|object) "data">
paramarray 요소는 제어 인덱스 특성을 정의한다. paramarray는 param 요소처럼 특성 이름과 특성 값 유형을 갖는다.
paramarray 요소는 또한 paramvalue 요소를 가지며, 그 예시적인 구조는 다음과 같다.
<!ELEMENT paramvalue EMPTY>
<!ATTLIST paramvalue
value CDATA #required>
paramvalue 요소는 주어진 인덱스에 대한 인덱스된 특성 값을 정의한다. paramarray 요소내의 paramvalue 요소의 위치는 인덱스를 정의한다.
마크업(markup) 요소는 제어 요소에 의해 발생된 마크업을 포함한다. 마크업 요소는 직접 또는 간접적으로 제어(control) 및 사용자마크업(usermarkup) 요소 뿐만 아니라 임의의 유효한 넌-WAC(non-WAC) 마크업을 포함할 수 있다. 생성된 마크업은 제어 요소 인에이블먼트 값을 사용불가능하게 함으로써 사용자에 의해 변경될 수 있다. 다른 방법으로, WAC 태그는 발생된 마크업으로부터 분리될 수 있다.
사용자마크업 요소는 사용자가 WAC에 의해 발생된 마크업내에 마크업을 삽입하도록 한다. WAC가 마크업을 재생성하면, 사용자마크업 요소의 콘텐트가 보존된다. 사용자마크업 요소는 그 목적을 식별하는 요소를 식별하는 이름을 갖는다. 사용자마크업 요소는 제어 요소 뿐만 아니라 임의의 비(non)-WAC 마크업을 포함할 수 있다.
첨부물(appendix) A: WAC.DTD 예
<!DOCTYPE eBAF-WAC-1.0 [
<!--
이 DTD는 웹 저작 제어 또는 생략하여 WAC를 설명한다. WAC는 웹 페이지의 저작을 돕는 생산력이 있다. WAC는 복잡한 마크업을 생성하는 작업을 간략화하는데 사용될 수 있거나 그것이 의존하는 리소스가 변경될 때 마크업 갱신등과 같은 지루한 작업을 자동화할 수 있다. WAC는 개발 시점에 실행한다. 모든 WAC 태그는 그 런타임 환경으로 전개될때 문서로부터 분리될 수 있다.
WAC는 HTML, JSP, 또는 일반적인 XML일 수 있는 문서내에 포함된다. 문서는 관련된 문서 및 리소스를 포함하는 프로젝트의 일부이다. 예를 들어, WAC는 사이트 맵 리소스로부터 내비개이션 바(navigation bar)를 발생시키는데 사용될 수 있다. 프로젝트 및 문서는 WAC의 실행 컨텍스트의 일부이다. 실행하는 동안에, WAC는 리소스를 판독하고, 기존의 리소스를 업데이트 또는 삭제하고, 새로운 리소스를 생성할 수 있다. 문서내에 WAC를 삽입하는데 사용되는 태깅(tagging) 방식은 XML 컴플라이언트(compliant)이다. WAC 태그에 의해 포함된 모든 비-마크업 데이터(즉, 메타데이터)는 요소 속성으로서 표시되어 WAC를 포함하는 문서는 정상적인 웹브라우저에 의해 디스플레이될 수 있도록 한다. 반대로, 웹보트(WebBot) 및 DTC는 함유될 수 없는 HTML 코멘트내에 메타데이터를 저장한다. XML 요소의 사용은 WAC가 함유되고 조직되므로 좀더 강력하다. 예를 들어, 페이지 래이아웃 WAC는 함유된 내비게이션 WAC를 포함할 수 있다.
-->
<!-- The <control> Element
제어는 파라미터로부터 마크업을 발생시키는 자바빈(JavaBean)이다. 제어는 파라미터로 나타낸 매크로와 같다. 파라미터는 갯수 또는 스트링 등 단순한 데이터일 수 있고, 또는 프로젝트내에 위치하는 동일한 문서 또는 리소스내의 다른 제어에 대한 참조일 수 있다.
제어는 사용자가 파라미터를 셋팅하는 것을 돕는 사용자 인터페이스를 제공함으로써 웹 저작을 간략화한다. 사용자 인터페이스는 자바빈에 의해 정의되고 선택적인 고객 특성 편집기 또는 커스토마이저(customiser)를 갖는 특성 시이트일 수 있다. 편집기는 편집을 위하여 제어가 선택될때 사용자에게 특성 시이트 또는 커스토마이저를 부여해야 한다.
제어는 리스팅에 라인 번호를 추가하는 등의 지루한 작업을 자동화하거나 사용자가 복잡한 HTML 및 JSP 태그 또는 자바 스크립틀릿(Java scriptlets)을 작성할 필요성을 제거하는데 사용될 수 있다.
<control> 요소는 다음의 속성을 갖는다.
이름(name): 다른 제어에 의해 참조될 수 있도록 제어를 위한 유일 ID
클래스(class): 제어를 구현하는 자바 클래스의 이름
인에이블(enabled): 제어가 그 마크업을 재발생해야 하면, 참(true)
ID 속성은 제어가 다른 제어에 의해 참조될 수 있도록 하는 ID이다.
클래스 속성은 제어를 구현하는 클래스의 완전한 자격의 이름이다. WAC 프로세서가 클래스를 찾는 방법은 정의되지 않는다.
인에이블 속성은 원하면 사용자가 제어를 할 수 없도록 한다. 예를 들어, 사용자는 생성된 마크업을 일시적으로 변경하기를 원할 수 있다.
<control> 요소는 자바빈 특성을 셋팅하는데 사용되는 파라미터인 <parameters> 요소와 생성된 마크업을 포함하는 <markup> 요소를 포함한다.
-->
<!ELEMENT control (parameters, markup)>
<!ATTLIST control
id ID # REQUIRED
class CDATA #REQUIRED
enabled (true |false) "true">
<!-- The <parameters> Element
<prameters> 요소는 제어 특성을 셋팅하는데 사용되는 파라미터를 포함한다. 제어가 자바빈이므로, 그 특성은 단일값 또는 인덱스일 수 있다.
<parameters> 요소는 제로 또는 <param> 또는 <paramarray> 요소를 포함할 수 있다.
<param> 요소는 단일값 특성을 정의한다.
<paramarray> 요소는 인덱스 특성을 정의한다.
-->
<! ELEMENT parameters (param|paramarray)*>
<!-- The <param> Element
<param> 요소는 제어 특성을 정의한다. 이것은 다음의 속성을 포함한다
이름(name): 특성 이름
값(value): 특성 이름
값유형(valuetype): 다음 중의 하나일 수 있는 특성 값 유형
데이터(data): 값은 번호 또는 스트링 등의 단순한 데이터이다
ref: 값은 URL이다
오브젝트(object): 값은 이 문서의 또다른 요소의 ID이다.
유형 ref의 값은 URL이다. URL은 절대적이거나 상대적일 수 있다. URL이 방식, 예를 들어 "http:"로 시작하면, 절대적이다. 그렇지 않으면, 상대적이다.
상대적인 URL은 프로젝트내의 또다른 리소스를 참조한다. URL이 "/"로 시작하면, 프로젝트 루트에 상대적인 것이다. 그렇지 않으면, URL은 문서에 상대적이다. WAC-컴플라이언트 사이트 매니지먼트 툴은, 참조된 리소스가 이동되거나 재명명되거나 또는 문서가 이동되면, 이 값을 업데이트해야 한다.
유형 오브젝트의 값은 문서내의 또다른 요소의 ID이다. WAC-컴플리언트 편집기는 참조된 요소의 ID가 변경되면 이 값을 업데이트해야 한다.
-->
<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED
valuetype (data|ref|object) "data">
<!-- The <paramarray> Element
<paramarray> 요소는 제어 인덱스 특성을 정의한다. 이것은 다음의 속성을 포함한다.
이름(name): 특성 이름
값유형(valuetype): 특성 값 유형(<param> 요소 참조)
<paramarray> 요소는 제로 또는 인덱스 특성의 값을 정의하는 <paramvalue> 요소를 포함한다.
-->
<!ELEMENT paramarray (paramvalue)*>
<!ATTLIST paramarray
name CDATA #REQUIRED
valuetype (data|ref|object) "data">
<!-- The <paramvalue> Element
<paramvalue> 요소는 주어진 인덱스에 대한 인덱스 특성의 값을 정의한다. <paramarray> 요소내의 <paramvalue> 요소의 위치는 인덱스를 정의한다.
<paramvalue> 요소는 다음의 속성을 갖는다.
값(value): 특성 값
-->
<!ELEMENT paramvalue EMPTY>
<!ATTLIST paramvalue
value CDATA #REQUIRED>
<!-- The <markup> Element
<markup> 요소는 제어에 의해 생성된 마크업을 포함한다. <markup> 요소는 임의의 유효한 넌-WAC 마크업을 포함할 수 있고, 또한 <control> 및 <usermarkup> 요소를 직접 또는 간접적으로 포함할 수 있다.
편집기는, 마크업이 재발생될때 사용자에 의한 임의의 변경이 대체될 것이므로, 기입 보호로서 <usermarkup> 요소내에 포함되지 않는 임의의 마크업을 처리해야 한다. 사용자 마크업을 보존하기 위하여 마크업은 <usermarkup> 요소내에 포함되어야 한다.
사용자가 생성된 마크업을 변경할 필요가 있으면, 2개의 선택권이 있다.
첫번째로, 사용자는 그 인에이블 속성을 거짓(false)으로 설정함으로써 제어를 사용할 수 없게 할 수 있다. WAC-컴플라이언트 편집기는 사용자가 모든 또는 선택된 제어를 가능하게 하거나 사용 불가능하게 하는 방법을 제공해야 한다.
두번째로, 사용자는 문서로부터 생성된 마크업을 둘러싸는 WAC 태그를 분리할 수 있다. WAC-컴플라이언트 편집기는 사용자가 모든 또는 선택된 제어를 분리하도록 하는 방법을 제공해야 한다.
-->
<!ELEMENT markup ANY>
<!-- The <usermarkup> Element
<usermarkup> 요소는 사용자가 WAC에 의해 생성된 마크업에 마크업을 삽입하도록 한다. WAC가 마크업을 재생성하면, <usermarkup> 요소의 콘텐트는 정상적으로 보존된다.
<usermarkup> 요소는 다음의 속성을 갖는다.
이름(name): 그 목적을 식별하는 요소의 이름
<usermarkup> 요소의 콘텐트가 통상 정상적으로 보존되지만, WAC가 마크업을 재생성할 때 그 상대적인 순서는 변경될 수 있다. 또한, 새로운 <usermarkup> 요소는 발생될 수 있고 기존의 <usermarkup> 요소는 제거될 수 있다. WAC는 <usermarkup> 요소를 생성하고, WAC 프로세서는 이름 속성을 매칭함으로써 기존의 콘텐트에 병합한다.
<usermarkup> 요소는 임의의 비(non)-WAC 마크업일 수 있으며 또한 <control> 요소일 수 있다.
-->
<!ELEMENT usermarkup ANY>
<!ATTLIST usermarkup name CDATA"">
]>

Claims (10)

  1. 실행시간(run-time) 기간동안 클라이언트측상에 복수의 문서를 디스플레이하기 위하여 서버측상에서 복수의 문서에 대한 디스플레이 포맷팅 명령을 자동 생성하는 방법에 있어서, 상기 서버는 복수의 레퍼런스(reference)를 포함하는 제 1 셋트의 포맷팅 명령을 갖는 파일과 복수의 포맷팅 제어를 가지며, 각각의 레퍼런스는 복수의 문서 중 하나와 복수의 포맷팅 제어 중 하나를 표시하는(indicating) 방법에 있어서,
    (A) 상기 파일을 처리하여 상기 복수의 레퍼런스의 각각을 위치시킴으로써 트리를 형성하는 단계;
    (B) 상기 복수의 레퍼런스 중의 하나에 따라 상기 복수의 포맷팅 제어 중 하나를 실행하여 상기 복수의 레퍼런스 중 상기 하나에 표시된 문서에 기초하여 제 2 셋트의 포맷팅 명령을 생성하는 단계;
    (C) 상기 제 2 셋트의 포맷팅 명령을 출력 파일에 통합하는 단계; 및
    (D) 상기 트리내의 상기 복수의 레퍼런스 각각에 대하여 상기 단계 (B) 및 (C)를 반복하는 단계를 포함하고,
    상기 복수의 레퍼런스에 표시된 상기 복수의 포맷팅 제어의 각각은 실행시간기간 전에 실행되는 방법.
  2. 제 1 항에 있어서, 상기 복수의 포맷팅 제어는 깊이 우선 순서(depth-firstorder)로 상기 트리내의 그들의 깊이에 따라 실행되는 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 제 1 셋트의 포맷팅 명령과 상기 제 2 셋트의 포맷팅 명령은 둘다 마크업 언어로 이루어진 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서, 상기 트리내의 상기 복수의 레퍼런스 각각을 실행한 후 제 1 셋트의 포맷팅 명령으로부터 상기 복수의 레퍼런스를 제거하는 단계를 더 포함하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 포맷팅 명령은 자동 생성되거나 사용자에 의해 생성된 유형이며, 상기 제 1 셋트의 포맷팅 명령은 상기 자동 생성 및 사용자 생성 유형이 그 내부에 표시되며, 상기 단계(C)는,
    (I) 상기 제 2 셋트의 포맷팅 명령내에 자동 생성 포맷팅 명령을 상기 자동 생성 유형으로서 지정하는 단계;
    (II) 상기 제 2 셋트의 포맷팅 명령내에 사용자 생성 포맷팅 명령을 상기 사용자 생성 유형으로서 지정하는 단계; 및
    (III) 상기 포맷팅 명령의 유형과 상기 제 1 셋트의 포맷팅 명령에 따라 자동 생성 포맷팅 명령과 사용자 생성 명령을 파일에 삽입하는 단계
    를 포함하는 방법.
  6. 제 5 항에 있어서, 상기 단계(III)는,
    (a) 상기 제 1 셋트의 포맷팅 명령의 부분이 상기 제 2 셋트의 포맷팅 명령의 부분과 대응하는지를 판정하는 단계;
    (b) 상기 제 1 셋트의 포맷팅 명령과 대응하지 않는 상기 제 2 셋트의 포맷팅 명령의 모든 부분을 삽입하는 단계;
    (c) 상기 제 1 셋트의 포맷팅 명령의 부분과 대응하는 상기 제 2 셋트의 포맷팅 명령의 부분이 자동 생성 유형이면, 상기 제 1 셋트의 포맷팅 명령의 대응하는 부분을 상기 제 2 셋트의 포맷팅 명령의 대응하는 부분으로 대체하는 단계; 및
    (d) 상기 제 1 셋트의 포맷팅 명령의 부분과 대응하는 상기 제 2 셋트의 포맷팅 명령의 부분이 사용자 생성 유형이면, 상기 제 1 셋트의 포맷팅 명령의 상기 대응하는 부분을 상기 제 2 셋트의 포맷팅 명령의 대응하는 부분의 포맷에 따라 리포맷(reformat)하는 단계
    를 포함하는 방법.
  7. 제 6 항에 있어서, 상기 단계(d)는,
    (i) 상기 사용자 생성 유형의 상기 제 1 셋트의 포맷팅 명령의 대응하는 부분과 상기 사용자 생성 유형의 상기 제 2 셋트의 포맷팅 명령의 대응하는 부분 사이의 대응성을 생성하는 단계; 및
    (ii) 상기 대응하는 사용자 생성 유형의 제 1 셋트의 포맷팅 명령의 순서를 상기 대응하는 사용자 생성 유형의 제 2 셋트의 포맷팅 명령의 순서에 대응시키는단계를 포함하는 방법.
  8. 제 1항 내지 제 7 항 중 어느 한 항에 있어서, 상기 파일은 복수의 파일 중 하나이며,
    (E) 상기 단계(A) 전에, 상기 복수의 파일 중 하나의 파일의 변경을 검출하는 단계;
    (F) 상기 복수의 파일의 각각에 대하여 상기 단계(A) 내지 (D)를 반복하는 단계를 더 포함하는 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 방법을 수행하는 서버 컴퓨터 시스템.
  10. 컴퓨터 시스템 상에서 실행될 때, 컴퓨터 시스템이 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 방법을 수행하도록 명령하기 위하여 컴퓨터 판독가능 기억 매체 상에 저장된 컴퓨터 프로그램 제품.
KR10-2003-7014881A 2001-06-15 2002-05-28 웹 저작 보조 툴 KR20040007570A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2,350,723 2001-06-15
CA002350723A CA2350723A1 (en) 2001-06-15 2001-06-15 Tool for web authoring assistance
PCT/GB2002/002494 WO2002103553A2 (en) 2001-06-15 2002-05-28 Tool for web authoring assistance

Publications (1)

Publication Number Publication Date
KR20040007570A true KR20040007570A (ko) 2004-01-24

Family

ID=4169288

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7014881A KR20040007570A (ko) 2001-06-15 2002-05-28 웹 저작 보조 툴

Country Status (7)

Country Link
EP (1) EP1395913A2 (ko)
JP (1) JP2005506608A (ko)
KR (1) KR20040007570A (ko)
CN (1) CN1545664A (ko)
CA (1) CA2350723A1 (ko)
TW (1) TW530240B (ko)
WO (1) WO2002103553A2 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765006A (en) * 1992-04-30 1998-06-09 Ricoh Company, Ltd. Method and system to process external entities in a document processing language
US6031989A (en) * 1997-02-27 2000-02-29 Microsoft Corporation Method of formatting and displaying nested documents
US6792575B1 (en) * 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers

Also Published As

Publication number Publication date
CN1545664A (zh) 2004-11-10
WO2002103553A3 (en) 2003-12-11
TW530240B (en) 2003-05-01
WO2002103553A2 (en) 2002-12-27
JP2005506608A (ja) 2005-03-03
EP1395913A2 (en) 2004-03-10
CA2350723A1 (en) 2002-12-15

Similar Documents

Publication Publication Date Title
US6792475B1 (en) System and method for facilitating the design of a website
US20030237046A1 (en) Transformation stylesheet editor
US8078960B2 (en) Rendering an HTML electronic form by applying XSLT to XML using a solution
US20020059345A1 (en) Method for generating transform rules for web-based markup languages
US7516145B2 (en) System and method for incrementally transforming and rendering hierarchical data files
US20090210780A1 (en) Document processing and management approach to creating a new document in a mark up language environment using new fragment and new scheme
EP1818835A1 (en) Document processing device, and document processing method
EP1821185A1 (en) Data processing device and data processing method
US20080040588A1 (en) Data Processing Device and Data Processing Method
EP1816586A1 (en) Data processing system, data processing method, and management server
US20080134019A1 (en) Processing Data And Documents That Use A Markup Language
EP1821176A1 (en) Data processing device and data processing method
JPH0830620A (ja) 構造検索装置
US20090021767A1 (en) Document processing device
US7143108B1 (en) Apparatus and method for deletion of objects from an object-relational system in a customizable and database independent manner
US20080046809A1 (en) Data Processing Device and Data Processing Method
US7437663B2 (en) Offline dynamic web page generation
US7996364B2 (en) Information processing apparatus and control method thereof, and document verification apparatus and control method thereof
WO2006137563A1 (ja) データ処理装置及びデータ処理方法
US7827195B2 (en) Document management device and document management method
US7131066B1 (en) XML based system for updating a domain model and generating a formatted output
EP1830274A1 (en) Server device and name space issuing method
US20080250311A1 (en) Document Processing Device, and Document Processing Method
EP1821220A1 (en) Data processing device, document processing device, and document processing method
US20080005085A1 (en) Server Device and Search Method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application