본문 바로가기
XML

XML 문서 형식 정의 (XML DTD)

by Jundol 2015. 6. 22.


XML DTD

XML 문서에서 올바른 문법은 "Well Formed"라 불린다.
XML 문서에서 검증된 DTD는 "Well Formed" 와 "무결성(Valid") 로 불린다.


무결성 XML 문서

무결성 XMl 문서 또는 잘 된 XML 문서, DTD의 규칙에 맞게끔 만들어진 문서:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

외부에서 쓰이는 DTD 파일인 예제에서는 docytype 이 선언되었다. 파일의 컨텐츠가 단락의 안에 나타났다.

XML DTD

DTD의 목적은 XML문서의 구조를 정의하는 것이다. 옳바른 요소들의 리스트를 구조적으로 정의한다.

<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

DTD는 아래의 것들을 포함한다.

  • !DOCTYPE note 는 문서(note) 의 최상위 루트 요소를 정의한다.
  • !ELEMENT note 는 반드시 네 개의 요소(to, from, heading, body)를 포함한다는것을 정의한다.
  • !ELEMENT to 는 to 요소의 "#PCDATA"를 정의하기 위해 사용됐다.
  • !ELEMENT from 는 from 요소의 "#PCDATA"를 정의하기 위해 사용됐다.
  • !ELEMENT heading 는 heading 요소의 "#PCDATA"를 정의하기 위해 사용됐다.
  • !ELEMENT body 는 body 요소의 "#PCDATA"를 정의하기 위해 사용됐다.
    #PCDATA는 parse-able 텍스트 데이터를 의미한다.

독립적 선언에 DTD 사용하기
doctype 선언은 특별한 문자열 그리고 특별한 문자에 사용될 수 있다:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note [
<!ENTITY nbsp "&#xA0;"> 
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: W3Schools.">
]>

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<footer>&writer;&nbsp;&copyright;</footer>
</note>

세 개의 독립적인 부분이 있다 : 앰퍼센드 (&), 독립적 이름, 그리고 세미콜론 (;)

왜 DTD를 사용하는가?
DTD를 사용할 경우, 독립된 그룹의 사람들이 데이터교환의 표준으로 사용하는걸 동의할 수 있다.
DTD를 사용할 경우, 당신은 바깥세상(outside world , 외부) 에서 데이터를 받는것이 가능해진다.
DTD를 더 공부하고 싶다면? 클릭!



'XML' 카테고리의 다른 글

XML 스키마 (XML Schema)  (6) 2015.06.22
XML 소개 (XML Introduction)  (6) 2015.06.22

댓글