XML 입문 | DTD를 사용하여 XML 구조의 정의 | DTD에서 여러 요소 중에 하나를 선택하여 작성
DTD에서 요소의 정의 방법은 지금까지는 (1) 요소를 1개 포함, (2) 요소를 여러개 포함, (3) 문자 데이터 이렇게 3개의 패턴이 있었다.
<!ELEMENT 요소명 (요소명1)>
<!ELEMENT 요소명 (요소명1, 요소명2, ...)>
<!ELEMENT 요소명 (#PCDATA)>
여기에서는 여러 요소 중에서 어느 하나의 요소가 선택하여 포함되는 경우의 정의 방법을 살펴 보겠다. 정의식은 다음과 같다.
<!ELEMENT 요소명 (요소명1 | 요소명2 | ...)>
위와 같이 요소를 “|“로 구분하여 작성한다.
예를 들어 “연락처"요소에는 “집"요소 또는 “회사"요소 또는 “휴대"요소 중 하나만 나오면 되는 경우라면 다음과 같이 작성한다.
<!ELEMENT 연락처 (집 | 회사 | 핸드폰)>
그럼 XML 문서 샘플를 작성해보자.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE 고객정보[
<!ELEMENT 고객정보 (고객+)>
<!ELEMENT 고객 (이름, 성별, 취미*, 연락처)>
<!ELEMENT 이름 (#PCDATA)>
<!ELEMENT 성별 (#PCDATA)>
<!ELEMENT 취미 (#PCDATA)>
<!ELEMENT 연락처 (집 | 회사 | 핸드폰)>
<!ELEMENT 집 (#PCDATA)>
<!ELEMENT 회사 (#PCDATA)>
<!ELEMENT 핸드폰 (#PCDATA)>
]>
<고객정보>
<고객>
<이름>김혜진</이름>
<성별>여</성별>
<연락처>
<집>02-xxx-xxxx</집>
</연락처>
</고객>
<고객>
<이름>박정혁</이름>
<성별>남</성별>
<취미>피아노</취미>
<취미>수영</취미>
<연락처>
<핸드폰>010-xxxx-xxxx</핸드폰>
</연락처>
</고객>
</고객정보>
위에서는 “연락처"라는 요소를 만들고 그 중에 하나를 선택할 수 있는 요소를 작성하고 있지만 만, 아래와 같이 작성할 수도 있다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE 고객정보[
<!ELEMENT 고객정보 (고객+)>
<!ELEMENT 고객 (이름, 성별, 취미*, (집 | 회사 | 핸드폰))>
<!ELEMENT 이름 (#PCDATA)>
<!ELEMENT 성별 (#PCDATA)>
<!ELEMENT 취미 (#PCDATA)>
<!ELEMENT 집 (#PCDATA)>
<!ELEMENT 회사 (#PCDATA)>
<!ELEMENT 핸드폰 (#PCDATA)>
]>
<고객정보>
<고객>
<이름>김혜진</이름>
<성별>女</성별>
<집>02-xxx-xxxx</집>
</고객>
<고객>
<이름>박정혁</이름>
<성별>남</성별>
<취미>피아노</취미>
<취미>수영</취미>
<핸드폰>010-xxxx-xxxx</핸드폰>
</고객>
</고객정보>
위 예제에는 “고객” 요소에 포함된 네번째 요소가 “집”, “직장”, “휴대폰” 중에 하나가 작성한다는 규칙으로 되어 있다.
최종 수정 : 2019-10-07