1 / 83

DTD 를 이용한 마크업 언어 개발

DTD 를 이용한 마크업 언어 개발. 2008.9.9 최진명. 목차. DTD 개요 DTD 를 사용한 XML 문서 작성 ELEMENT ATTLIST ENTITY NOTATION. DTD 의 물리적 구조. DTD(Document Type Definition) XML 문서의 구성요소 ( 태그 및 속성 ) 들을 정의 구성요소들 사이의 관계 , 데이터 타입 , 출현빈도 등의 규칙을 정의. DTD 의 필요성. DTD(Document Type Definition) 란 ?

orson-case
Télécharger la présentation

DTD 를 이용한 마크업 언어 개발

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DTD를 이용한 마크업 언어 개발 2008.9.9 최진명

  2. 목차 • DTD 개요 • DTD를 사용한 XML문서 작성 • ELEMENT • ATTLIST • ENTITY • NOTATION

  3. DTD의 물리적 구조 • DTD(Document Type Definition) • XML문서의 구성요소(태그 및 속성)들을 정의 • 구성요소들 사이의 관계, 데이터 타입, 출현빈도 등의 규칙을 정의

  4. DTD의 필요성 • DTD(Document Type Definition)란 ? • XML 문서의 구조를 명시적으로 정의한 것 • Valid XML(유효한 XML)이란 ? • Well formed XML & DTD의 구조화 규칙을 준수하는 XML • DTD의 구성 및 작성 절차 • Element type declaration • Attribute list declaration • Entity declaration • Notation declaration DTD 개요 필요성 DTD  DTD 역할 Valid XML  Example DTD+XML ELEMENT ATTLIST ENTITY NOTATION

  5. DTD (Document Type Definition) • DTD • XML 문서의 타입(Document Type)을 기술하는 표준화된 방법 • App.들에 의해 공유되는 XML 어휘집(XML vocabulary)에 해당하는 데이터에 대한 설명서 • Document Type • 동일한 XML 어휘집을 공유하는 XML 문서들의 모임 • cf) 프로그래밍 언어에서의 Class • Document Instance • Document Type을 만족하는 개별 XML 문서 • cf) 프로그래밍 언어에서의 Object DTD 개요 필요성 DTD  DTD 역할 Valid XML  Example DTD+XML ELEMENT ATTLIST ENTITY NOTATION

  6. DTD 의 역할 • 정확하고 공식적인 방법을 통해 문서의 구조를 기술 • 필수적인 요소의 존재 여부 검사 • 허용되지 않는 요소의 포함 여부 검사 • 요소 content, 트리 구조 및 속성 값의 규제 • 속성들의 기본 값 제공 DTD 개요 필요성 DTD  DTD 역할 Valid XML  Example DTD+XML ELEMENT ATTLIST ENTITY NOTATION

  7. Valid XML • Valid XML • Well-formed XML 문서이면서 DTD에 정의된 문법과 구조화 규칙을 따르는 문서 • XML Validating Parser (유효성 검증 파서) • XML Validating Parser들의 예 • MSXML : • Xerces-C++ : The Apache XML Project • Xerces-J : The Apache XML Project DTD 개요 필요성 DTD  DTD 역할 Valid XML  Example DTD+XML ELEMENT ATTLIST ENTITY NOTATION

  8. <?xml version="1.0" encoding=“euc-kr”?> <!DOCTYPE 이달의베스트셀러 [ <!ELEMENT 이달의베스트셀러 (베스트셀러)> <!ELEMENT 베스트셀러 (분야, 종류, 제목, 저자, 출판사)> <!ELEMENT 분야 (#PCDATA)> <!ELEMENT 종류 (#PCDATA)> <!ELEMENT 제목 (#PCDATA)> <!ELEMENT 저자 (#PCDATA)> <!ELEMENT 출판사 (#PCDATA)> ]> <이달의베스트셀러> <베스트셀러> <분야>경제, 경영</분야> <종류>금융, 증권</종류> <제목>부자 아빠, 가난한 아빠</제목> <저자>로버트 기요사키</저자> <출판사>황금가지</출판사> </베스트셀러> </이달의베스트셀러> DTD 개요 필요성 DTD  DTD 역할 Valid XML  Example(xml) DTD+XML ELEMENT ATTLIST ENTITY NOTATION bestseller.xml

  9. DTD와 XML의 결합 • 하나의 XML 문서는 단 하나의 DTD와 결합 가능 • 내부 Subset과 외부 Subset으로 구성 • 하나의 내부 Subset, 하나의 외부 Subset, 내부와 외부 Subset을 모두 사용 • 내부 Subset 우선 • 내부 Subset : 개발 시 또는 기존의 표준 DTD를 사용하면서 자신의 목적에 맞게 약간의 수정이 필요할 경우 사용 DTD 개요 DTD+XML 결합 DOCTYPE 내부 DTD 외부 DTD ELEMENT ATTLIST ENTITY NOTATION

  10. DOCTYPE 선언 • DOCTYPE 선언 • XML 문서와 DTD를 연결하기 위한 선언 • XML 선언 뒤, Element나 문자 데이터 content 앞에 위치 • <!DOCTYPE ...> • 일반적인 XML 태그 한정자 (“<”, “>”) • 특별한 XML 선언임을 알려 주는 느낌표 (“!”) • DOCTYPE 예약어 <!DOCTYPE 이달의베스트셀러 [ DTD 개요 DTD+XML 결합 DOCTYPE 내부 DTD 외부 DTD ELEMENT ATTLIST ENTITY NOTATION

  11. 내부 DTD 선언 • XML 문서내에 DTD 선언을 삽입 • <!DOCTYPE 루트엘리먼트 [내부 DTD 선언]> DTD 개요 DTD+XML 결합 DOCTYPE 내부 DTD 외부 DTD ELEMENT ATTLIST ENTITY NOTATION

  12. 외부 DTD • 일반적으로 사용하는 DTD의 형태 • <!DOCTYPE 루트엘리먼트 SYSTEM 또는 PUBLIC 외부문서의경로> • SYSTEM • 일반적으로 사용, 개인 또는 회사내부 • PUBLIC • WML등 공인된 DTD DTD 개요 DTD+XML 결합 DOCTYPE 내부 DTD 외부 DTD ELEMENT ATTLIST ENTITY NOTATION

  13. bestseller.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 이달의베스트셀러 (베스트셀러)> <!ELEMENT 베스트셀러 (분야, 종류, 제목, 저자, 출판사)> <!ELEMENT 분야 (#PCDATA)> <!ELEMENT 종류 (#PCDATA)> <!ELEMENT 제목 (#PCDATA)> <!ELEMENT 저자 (#PCDATA)> <!ELEMENT 출판사 (#PCDATA)> DTD 개요 DTD+XML 결합 DOCTYPE 내부 DTD 외부 DTD ELEMENT ATTLIST ENTITY NOTATION

  14. bestseller.xml <?xml version="1.0" encoding=“euc-kr"?> <!DOCTYPE 이달의베스트셀러 SYSTEM "bestseller.dtd"> <이달의베스트셀러> <베스트셀러> <분야>경제, 경영</분야> <종류>금융, 증권</종류> <제목>부자 아빠, 가난한 아빠</제목> <저자>로버트 기요사키</저자> <출판사>황금가지</출판사> </베스트셀러> </이달의베스트셀러> DTD 개요 DTD+XML 결합 DOCTYPE 내부 DTD 외부 DTD ELEMENT ATTLIST ENTITY NOTATION

  15. Element Type Declarations • <!ELEMENT 엘리먼트이름 데이터타입 또는 자식엘리먼트이름 자식엘리먼트개수부호> • Element의 이름 • Element에 포함되는 데이터 타입 • EMPTY • PCDATA • ANY • Element이름 • 자식엘리먼트의 이름 • 자식엘리먼트의 개수를 선언 DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  16. Element Type선언 • EMPTY • 내용으로 아무 것도 갖지 않는 엘리먼트 • PCDATA • 내용으로 문자데이터만 갖는 엘리먼트 • ANY • 내용에 모든 것을 갖는 엘리먼트 • Element이름 DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  17. EMPTY • <!ELEMENT 엘리먼트의이름 EMPTY> • 빈 요소 <!ELEMENT BR EMPTY> : <BR/> <!ELEMENT EOF EMPTY> : <EOF/> <!ELEMENT BrowserConfig EMPTY> : <BrowserConfig showtags=“yes” showcomments=“no”/> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  18. bestseller.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 이달의베스트셀러 (베스트셀러)> <!ELEMENT 베스트셀러 (분야, 종류, 제목, 저자, 출판사, 출판일)> <!ELEMENT 분야 (#PCDATA)> <!ELEMENT 종류 (#PCDATA)> <!ELEMENT 제목 (#PCDATA)> <!ELEMENT 저자 (#PCDATA)> <!ELEMENT 출판사 (#PCDATA)> <!ELEMENT 출판일 EMPTY> <!ATTLIST 출판일 년 CDATA #REQUIRED 월 CDATA #REQUIRED 일 CDATA #REQUIRED> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · Example(dtd) · Example(xml) · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  19. bestseller.xml <?xml version="1.0" encoding="EUC-KR"?> <!DOCTYPE 이달의베스트셀러 SYSTEM "bestseller.dtd"> <이달의베스트셀러> <베스트셀러> <분야>경제, 경영</분야> <종류>금융, 증권</종류> <제목>부자 아빠, 가난한 아빠</제목> <저자>로버트 기요사키</저자> <출판사>황금가지</출판사> <출판일 년="2002" 월="3" 일="10“/> </베스트셀러> </이달의베스트셀러> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · Example(dtd) · Example(xml) · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  20. PCDATA • <!ELEMENT 엘리먼트이름 (#PCDATA)> • 엘리먼트에 문자열이 포함된 타입 • 엘리먼트의 이름과 괄호”(“사이에 반드시 공백이 있어야 됨 <!ELEMENT 이름 (#PCDATA)> : <이름>홍길동</이름> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  21. ANY • <!ELEMENT 엘리먼트이름 ANY> • 문자열, 자식엘리먼트 등 Well-Formed 문서의 규칙을 만족하는 어떤 데이터라도 모두다 포함가능 • <!ELEMENT 설명 ANY> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  22. bestseller.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 이달의베스트셀러 (베스트셀러)> <!ELEMENT 베스트셀러 (분야, 종류, 제목, 저자, 출판사, 출판일, 설명)> <!ELEMENT 분야 (#PCDATA)> <!ELEMENT 종류 (#PCDATA)> <!ELEMENT 제목 (#PCDATA)> <!ELEMENT 저자 (#PCDATA)> <!ELEMENT 출판사 (#PCDATA)> <!ELEMENT 출판일 EMPTY> <!ATTLIST 출판일 년 CDATA #REQUIRED 월 CDATA #REQUIRED 일 CDATA #REQUIRED> <!ELEMENT 설명 ANY> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  23. bestseller.xml <?xml version="1.0" encoding="EUC-KR"?> <!DOCTYPE 이달의베스트셀러 SYSTEM "bestseller.dtd"> <이달의베스트셀러> <베스트셀러> <분야>경제, 경영</분야> <종류>금융, 증권</종류> <제목>부자 아빠, 가난한 아빠</제목> <저자>로버트 기요사키</저자> <출판사>황금가지</출판사> <출판일 년="2002"월="3"일="10"/> <설명> <저자>홍길동</저자><저자>이순신</저자><출판사>은뿌리</출판사> </설명> </베스트셀러> </이달의베스트셀러> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 Cardinality ATTLIST ENTITY NOTATION

  24. Element • 엘리먼트가 자식엘리먼트를 포함하고 있는 타입 <!ELEMENT name (first_name, last_name)> <!ELEMENT first_name (#PCDATA)> <!ELEMENT last_name (#PCDATA)> * 자식엘리먼트들은 반드시 열거된 순서대로 작성되어야 함 DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 - 순차리스트 - 선택리스트 Cardinality ATTLIST ENTITY NOTATION

  25. ELEMENT : 순차 리스트 • 순차 리스트 • 자식 요소들의 순서를 지정 • “,” • Mixed content에서는 지정되지 않음 DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 - 순차리스트 - 선택리스트 Cardinality ATTLIST ENTITY NOTATION

  26. ELEMENT : 선택 리스트 • 선택 리스트 • 여러 자식 요소들 중에 오직 하나만 허용. “|” DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 - 순차리스트 - 선택리스트 Cardinality ATTLIST ENTITY NOTATION

  27. <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 이달의베스트셀러 (베스트셀러)> <!ELEMENT 베스트셀러 (분야, 종류, 제목, 저자, 출판사, 출판일, 설명)> <!ELEMENT 분야 (경제|컴퓨터|소설|비소설)> <!ELEMENT 경제 EMPTY> <!ELEMENT 컴퓨터 EMPTY> <!ELEMENT 소설 EMPTY> <!ELEMENT 비소설 EMPTY> <!ELEMENT 종류 (#PCDATA)> <!ELEMENT 제목 (#PCDATA)> <!ELEMENT 저자 (#PCDATA)> <!ELEMENT 출판사 (#PCDATA)> <!ELEMENT 출판일 EMPTY> <!ATTLIST 출판일 년 CDATA #REQUIRED 월 CDATA #REQUIRED 일 CDATA #REQUIRED> <!ELEMENT 설명 ANY> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 - 순차리스트 - 선택리스트 Cardinality ATTLIST ENTITY NOTATION bestseller.dtd

  28. bestseller.xml <?xml version="1.0" encoding="EUC-KR"?> <!DOCTYPE 이달의베스트셀러 SYSTEM "bestseller.dtd"> <이달의베스트셀러> <베스트셀러> <분야><경제/></분야> <종류>금융, 증권</종류> <제목>부자 아빠, 가난한 아빠</제목> <저자>로버트 기요사키</저자> <출판사>황금가지</출판사> <출판일 년="2002"월="3"일="10"/> <설명> <저자>홍길동</저자><저자>이순신</저자><출판사>은뿌리</출판사> </설명> </베스트셀러> </이달의베스트셀러> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 · EMPTY · PCDATA · ANY · Element 이름 - 순차리스트 - 선택리스트 Cardinality ATTLIST ENTITY NOTATION

  29. Cardinality 연산자 • 자식 요소의 개수를 지정 • [none] • cardinality 연산자를 지정하지 않을 경우 오직 한 개의 자식 요소만을 허용 , 필수적 요소 • ? • 자식 요소가 없거나 한 개, 선택적인 단일 요소 • * • 자식 요소가 없거나 다수, 선택적 요소 • + • 자식 요소가 하나이거나 다수, 필수적 요소 DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 Cardinality · Example(dtd) · Example(xml) ATTLIST ENTITY NOTATION

  30. <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 이달의베스트셀러 (베스트셀러)+> <!ELEMENT 베스트셀러 (분야, 종류?, 제목, 저자+, 출판사*, 출판일, 설명)> <!ELEMENT 분야 (경제|컴퓨터|소설|비소설)*> <!ELEMENT 경제 EMPTY> <!ELEMENT 컴퓨터 EMPTY> <!ELEMENT 소설 EMPTY> <!ELEMENT 비소설 EMPTY> <!ELEMENT 종류 (#PCDATA)> <!ELEMENT 제목 (#PCDATA)> <!ELEMENT 저자 (#PCDATA)> <!ELEMENT 출판사 (#PCDATA)> <!ELEMENT 출판일 EMPTY> <!ATTLIST 출판일 년 CDATA #REQUIRED 월 CDATA #REQUIRED 일 CDATA #REQUIRED> <!ELEMENT 설명 ANY> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 Cardinality · Example(dtd) · Example(xml) ATTLIST ENTITY NOTATION bestseller.dtd

  31. <?xml version="1.0" encoding="EUC-KR"?> <!DOCTYPE 이달의베스트셀러 SYSTEM "bestseller.dtd"> <이달의베스트셀러> <베스트셀러><!--베스트 셀러는 1이상 --> <분야><경제/><비소설/></분야> <!--선택 개수는 마음대로, 종류 엘리먼트 생략가능 --> <종류>금융, 증권</종류> <제목>부자 아빠, 가난한 아빠</제목> <저자>로버트 기요사키</저자><저자>Rovert Kiyosaki</저자> <!--저자는 1이상--> <출판사>황금가지</출판사><출판사>황금나무</출판사><!--출판사 수는 0이상--> <출판일 년="2002"월="3"일="10"/> <설명> <저자>홍길동</저자><저자>이순신</저자><출판사>은뿌리</출판사> </설명> </베스트셀러> </이달의베스트셀러> DTD 개요 DTD+XML ELEMENT 선언 정의 Type 선언 Cardinality · Example(dtd) · Example(xml) ATTLIST ENTITY NOTATION bestseller.xml

  32. 속성 선언 • <!ATTLIST 엘리먼트명 속성명 속성타입 존재여부 기본값> • 속성이 포함되는 엘리먼트의 이름과 속성명 속성타입 속성생략 시 제공되는 기본값 등을 선언 <!ELEMENT 출판일 EMPTY> <!ATTLIST 출판일 년 CDATA #REQUIRED 월 CDATA #REQUIRED 일 CDATA #REQUIRED> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type 속성 기본정보 ENTITY NOTATION

  33. 속성의 타입 (attrType) • CDATA • 문자열 • 열거 값 (선택 리스트) • 그 중에 하나 • ID • 그 속성의 값이 유일하다. • IDREF, IDREFS • ID참조 • NMTOKEN, NMTOKENS • 공백이 없는 문자열 • ENTITY, ENTITIES • 외부 파일 참조 • NOTATION • 외부파일 참조 시 어떤 프로그램을 이용하여 참조할 것인지 DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  34. CDATA • 속성값으로 문자열이 대입 DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  35. member.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 회원목록 (회원)*> <!ELEMENT 회원 (이름, 전화번호, 주소)> <!ATTLIST 회원 등급 CDATA "준회원"> <!--값이 없으면 기본값으로 준회원을 갖게 한다.--> <!ELEMENT 이름 (#PCDATA)> <!ELEMENT 전화번호 (#PCDATA)> <!ELEMENT 주소 (#PCDATA)> <!-- member.dtd에 저장하고, dtd문서에 적합한 문서인 member.xml을 작성하세요 --> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  36. <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE 회원목록 SYSTEM "member.dtd"> <회원목록> <회원 등급="정회원"> <이름>홍길동</이름> <전화번호>011-234-5678</전화번호> <주소>서울시</주소> </회원> <회원><!--브라우저로 보면 기본값으로 준회원이 들어가 있다.--> <이름>강감찬</이름> <전화번호>062-230-6624</전화번호> <주소>부산시</주소> </회원> <회원 등급="운영자"> <이름>이순신</이름> <전화번호>062-230-7963</전화번호> <주소>광주시</주소> </회원> </회원목록> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION member.xml

  37. 열거 값(Enumerated Value) • 열거된 문자열중 하나가 속성값으로 대입 DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  38. member.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 회원목록 (회원)*> <!ELEMENT 회원 (이름, 전화번호, 주소)> <!ATTLIST 회원 등급 CDATA "준회원"> <!ELEMENT 이름 (#PCDATA)> <!ELEMENT 전화번호 (#PCDATA)> <!ELEMENT 주소 (#PCDATA)> <!ATTLIST 주소 지역 (전라도|경상도|강원도|광주|서울) "광주"> <!-- member.dtd에 저장하고, dtd문서에 적합한 문서인 member.xml을 작성하세요 --> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  39. <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE 회원목록 SYSTEM "member.dtd"> <회원목록> <회원 등급="정회원"> <이름>홍길동</이름> <전화번호>011-234-5678</전화번호> <주소 지역="서울">서울시</주소> </회원> <회원> <이름>강감찬</이름> <전화번호>062-230-6624</전화번호> <주소 지역="경상도">부산시</주소> </회원> <회원 등급="운영자"> <이름>이순신</이름> <전화번호>062-230-7963</전화번호> <주소>광주시</주소> </회원> </회원목록> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION member.xml

  40. ID • ID : 모든 요소들 중 유일한 값을 가져야 함 • XML 이름 규칙 준수 • 문자로 시작한다. DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  41. member.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 회원목록 (회원)*> <!ELEMENT 회원 (이름, 전화번호, 주소)> <!ATTLIST 회원 등급 CDATA "준회원"> <!ELEMENT 이름 (#PCDATA)> <!ATTLIST 이름 회원번호 ID #REQUIRED > <!ELEMENT 전화번호 (#PCDATA)> <!ELEMENT 주소 (#PCDATA)> <!ATTLIST 주소 지역 (전라도|경상도|강원도|광주|서울) "광주"> <!-- member.dtd에 저장하고, dtd문서에 적합한 문서인 member.xml을 작성하세요 --> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  42. <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE 회원목록 SYSTEM "member.dtd"> <회원목록> <회원 등급="정회원"> <이름 회원번호="정0001">홍길동</이름> <전화번호>011-234-5678</전화번호> <주소 지역="서울">서울시</주소> </회원> <회원> <이름 회원번호="준0001">강감찬</이름> <전화번호>062-230-6624</전화번호> <주소 지역="경상도">부산시</주소> </회원> <회원 등급="운영자"> <이름 회원번호="운0001">이순신</이름> <전화번호>062-230-7963</전화번호> <주소>광주시</주소> </회원> </회원목록> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION member.xml

  43. IDREF / IDREFS • IDREF : 다른 요소의 ID 값을 참조 • IDREFS : 여러 개의 ID 값을 참조 • 참조된 값은 반드시 문서 내의 ID 속성 값과 일치해야 한다. DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  44. member.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 회원목록 (회원*, 최우수회원, 신입회원)> <!ELEMENT 회원 (이름, 전화번호, 주소)> <!ATTLIST 회원 등급 CDATA "준회원"> <!ELEMENT 이름 (#PCDATA)> <!ATTLIST 이름 회원번호 ID #REQUIRED > <!ELEMENT 전화번호 (#PCDATA)> <!ELEMENT 주소 (#PCDATA)> <!ATTLIST 주소 지역 (전라도|경상도|강원도|광주|서울) "광주"> <!ELEMENT 최우수회원 EMPTY> <!ATTLIST 최우수회원 회원번호 IDREF #REQUIRED> <!ELEMENT 신입회원 EMPTY> <!ATTLIST 신입회원 회원번호 IDREFS #REQUIRED> <!-- member.dtd에 저장하고, dtd문서에 적합한 문서인 member.xml을 작성하세요 --> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  45. <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE 회원목록 SYSTEM "member.dtd"> <회원목록> <회원 등급="정회원"> <이름 회원번호="정0001">홍길동</이름> <전화번호>011-234-5678</전화번호> <주소 지역="서울">서울시</주소> </회원> <회원> <이름 회원번호="준0001">강감찬</이름> <전화번호>062-230-6624</전화번호> <주소 지역="경상도">부산시</주소> </회원> <회원 등급="운영자"> <이름 회원번호="운0001">이순신</이름> <전화번호>062-230-7963</전화번호> <주소>광주시</주소> </회원> <최우수회원 회원번호="운0001"/> <신입회원 회원번호="정0001 준0001"/> </회원목록> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION member.xml

  46. NMTOKEN / NMTOKENS • NMTOKEN • 공백이 없는 일련의 문자열 • NMTOKENS • 두개 이상의 NMTOKEN 으로 이루어짐 • CDATA와 유사하지만 공백이 없다. DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  47. member.dtd <?xml version="1.0" encoding="euc-kr"?> <!ELEMENT 회원목록 (회원*, 최우수회원, 신입회원)> <!ELEMENT 회원 (이름, 전화번호, 주소)> <!ATTLIST 회원 등급 CDATA "준회원"> <!ELEMENT 이름 (#PCDATA)> <!ATTLIST 이름 회원번호 ID #REQUIRED 주민번호 NMTOKENS #REQUIRED> <!ELEMENT 전화번호 (#PCDATA)> <!ELEMENT 주소 (#PCDATA)> <!ATTLIST 주소 지역 (전라도|경상도|강원도|광주|서울) "광주"> <!ELEMENT 최우수회원 EMPTY> <!ATTLIST 최우수회원 회원번호 IDREF #REQUIRED> <!ELEMENT 신입회원 EMPTY> <!ATTLIST 신입회원 회원번호 IDREFS #REQUIRED> <!-- member.dtd에 저장하고, dtd문서에 적합한 문서인 member.xml을 작성하세요 --> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  48. member.xml <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE 회원목록 SYSTEM "member.dtd"> <회원목록> <회원 등급="정회원"> <이름 회원번호="정0001"주민번호="770102">홍길동</이름> <전화번호>011-234-5678</전화번호> <주소 지역="서울">서울시</주소> </회원> <회원> <이름 회원번호="준0001"주민번호="660205">강감찬</이름> <전화번호>062-230-6624</전화번호> <주소 지역="경상도">부산시</주소> </회원> <회원 등급="운영자"> <이름 회원번호="운0001"주민번호="800310">이순신</이름> <전화번호>062-230-7963</전화번호> <주소>광주시</주소> </회원> <최우수회원 회원번호="운0001"/> <신입회원 회원번호="정0001 준0001"/> </회원목록> DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type · CDATA · 열거 값 · ID · IDREF/IDREFS · NMTOKEN NMTOKENS 속성 기본정보 ENTITY NOTATION

  49. 속성의 기본 정보 (attrDefault) • #REQUIRED • #IMPLIED • #FIXED (plus default value) • Default value(s) DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type 속성 기본정보 · #REQUIRED · #IMPLIED · #FIXED · Default ENTITY NOTATION

  50. #REQUIRED • 엘리먼트에 반드시 포함되어야 하는 필수속성 DTD 개요 DTD+XML ELEMENT ATTLIST 속성 선언  속성Type 속성 기본정보 · #REQUIRED · #IMPLIED · #FIXED · Default ENTITY NOTATION

More Related