특별한딸기이야기

xml dtd 본문

딸기 공부방/XML

xml dtd

특별한녀석 2008. 4. 26. 02:55

DTD
  DTD란?
    Document Type Definition
  태그를 어떻게 사용하는지에 대한 규정

<!DOCUMENT name [
<!ELEMENT name (#PCDATA)>
]>

외부 DTD선언
<!DOCTYPE name SYSTEM "filename">
  name = 루트요소

요소 선언
<!DOCTYPE id[
<!ELEMENT id (no, name)>
<!ELEMENT no(#PCDATA)>
<!ELEMENT name(#PCDATA)>
]>
  사용 예
  <id>
    <no>123456</no>
    <name>특별한딸기</name>
  </id>
  요소 선언 순서
    .
      순서지정
        사용예
          <!ELEMENT name (first, middle)>
          <name>
            <first>특별한</first>
            <middle>딸기</middle>
    |
      하나만선택
        사용예
          <!ELEMENT name (first | middle)>
          <name>
            <first>특별한</first>
          </name>
          또는
          <name>
            <middle>딸기</middle>
          </name>
  ?
      사용하든말든 상관없음
        사용예
          <!ELEMENT name (first)?>
          <name>
            <first>특별한</first>
          </name>
          또는
          <name>
          </name>
  +
      1번이상 반복 사용 상관없음
        사용예
          <!ELEMENT name (first+)>
          <name>
            <first>특별한</first>
          </name>
          또는
          <name>
            <first>특별한</first>
            <first>특별한</first>
          </name>
  *
      사용안해되 상관없으며 1번이상 반복 사용 상관없음
        사용예
          <!ELEMENT name (first*)>
          <name>
          </name>
          또는
          <name>
            <first>특별한</first>
            <first>특별한</first>
          </name>


<![CDATA[태그로 해석되지 않는 텍스트 삽입]]>
  아마도 HTML의 <PRE>태그와 비슷한 기능인듯...

<!ATTLIST 요소명 속성명 속성유형 속성기본값>
  요소는 부가적으로 지정되는 데이터를 의미한다.
  <!DOCTYPE name[
  <!ELEMENT name(first, middle)>
  <!ATTLIST name national CDATA "ROK" #REQUIRED>
  <!-- 속성명은 national이고 속성유형은 CDATA 기본값은 "ROK" 반드시 입력해야 하는 녀석 -->
  <!ATTLIST name number CDATA #IMPLIED>
  <!-- 속성명은 number이고 속성유형은 CDATA 입력 안해도 되는 녀석 -->
  <!ATTLIST name version CDATA #FIXED "1.0">
  <!-- 속성명은 version이고 속성유형은 CDATA 값은 무조건 "1.0" -->
  <!ELEMENT first (#PCDATA)>
  <!ELEMENT middle (#PCDATA)>
  ]>
  <name national="korea">
    <first>특별한</first>
    <middle>딸기</middle>
  </name>
  속성의 유형
    CDATA
      속성이 문자 데이터만 포함되는 녀석  
    ID
      속성의 값이 유일해야 하는 녀석
    IDREF
      문서 내부의 다른 곳에서 선언된 다른 ID 참조
    ENTITY/ENTITIES
      ENTITY는 DTD 내부에서 선언된 이전 외부 개채의 이름에 대응
      ENTITIES는 공백으로 구분된 개채 이름들을 여러개 참조
    NMTOKEN/NMTOKENS
      속성값이 알파벳, 숫자, '.', '-' 등이어야 한다.
      ID와 비슷하다
    열거형
      여러 개를 나열하고 이중에서 하나만 선택
      <!ATTLIST fruit name (apple|melon|banana) "apple">
  예제(ID)
    <!DOCTYPE box[
    <!ELEMENT group (fruit+)>
    <!ELEMENT fruit (#PCDATA)>
    <!ATTLIST fruit name ID #REQUIRED>
    <!ATTLIST fruit color IDREF #IMPLIED>
    ]>
    <box>
      <fruit name="strawberry">딸기</fruit>
      <fruit name="apple">사과</fruit>
      <fruit name="melon" color="strawberry">멜론</fruit>
    </box>

'딸기 공부방 > XML' 카테고리의 다른 글

DTD 발표자료  (0) 2009.04.07
xml 발표자료  (0) 2009.03.31
xml entity  (0) 2008.04.26
XML 문서  (0) 2008.04.25