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 }