다음 이전 차례

5. server.dtd 설명

이장은 보다 전문적인 내용이나 XML 에 관련된 내용이므로 필독사항이 아니다. 관심있는 분만 읽어보기 바란다.

또한 이 장은 server.dtd 에 대해 완벽한 설명이 아니므로 관심있는 분은 XML 관련 문서를 참고하길 바란다.

server.dtd은 XML 마크업 언어의 메타 파일인 DTD(Document Type Declarations)파일이며, tomcat 설정 파일인 server.xml파일에서 사용되는 마크업언어를 정의하는 파일인 TOMCAT_HOME/conf/server.dtd 파일이다. 즉, server.dtd는 server.xml 의 문법을 정의 하는 파일이 되는 셈이다.

참고로 마크업 언어의 메타 파일이란 새로운 마크업 언어를 정의하는 파일이다. 또한, tomcat은 server.dtd 에서 정의된 내용을 참조하여 server.xml 의 내용을 이해 할 수 있게 되며, 사용자 또한 server.dtd 에서 정의된 문법(?)대로 server.xml에 각 설정등을 하게 된다.

 <?xml version="1.0" encoding="ISO-8859-1"?>

위의 라인은 XML 파일임을 나타낸다.

 <!ELEMENT Server (ContextManager+)>

Server 라는 요소(element)를 정의 하며 (ContextManager) 는 server 라는 요소에 포함된다. (ContextManager+) 에서 "+"는 하나 이상을 의미하며 여기서는 ContextManager 이라는 요소가 Server 요소내에 최소한 하나가 있어야 하며 하나 이상 있어도 된다는 의미이다. 다음은 사용 예이다.

example 1)

<Server>
   <ContextManager></ContextManager>
</Server>

example 2)

<Server>
   <ContextManager></ContextManager>
   <ContextManager></ContextManager>
   <ContextManager></ContextManager>
</Server>

 <!ATTLIST Server
     adminPort NMTOKEN "-1"
     workDir CDATA "work">

ATTLIST 는 속성을 의미하며 Server 요소의 속성을 정의한다. 다음은 예이다.

<Server adminPort="8808" workDir="workdirect" >
   <ContextManager></ContextManager>
</Server>

 <!ELEMENT ContextManager (Context+, Interceptor*, Connector+)>

위의 예는 ContextManager 요소의 하위 요소를 정의 한다. Interceptor* 의 *은 0개 이상을 의미하므로 Interceptor 가 없어도 되고 하나 이상 있어도 된다. 다음은 예이다.

<Server>
   <ContextManager>
    <Context></Context>
    <Connector></Connector>
    <Connector></Connector>
   </ContextManager>
</Server>

 <!ATTLIST ContextManager
     port NMTOKEN "8080"
     hostName NMTOKEN ""
     inet NMTOKEN "">

위의 내용은 요소 ContextManager 의 속성을 정의 한다. NMTOKEN 은 문자열의 형으로 보아도 되며 XML 의 이름 설정에 대한 제한에 맞아 떨어져야 한다. "8080", "" 등은 각 속상 값의 디폴트 값으로서 값을 설정 하지 않을 경우를 대비한 것이다. 다음은 사용 예이다.

<Server>
   <ContextManager port="8007"></ContextManager>
</Server>

 <!ELEMENT Context EMPTY>

Context 요소를 정의 한다. 값은 없다(EMPTY).

 <!ATTLIST Context
     path CDATA #REQUIRED
     docBase CDATA #REQUIRED
     defaultSessionTimeOut NMTOKEN "30"
     isWARExpanded (true | false) "true"
     isWARValidated (false | true) "false"
     isInvokerEnabled (true | false) "true"
     isWorkDirPersistent (false | true) "false">

Context요소의 속성을 정의한다. CDATA 는 문자열을 의미하며 #REQUIRED 는 무조건 값이 있어야 됨을 의미하며 (true | false) 는 true 나 false 중에서 값이 나와야 함을 의미한다. 그 다음의 "true" 나 "false"는 디폴트 값이다. 다음은 사용 예이다.

<Server>
   <ContextManager>
    <Context path="/test" docBase="webapps/test"></Context>
   </ContextManager>
</Server>

 <!ELEMENT Interceptor EMPTY>

위의 내용은 Interceptor 요소를 정의한다.

 <!ATTLIST Interceptor
     className NMTOKEN #REQUIRED
     docBase   CDATA #REQUIRED>

위의 내용은 Interceptor의 속성을 정의한다.

이하 생략


다음 이전 차례