DTD 속성 선언
속성의 선언
DTD에서 속성은 요소에 대한 추가적인 정보를 제공하며, 해당 요소의 특징을 정의합니다.
DTD에서 속성은 다음과 같이 ATTLIST 구문으로 선언할 수 있습니다.
문법
<!ATTLIST 요소이름 속성이름 속성타입 속성값>
요소의 이름은 해당 속성이 포함될 요소의 이름을 명시합니다.
속성의 타입 정의
DTD에서 속성을 선언할 때 사용할 수 있는 속성 타입은 다음과 같습니다.
| 속성 타입 | 설명 |
|---|---|
| CDATA | 이 타입의 속성값은 문자 데이터(character data)임. |
| (속성값1|속성값2|...) | 이 타입의 속성값은 나열된 리스트 중 하나에 해당함. |
| ID | 이 타입의 속성값은 하나뿐인 아이디(id)임. |
| IDREF | 이 타입의 속성값은 다른 요소의 아이디(id)임 |
| IDREFS | 이 타입의 속성값은 다른 아이디(id)의 리스트임. |
| NMTOKEN | 이 타입의 속성값은 유효한(valid) XML 이름임. |
| NMTOKENS | 이 타입의 속성값은 유효한(valid) XML 이름의 리스트임. |
| ENTITY | 이 타입의 속성값은 엔티티(entity)임. |
| ENTITIES | 이 타입의 속성값은 엔티티(entity)의 리스트임. |
| NOTATION | 이 타입의 속성값은 notation의 이름임. |
| xml: | 이 타입의 속성값은 미리 정의된 예약어인 'xml'임. |
속성값 정의
DTD에서 속성을 선언할 때 사용할 수 있는 속성값은 다음과 같습니다.
| 속성값 | 설명 |
|---|---|
| 값 | 이 속성의 속성값이 명시되지 않을 경우 사용할 기본값임. |
| #REQUIRED | 이 속성은 반드시 명시되어야 함. |
| #IMPLIED | 이 속성은 명시되어도 되고, 명시되지 않아도 됨. |
| #FIXED 값 | 이 속성의 속성값은 명시된 값으로 고정됨. |
DTD 예제
<!ELEMENT math EMPTY>
<!ATTLIST math grade CDATA 'F'>
위의 예제에서 만약 grade 속성의 속성값을 명시하지 않으면, 기본값으로 'F'가 자동 설정됩니다.






