DTD(Document Type Definition) 란?
- DTD는 데이터를 포함하는 문서에서 일관성을 유지하도록 데이터 구조를 미리 정의하는데 돕기 위한 것이다.
- XML문서에서 아용되는 마크업 문서에 대한 논리 구조를 정의
DTD 타입
- ELEMENT(엘리먼트 정의)
- ATTLIST(속성 정의)
- ENTITY(엔티티 정의)
- NOTATION(데이터 타입 표기법 선언)
- COMMENT(주석)
- CDATA섹션
엘리먼트 (ELEMENT) |
<!ELEMENT Name contentspec -> 일반적인 형태 Name: 선언될 엘리먼트 타입명 , contentspec : 어떤것을 담을지 정의하는 컨텐츠 스펙(content specification)
|
|
속성 (ATTRIBUTE) |
<!ATTLIST Name AttDefs Class CDATA "fictional"> : Name은 속성에 연결된 엘리먼트 타입 이름이다. : AttDefs는 하나 혹은 그이상의 속성 정의이다. : Class는 속성 이름이다. : CDATA는 속성 타입이다. : "fictional" 디폴트 선언이다. - 속성 타입(attribute type) 1.문자열 타입 : 문자열 타입(String type) 속성은 CDATA 키워드를 사용하여 선언한다. ex) <!ATTLIST FILM Class CDATA "fictional"> 2. 토큰화된 타입(tokenized type) - ID ID 의 값은 name 문서 내에서 각 엘리먼트 ID값은 고유값을 가져야함 - IDREF / IDREFS IDREF : 지정된 ID로 엘리먼트를 가리킨다 IDREFS : while space로 구분되는 IDREF 값들 - ENTITY / ENTITIES ENTITY : external entity ENTITIES : white space로 구분되는 ENTITY 값들 - NMTOKEN / NMTOKENS NMTOKEN : 단일 단어나 토큰을 나타내며, 토큰들의 구분은 공백으로 구분 3. 열거형 타입 : 여러 토큰들 중의 하나가 선택된다. : 열기 괄호 다음에 | 로 구분된 네임 토큰의 리스트 다음에 닫기 괄호의 형태를 가진다. ex) <!ATTLIST 제목정렬 (왼쪽|오른쪽|가운데) "왼쪽"> ->"왼쪽" 은 기본값 - 디폴트 선언(default declaration) : #REQUIRED -> 엘리먼트 선언시 반드시 값이 지정 ex) <!ATTLIST 순차목록분리자 NMTOKEN #REQUIRED> : #IMPLIED -> 속성값이 요구되지 않고 디폴트 값을 제공하지 않는다 -> 값이지정되지 않으면 XML 처리기는 값 없이 처리 : AttValue -> AttValue는 디폴트 속성값이 된다. -> 엘리먼트 타입에서 속성을 생략할 수도 있고 포함할수도 있지만 생략한다면 디폴트값을 사용할것이다. : #FIXED AttValue ->위와 비슷하지만 속성을 생략한다면 프로세서가 지정된 디폴트값을 사용할 것이다. -> 만약 속성을 포함시킨다면, 그 디폴트 값을 꼭 지정해야 한다. |
|
|
|
|
|
|