데이터 유형 정의를 만드는 데는 두가지 방법이 있습니다.
활동 작성 도구 사용. 활동 작성 사용에 대해서는 제 11 장에 설명되어 있습니다.
수동으로 데이터 유형 정의 작성
수동으로 데이터 유형 정의를 작성하려면 사용자가 데이터베이스를 편집해야 합니다.
이 장에서는 데이터 유형 정의를 수동으로 작성하는 방법에 대해 설명합니다.
데이터 유형에 대한 개요는 제 10 장을 참조하십시오.
데이터 유형 정의에 대한 참조 정보는 dtddsfile(4) 매뉴얼 페이지를 참조하십시오.
데이터 유형을 수동으로 작성하면 데이터 유형 정의 구문에 구축된 모든 기능을 사용할 수 있습니다.
다음과 같은 데이터 유형 기능을 사용하려면 반드시 데이터 유형을 수동으로 작성해야 합니다.
위치(경로)를 기준으로 한 데이터 유형화
열기 및 인쇄 이외의 데이터 유형과 관련된 활동을 지정하는 기능
같은 데이터 유형에 대한 여러 개의 이름, 패턴 또는 내용 기준-예를 들어, 이름이 *.abc 또는 *.def
인 파일을 기준으로 한 하나의 데이터 유형 링크 방식 데이터 유형화
데이터 유형 정의는 두 개의 개별 데이터베이스 정의로 구성됩니다.
각 DATA_ATTRIBUTES
정의에는 하나 이상의 DATA_CRITERIA
정의가 있어야 합니다. DATA_ATTRIBUTES
정의는 그와 연관된 DATA_CRITERIA
를 여러 개 가질 수 있습니다.
예를 들어, 포스트스크립트 파일에 대해 파일 관리자에서 포스트스크립트가 표시되는 모양과 동작하는 방법을 설명하는 속성 정의를 작성할 수 있습니다. 그런 후에 포스트스크립트 데이터 유형에 두 개의 개별 기준을 정의할 수 있는데, 하나는 파일 이름에 근거한 정의이고, 다른 하나는 파일 내용에 근거한 정의입니다.
자세한 정보는 "데이터 유형에 대한 데이터 기준 정의"을 참조하십시오.
이 절에서는 데이터 유형 환경설정 파일을 작성하는 방법을 설명합니다.
데이터 유형 정의를 포함하는 환경설정 파일 요건은 다음과 같습니다.
파일은 명명 규약 name.dt
를 사용해야 합니다. 파일이 데이터베이스 검색 경로에 있어야 합니다. 기본 검색 경로는 다음과 같습니다.
개인 데이터 유형 -HomeDirectory/.dt/types
시스템-전체 데이터 유형 -/etc/dt/appconfig/types/language
내장 데이터 유형 -/usr/dt/appconfig/types/language. 사용자는 이 디렉토리를 사용할 수 없습니다.
데이터베이스 검색 경로의 수정에 대한 정보는 "검색 경로 값 설정"을 참조하십시오.
기존의 데이터베이스 파일을 열거나 새로운 데이터베이스 파일을 작성하십시오.
자세한 정보는 앞 절인 "데이터 유형에 대한 환경설정 파일"을 참조하십시오.
다음 구문을 사용하여 데이터 유형에 대한 데이터 속성을 정의하십시오.
DATA_ATTRIBUTES data_type_name { ICON image_name DESCRIPTION string attribute_field attribute_field ... }
여기서,
data_type_name-은 이 데이터 유형에 주어진 고유한 이름입니다.
image_name-아이콘 파일의 파일 이름 또는 경로. 파일의 기본 이름을 사용합니다. 예를 들어, 아이콘 파일 myimage.m.pm과 myimage.t.pm에는 myimage을사용합니다.
attribute_field-데이터 유형의 모양과 동작을 정의하는 필드
문자열-문자열. 내용은 데이터 유형에 대한 항목 도움말입니다.
"개인 활동 및 데이터 유형 작성에 대한 예"을 참조하십시오.
다음 구문을 사용하여 데이터 유형에 대한 데이터 기준을 정의하십시오.
DATA_CRITERIA criteria_name { DATA_ATTRIBUTES_NAME data_type_name criteria_field criteria_field ... }
변수의 의미는 다음과 같습니다.
criteria_name-이러한 기준 정의에 대한 고유한 이름
data_type_name-DATA_ATTRIBUTES
정의에 사용된 이름
criteria_field-데이터 유형에 파일을 지정하기 위해 기준을 정의하는 데 사용된 필드
"데이터 유형에 대한 데이터 기준 정의"을 참조하십시오.
데이터베이스 파일을 저장하십시오.
데이터 유형에 대한 아이콘을 작성하십시오.
자세한 정보는 "데이터 유형에 사용되는 아이콘 이미지 지정"을 참조하십시오.
필요에 따라, 속성 정의의 ACTIONS 필드에 나열된 활동들을 작성하십시오.
Desktop_Tools 응용 프로그램 그룹에서 활동 재로드를 두 번 눌러서 데이터베이스를 재로드하십시오.
시스템에 xgif라는 이름의 GIF 그림을 표시하는 응용 프로그램이 들어 있다고 가정하십시오. 평소와 마찬가지로, 다음을 실행하여 프로그램을 수행하십시오.
xgif filename
다음과 같은 여러 방법으로 GIF 그림을 표시할 수 있습니다.
GIF 데이터 파일 두 번 누르기
데이터 파일 선택 및 선택 메뉴에서 응용 프로그램 선택
편집을 위해 새 파일 HomeDirectory/.dt/types/GifViewer.dt를 여십시오.
다음과 같이 데이터 유형 정의를 입력하십시오.
DATA_ATTRIBUTES Gif { DESCRIPTION Gif image file. ICON GifIcon ACTIONS View } DATA_CRITERIA Gif_Criteria { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
GifViewer 활동에 대한 활동 정의를 입력하십시오.
ACTION GifViewer { EXEC_STRING xgif% (File)Arg_1"Gif file to view:" WINDOW_TYPE NO_STDIO DESCRIPTION Double-click or drop a file to \ start the Gif viewer. }
이 정의에는 ICON 필드가 포함되지 않기 때문에 활동은 시스템의 기존 아이콘을 사용하게 됩니다.
다음과 같은 대응 활동을 입력하여 GifViewer 활동을 데이터 유형 정의에 나열된 보기 활동에 연결하십시오. 이 보기 활동을 Gif 유형 파일로 제한하려면 ARG_TYPE 필드를 사용하십시오.
ACTION View { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
파일을 저장하십시오.
Desktop_Tools 응용 프로그램 그룹에서 활동 재로드를 두 번 눌러서 데이터베이스를 재로드하십시오.
DATA_ATTRIBUTES
정의는 데이터 유형의 모양과 동작을 정의합니다. 이 정의는 데이터 유형의 이름을 지정하며, 다음과 같은 항목을 지정할 수 있는 기능을 제공합니다.
파일 관리자 아이콘(ICON 필드)
선택 메뉴의 두 번 누르기 작동 및 내용(ACTIONS 필드)
파일 관리자에서 사용되는 아이콘을 지정을 위해서는 ICON 필드를 사용하십시오. 사용자가 아이콘 이미지를 지정하지 않을 경우, 파일 관리자는 레이블만을 표시합니다.
기본 파일 이름은 아이콘 이미지를 포함하는 파일 이름에서 크기(m과 t) 및 이미지 유형(bm과 pm)에서 파일 이름 접미사를 뺀 이름입니다. 예를 들어, 파일 이름이 GameIcon.m.pm와 GameIcon.t.pm인 경우, GameIcon이 사용됩니다.
기본 파일 이름을 사용하는 경우, 해당 아이콘 파일은 아이콘 검색 경로에 있는 디렉토리에 있어야 합니다.
개인 아이콘: HomeDirectory/.dt/icons
시스템-전체 아이콘:/etc/dt/appconfig/icons/language
전체 파일 이름을 포함하는 아이콘 파일의 절대 경로명
절대 경로명은 아이콘 파일이 해당 아이콘 검색 경로에 있지 않은 경우에만 사용해야 합니다. 예를 들어, 아이콘 파일 GameIcon.m.pm이 해당 아이콘 검색 경로에 있지 않는 디렉토리 /doc/projects에 있는 경우, ICON 필드의 값은 /doc/projects/GameIcon.m.pm이 됩니다.
표 13-1 에는 사용자가 작성해야 하는 아이콘의 크기와 해당 파일 이름들이 나열되어 있습니다.
픽셀 단위의 크기 |
비트맵 이름 |
픽스맵 이름 |
---|---|---|
32 x 32 |
name.m.bm |
name.m.pm |
16 x 16 |
name.t.bm |
name.t.pm |
데이터 유형은 다음 두 가지 방법으로 활동과 연관됩니다.
활동은 활동 정의의 ARG_TYPE 필드를 사용하는 지정된 데이터 유형으로 제한될 수 있습니다.
예를 들어, 다음과 같은 데이터 유형 정의는 시스템 관리자가 작성하고 명명 규약 *.rm을 사용하는, 특별한 "readme" 파일에 대한 데이터 유형을 만듭니다.
DATA_ATTRIBUTES SysReadmeFile { ICON SysReadMe ACTIONS Open,Respond } DATA_CRITERIA SysReadmeFileCriteria { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME SysReadmeFile }
파일에 대한 특별한 응답 활동은 아래에 정의되어 있으며, 문서 편집기에서 파일의 쓰기 가능한 사본을 엽니다. 파일은 이 파일을 저장하고 문서 편집기를 종료할 때, 시스템 관리자에게 우편으로 전송됩니다(우편 주소는 sysadmin@utd입니다).
ACTION Respond { ARG_TYPE SysReadmeFile EXEC_STRING /bin/sh -c 'cp%Arg _1% $HOME/readme.temp;\ chmod +w $HOME/readme.temp; \ dtpad $HOME/readme.temp; \ cat $HOME/readme.temp | \ /usr/bin/mailx sysadmin@utd; \ rm $HOME/readme.temp' WINDOW_TYPE NO_STDIO }
파일이 보이지 않는 데이터 유형일 경우, 그 파일은 절대로 파일 관리자에 나타나지 않습니다.
이러한 유형의 객체가 숨겨지도록 지정하기 위해서는 DATA_ATTRIBUTES 정의의 PROPERTIES
필드를 사용하십시오.
PROPERTIES invisible
표 13-2 은 응용 프로그램 프로그래머가 주로 사용하는 DATA_ATTRIBUTES
필드들을 나타내고 있습니다. 이 필드들은 사용자가 다양한 데스크탑 활동을 수행할 때 파일을 동작시키는 방법을 지정합니다.
자세한 정보는 개발자 환경 설명서의 일부인 Common Desktop Environment Programmer's Guide를 참조하십시오.
표 13-2 DATA_ATTRIBUTES 필드 및 설명
필드 |
설명 |
---|---|
디렉토리와 같은 보관소를 위한 필드. 파일이 이 데이터 유형의 보관소로 이동할 때 수행할 활동을 지정합니다. |
|
디렉토리와 같은 보관소를 위한 필드. 파일이 이 데이터 유형의 보관소로 복사될 때 수행할 활동을 지정합니다. |
|
파일이 이 데이터 유형으로 링크될 때 수행할 활동을 지정합니다. |
|
이 데이터 유형의 파일이 텍스트 상자에 표시될 수 있는 텍스트를 포함하도록 지정합니다. |
|
해당 ToolTalk 매체 유형을 지정합니다. |
|
해당 MIME 유형을 지정합니다. |
|
해당 X400 유형을 지정합니다. |
DATA_CRITERIA
정의는 객체 유형을 파일이나 디렉토리에 지정하는 데 사용되는 기준을 정의합니다.
객체 유형화를 위해 표 13-3에 표시된 기준을 사용할 수 있습니다.
표 13-3 DATA_CRITERIA 기준 및 설명
기준 |
설명 |
---|---|
파일 이름 | |
파일 위치 | |
파일 내용 | |
파일 모드 | |
객체가 링크되는 파일에 따라 유형이 지정됩니다. |
한 데이터 유형에 대해 두 개 이상의 기준을 사용할 수 있습니다. 그러나 한 데이터 유형에 NAME_PATTERN과 PATH_PATTERN 기준을 같이 사용할 수는 없습니다.
명명 요건을 지정하는 데는 NAME_PATTERN 필드를 사용하십시오. 필드 값에 다음과 같은 와일드카드들이 포함될 수 있습니다.
?-하나의 문자와 일치합니다
[cc...]- 대괄호로 묶은 모든 문자(c)와 일치합니다
[c-c]- c에서 c
다음과 같은 데이터 유형 정의는 파일 이름을 기준으로 한 데이터 유형을 작성합니다. 파일 이름은 QS로 시작해서 .doc로 끝나야 합니다.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION This file contains a document for the QS \ project. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
다음과 같은 정의는 Demo_n이라는 디렉토리에 대한 데이터 유형을 작성하며, n은 0-9 사이의 수입니다.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION This is a directory. Double-click to open it. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
경로를 지정하는 데는 PATH_PATTERN 필드를 사용하십시오. NAME_PATTERN에서와 같이 와일드카드 문자를 사용할 수 있습니다.
예를 들면, 다음과 같은 데이터 유형이 경로에 근거한 기준을 사용합니다.
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION Graphics file for the QS project. Double-click the \ icon to see the graphic. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
파일 이름과 파일 위치 두가지 모드를 기준으로 하여 데이터 유형을 작성하려면, PATH_PATTERN 값에 파일 이름을 포함시키십시오. 한 기준 정의에 NAME_PATTERN 과 PATH_PATTERN을 같이 사용할 수는 없습니다.
아래 정의된 QS_Source_Files 데이터 유형은 이름이 appn.c인 모든 파일에 적용됩니다. 여기서, n은 1-9 사이의 값이며 파일들은 */projects/QS의 하위 디렉토리에 있습니다.
DATA_ATTRIBUTES QS_Source_Files { ... } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME QS_Source_Files }
다음의 데이터 유형은 chnn.xxx라는 디렉토리 /doc/project1에 있는 모든 파일에 적용되는데, 이 때 n은 0-9 사이의 수이고, xxx는 세 자로 된 파일 이름 접미사입니다.
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION Chapter file for the project document. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME ChapterFiles }
필수 권한을 지정하는 데는 MODE 필드를 사용하십시오.
모드 기준은 대개 이름, 위치 또는 내용을 기준으로 한 유형화 방법들을 조합하여 사용됩니다. 이러한 기준 때문에 사용자가 데이터 유형을 파일이나 디렉토리로 제한하거나 필수인 읽기, 쓰기 및 실행 권한을 지정할 수 있습니다.
MODE 필드에는 논리 연산자(표 13-4)와 문자(표 13-5)들이 포함될 수 있습니다.
표 13-4 MODE 필드 논리 연산자 및 설명
연산자 |
설명 |
---|---|
! | |
& | |
| |
표 13-5 MODE 필드 문자 및 설명
문자 |
설명 |
---|---|
데이터 유형이 파일에만 적용됩니다. |
|
데이터 유형이 디렉토리에만 적용됩니다. |
|
r |
파일이 모든 사용자에게 읽기 가능 상태입니다. |
파일이 모든 사용자에게 쓰기 가능 상태입니다. |
|
파일이 모든 사용자에게 실행가능한 상태입니다. |
|
파일이 링크입니다. |
특정 모드에 대한 기본값은 그 모드에 구애받지 않는 것입니다.
다음 모드 필드들은 다음과 같이 데이터 유형을 제한합니다.
f&!w-읽기 전용 파일
!w-읽기 전용 파일 및 디렉토리
f&x-실행 파일
f&r&x-읽기 및 실행이 모두 가능한 파일
x|!w-실행가능 또는 읽기 전용 파일
다음과 같은 데이터 유형 정의는 명명 규약 *.doc을 따르며 읽기 전용이고 비실행 파일에 대한 데이터 유형을 작성합니다. 이 데이터 유형에 보기 활동을 정의하였다고 가정하십시오.
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION This document is not writable. Double- \ clicking runs your editor with a \ read-only copy of the file. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
파일의 내용을 기준으로 하여 데이터를 유형화하는 데는 CONTENT 필드를 사용하십시오. 내용을 기준으로 한 데이터 유형화는 이름 또는 위치를 기준으로 한 데이터 유형화와 조합하여 사용할 수 있습니다.
이 유형화는 파일의 문자열 또는 숫자를 기준으로 할 수 있습니다. 파일의 첫 바이트는 번호 0으로 지정됩니다.
파일의 숫자 내용에 대해서는 다음과 같은 구문을 사용하십시오.
CONTENT starting_byte byte number CONTENT starting_byte short number CONTENT starting_byte long number
디렉토리의 내용에 대해서는 다음과 같은 구문을 사용하십시오.
CONTENT 0 filename "file_name"
8진(o으로 시작) 및 16진(oX로 시작) 숫자에 대해 표준 C 표기법을 사용하십시오.
내용을 기준으로 데이터 유형화를 사용할 경우, 시스템 성능이 느려집니다. 이름이나 위치를 기준으로 한 유형화가 가능한 곳이면 내용을 기준으로 한 유형화 대신 이들을 사용하십시오.
예를 들어, 다음과 같은 데이터 유형 Writable_Wingz는 파일의 맨 앞에 문자열 WNGZ이 있고 쓰기 사용권한을 갖는 모든 파일에 적용됩니다.
DATA_ATTRIBUTES Writable_Wingz { ... } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
여러 가지 독립적 기준을 사용하여 데이터 유형을 작성할 수 있습니다. 즉, 파일이 해당 기준 중 하나(또는 두 가지 모두)를 충족하는 경우 데이터 유형에 지정됩니다.
데이터 유형에 대한 DATA_ATTRIBUTES
정의 작성
각 기준을 동일한 DATA_ATTRIBUTES 정의로 연결하려면 DATA_ATTRIBUTES_NAME
필드를 사용하십시오.
예를 들면, 다음과 같은 정의는 Mif 데이터 유형을 작성하며, 유형화는 이름이나 내용에 근거하여 실행됩니다.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }
데이터 유형의 검색 경로에는 언어에 따른 위치가 포함됩니다. 데스크탑은 LANG의 값을 사용하여 데이터 유형 정의를 찾기 위해 검색되는 위치를 결정합니다.
지역화된 데이터 유형 정의는 활동 검색 경로를 따라 적절한 언어의 디렉토리에 놓여 있어야 합니다.
기본 검색 경로는 다음과 같습니다.
개인 활동: HomeDirectory/.dt/types
시스템-전체 활동: /etc/dt/appconfig/types/language
내장 활동: /usr/dt/appconfig/types/language