본문 바로가기

XML

DTD에서 속성(ATTLIST) 정의하기, xml dtd #FIXED 적용

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE jikwons[

<!ELEMENT jikwons (jikwon*)>

<!ELEMENT jikwon (irum+, (jik|gender), pay?)>

<!ELEMENT irum (#PCDATA)>

<!ELEMENT jik (#PCDATA)>

<!ELEMENT gender (#PCDATA)>

<!ELEMENT pay (#PCDATA)>

<!ATTLIST jik buser CDATA #FIXED "인사과">

<!ATTLIST gender nai CDATA #IMPLIED>

<!ATTLIST pay bonus CDATA #REQUIRED>

]>

<!-- ATTLIST : 속성을 정의 -->

<!-- jik태그에 buser라는 속성을 인사과로 고정(직접명시 안해도 파싱할때 적용됨) -->

<!-- gender태그에 nai라는 속성을 명시해도되고 안해도 된다. -->

<!-- pay태그에 bonus라는 속성을 무조건 명시해줘야함 -->

<jikwons>

<jikwon>

<irum>홍길동</irum>

<jik buser='인사과'>대리</jik>

<pay bonus="100">5000</pay>

</jikwon>

<jikwon>

<irum>고길동</irum>

<jik>과장</jik>

<pay bonus="100">5100</pay>

</jikwon>

<jikwon>

<irum>오길동</irum>

<gender>남자</gender>

<pay bonus="200">5200</pay>

</jikwon>

<jikwon>

<irum>가길동</irum>

<gender nai="33">남자</gender>

<pay bonus="300">5200</pay>

</jikwon>

</jikwons>



** 주의할점 ** 

외부 DTD로 ATTLIST에 #FIXED로 정의할 경우


엘리먼트에 해당 속성을 주지 않으면 적용안된다.


내부 DTD는 자동으로 해당 엘리먼트에 속성을 정의해 주지만


외부에서는 엘리먼트에 속성을 정의해 주지 않으면 값이 없는 상태로 파싱된다.

'XML' 카테고리의 다른 글

xsl 문법 예제  (0) 2014.04.04
xml과 xsl을 이해하는 예제  (0) 2014.04.04
xml xmlns : xml namespace  (0) 2014.04.04
XML 내부 DTD , 카디널리티 연산자  (0) 2014.04.04
XML에서 데이터에 '<' '>' 사용하기  (0) 2014.04.04