3. Implementation/Markup Language

초급 DTD 사용 예제

SSKK 2009. 5. 7. 19:43
source.xml
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE Employees SYSTEM "spec.dtd" >

<Employees>

        <Employee name="길동" age="34" sex="Male" >

               <Department dptID="&DPT_DEVELOP;">&DPT_DEVELOP_STR;</Department>

        </Employee>           

        <Employee name="심청이" age="29" sex="Female" >

               <Department dptID="&DPT_SALES;">&DPT_SALES_STR;</Department>

        </Employee>

        <Employee name="장보고" age="42" sex="Male" >

               <Department dptID="&DPT_TRADE;">&DPT_TRADE_STR;</Department>

        </Employee>

</Employees>


spec.dtd

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

 

<!-- 파라미터 -->

<!ENTITY % varSex "Male|Female">

 

<!ENTITY DPT_DEVELOP                  "0" >

<!ENTITY DPT_DEVELOP_STR      "개발" >

 

<!ENTITY DPT_SALES                    "1" >

<!ENTITY DPT_SALES_STR "영업" >

 

<!ENTITY DPT_TRADE                    "2" >

<!ENTITY DPT_TRADE_STR "무역" >

 

<!ELEMENT Employees (Employee*)>

        <!ELEMENT Employee (Department)>

        <!ATTLIST Employee

               name CDATA #REQUIRED

               age CDATA #REQUIRED

               sex (%varSex;) #REQUIRED

               hobby CDATA #IMPLIED

        >

               <!ELEMENT Department (#PCDATA) >

               <!ATTLIST Department

                       dptID CDATA #REQUIRED

               >


< 참고 >
컨텐츠 변경자(modifier) : 엘리먼트 출현 빈도 설정

? : 0 또는 1회
+ : 1 또는 무한대
* : 0 또는 무한대

엘리먼트 선택자 :

, : And, 반드시 순서대로 나와야 한다.
ex) <!ELEMENT instruments (violin, glockenspiel) >
| : Or, 임의의 하나가 나오면 됨
ex) <!ELEMENT performance (piece | improv) >

Html



Keywords : !ENTITY, !ELEMENT, !ATTLIST, #PCDATA, CDATA

참고 : XML 기초 플러스 (성안당)