DTD - 속성

DTD에서 속성은 ATTLIST 선언을 통해 선언됩니다.

속성 선언

속성 선언은 다음과 같은 문법을 사용합니다:

<!ATTLIST 요소 이름 속성 이름 속성 유형 기본 값>

DTD 예제:

<!ATTLIST payment type CDATA "check">

XML 예제:

<payment type="check" />

다음은속성 유형의 선택 사항:

타입 설명
CDATA 문자 데이터 (character data)의 값이 있습니다
(en1|en2|..) 이 값은 열거 목록의 하나의 값입니다
ID 유일한 id의 값이 있습니다
IDREF 다른 요소의 id의 값이 있습니다
IDREFS 다른 id의 목록의 값이 있습니다
NMTOKEN 값이 유효한 XML 이름입니다
NMTOKENS 값은 합법적인 XML 이름 목록입니다
ENTITY 값은 엔티티입니다
ENTITIES 값은 엔티티 목록입니다
NOTATION 이 값은 심볼 이름입니다
xml: 값은 предопределенная XML значение

기본 값 파라미터는 다음 값 중 하나를 사용할 수 있습니다:

설명
속성의 기본 값
#REQUIRED 속성 값이 필요합니다
#IMPLIED 속성이 필요하지 않습니다
#FIXED value 속성 값이 고정된 것

기본 속성 값 설정

DTD:

<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">

법적 XML:

<square width="100" />

위의 예제에서 "square"는 CDATA 타입의 "width" 속성을 가진 공백 요소로 정의되었습니다. 너비가 설정되지 않으면 기본 값은 0입니다.

#IMPLIED

문법

<!ATTLIST 元素名称 属性名称 属性类型 #IMPLIED>

예제

DTD:

<!ATTLIST contact fax CDATA #IMPLIED>

법적 XML:

<contact fax="555-667788" />

법적 XML:

<contact />

저자가 속성을 포함하지 않도록 강제하고 기본 값 옵션 없이 키워드 #IMPLIED을 사용하십시오.

#REQUIRED

문법

<!ATTLIST 元素名称 属性名称 属性类型 #REQUIRED>

예제

DTD:

<!ATTLIST person number CDATA #REQUIRED>

법적 XML:

<person number="5677" />

불법적인 XML:

<person />

기본 값 옵션 없이 저자가 속성을 강제로 제출하려면, 키워드 #REQUIRED를 사용하십시오.

#FIXED

문법

<!ATTLIST 元素名称 属性名称 属性类型 #FIXED "value">

예제

DTD:

<!ATTLIST sender company CDATA #FIXED "Microsoft">

법적 XML:

<sender company="Microsoft" />

불법적인 XML:

<sender company="W3School" />

속성이 고정된 값을 가지고 있으며 저자가 이 값을 변경하지 않기를 원한다면, #FIXED 키워드를 사용하십시오. 저자가 다른 값을 사용하면 XML 파서가 오류를 반환합니다.

속성 값 나열

문법:

<!ATTLIST 元素名称 属性名称 (en1|en2|..) 默认值>

DTD 예제:

<!ATTLIST payment type (check|cash) "cash">

XML 예제:

<payment type="check" />

또는

<payment type="cash" />

속성 값이 일련의 고정된 유효 값 중 하나인 경우, 목록 속성 값을 사용하십시오.