DTD - 요소
DTD에서 요소는 ELEMENT 선언으로 선언됩니다.
요소 선언
DTD에서 XML 요소는 다음 구문으로 선언됩니다.
<!ELEMENT element-name category>
or
<!ELEMENT element-name (element-content)>
빈 요소
빈 요소는 카테고리 키워드 EMPTY로 선언됩니다.
<!ELEMENT element-name EMPTY>
Example:
<!ELEMENT br EMPTY>
XML example:
<br />
구문 분석된 문자 데이터가 있는 요소
구문 분석된 문자 데이터만 있는 요소는 괄호 안에 #PCDATA로 선언됩니다.
<!ELEMENT element-name (#PCDATA)>
Example:
<!ELEMENT from (#PCDATA)>
모든 콘텐츠가 포함된 요소
카테고리 키워드 ANY로 선언된 요소는 구문 분석 가능한 데이터의 모든 조합을 포함할 수 있습니다.
<!ELEMENT element-name ANY>
Example:
<!ELEMENT note ANY>
자식이 있는 요소(시퀀스)
하나 이상의 자식이 있는 요소는 괄호 안에 자식 요소의 이름으로 선언됩니다.
<!ELEMENT element-name (child1)>
or
<!ELEMENT element-name (child1,child2,...)>
Example:
<!ELEMENT note (to,from,heading,body)>
자식이 쉼표로 구분된 순서로 선언된 경우 자식은 문서에서 동일한 순서로 나타나야 합니다. 전체 선언에서는 자식도 선언해야 하며 자식도 자식을 가질 수 있습니다. "note" 요소의 전체 선언은 다음과 같습니다.
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
요소의 한 번만 발생 선언
<!ELEMENT element-name (child-name)>
Example:
<!ELEMENT note (message)>
위의 예에서는 자식 요소 "message"가 한 번만 발생해야 하며 "note" 요소 내에서 한 번만 발생해야 한다고 선언합니다.
요소의 최소 한 번 발생 선언
<!ELEMENT element-name (child-name+)>
Example:
<!ELEMENT note (message+)>
위의 예에서 + 기호는 자식 요소 "message"가 "note" 요소 내에서 한 번 이상 발생해야 함을 선언합니다.
0개 이상의 요소 발생 선언
<!ELEMENT element-name (child-name*)>
Example:
<!ELEMENT note (message*)>
위의 예에서 * 기호는 자식 요소 "message"가 "note" 요소 내에서 0번 이상 나타날 수 있음을 선언합니다.
요소의 0개 또는 1개 발생 선언
<!ELEMENT element-name (child-name?)>
Example:
<!ELEMENT note (message?)>
? 위의 예에서 기호는 자식 요소 "message"가 "note" 요소 내에서 0번 또는 1번 발생할 수 있음을 선언합니다.
중 하나/또는 콘텐츠 선언
<!ELEMENT note (to,from,header,(message|body))>
위의 예는 "note" 요소가 "to" 요소, "from" 요소, "header" 요소 및 "message" 또는 "body" 요소를 포함해야 한다고 선언합니다.
혼합 콘텐츠 선언
<!ELEMENT note (#PCDATA|to|from|header|message)*>
위의 예는 "note" 요소가 구문 분석된 문자 데이터, "to", "from", "header" 또는 "message" 요소의 발생을 0개 이상 포함할 수 있다고 선언합니다.