DTD - 속성
DTD에서 속성은 ATTLIST 선언을 통해 선언됩니다.
속성 선언
속성 선언은 다음 문법을 사용합니다:
!ATTLIST 元素名称 属性名称 属性类型 默认值
DTD 예제:
!ATTLIST payment type CDATA "check"
XML 예제:
XML 예제:
다음은속성 타입의 선택 사항:
타입 | 설명 |
---|---|
CDATA | 값은 문자 데이터 (character data)입니다 |
(en1|en2|..) | 이 값은 열거 목록의 하나의 값입니다 |
ID | 값은 유일한 id입니다 |
IDREF | 값은 다른 요소의 id입니다 |
IDREFS | 값은 다른 id의 목록입니다 |
NMTOKEN | 값은 합법적인 XML 이름입니다 |
NMTOKENS | 값은 합법적인 XML 이름의 목록입니다 |
ENTITY | 값은 엔티티입니다 |
ENTITIES | 값은 엔티티 목록입니다 |
NOTATION | 이 값은 기호의 이름입니다 |
xml: | 값은 предопределенной XML 값입니다 |
기본 값 파라미터는 다음 값을 사용할 수 있습니다:
값 | 설명 |
---|---|
값 | 속성의 기본 값 |
#REQUIRED | 속성 값은 필수입니다 |
#IMPLIED | 속성은 필수가 아닙니다 |
#FIXED value | 속성 값은 고정됩니다 |
기본 속성 값을 정의합니다
예제
!ELEMENT square EMPTY !ATTLIST square width CDATA "0"
<!ATTLIST sender company CDATA #FIXED "Microsoft">
<square width="100" />
위의 예제에서 "square"는 CDATA 유형의 "width" 속성을 가진 빈 요소로 정의되었습니다. 너비가 설정되지 않았다면 기본 값은 0입니다.
#IMPLIED
#FIXED
!ATTLIST 元素名称 属性名称 属性类型 #IMPLIED
<!ATTLIST 요소명 속성명 속성타입 #FIXED "value">
예제
!ATTLIST contact fax CDATA #IMPLIED
<!ATTLIST sender company CDATA #FIXED "Microsoft">
<contact fax="555-667788" />
<!ATTLIST sender company CDATA #FIXED "Microsoft">
<contact />
가저 작가가 속성을 포함하도록 강제하지 않고, 기본 값 옵션이 없다면, 키워드 #IMPLIED을 사용하십시오.
#REQUIRED
#FIXED
!ATTLIST 元素名称 属性名称 属性类型 #REQUIRED
<!ATTLIST 요소명 속성명 속성타입 #FIXED "value">
예제
<!ATTLIST sender company CDATA #FIXED "Microsoft">
<!ATTLIST person number CDATA #REQUIRED>
<sender company="Microsoft" />
<person number="5677" />
<person />
기본 값 옵션이 없더라도 저자가 속성을 강제로 제출하려면, #REQUIRED 키워드를 사용하십시오.
#FIXED
문법:
<!ATTLIST 요소명 속성명 속성타입 #FIXED "value">
예제
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
유효한 XML:
<sender company="Microsoft" />
잘못된 XML:
<sender company="W3School" />
속성 값이 고정된 값이며 저자가 이 값을 변경하지 않도록 하려면, #FIXED 키워드를 사용하십시오. 저자가 다른 값을 사용하면 XML 파서가 오류를 반환합니다.
목록 속성 값
문법:
<!ATTLIST 요소명 속성명 속성타입 #FIXED "value">
DTD 예제:
<!ATTLIST payment type (check|cash) "cash">
XML 예제:
<payment type="check" />
또는
<payment type="cash" />