Presentation is loading. Please wait.

Presentation is loading. Please wait.

XML-II (eXtensible Markup Language) DTD/DOM

Similar presentations


Presentation on theme: "XML-II (eXtensible Markup Language) DTD/DOM"— Presentation transcript:

1 XML-II (eXtensible Markup Language) DTD/DOM
Jung, Jin A An append contents to PPT by bluejfet 2002/05/04 Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea

2 1. Main Objectives of the presentation. 2. Overview or Introduction
0. Contents 1. Main Objectives of the presentation. 2. Overview or Introduction 3. DTD 4. XML Processor & DOM 5. Summary 단기 4352년 4월 24일 Jung, Jin A

3 DOM (Document Object Model)의 개념
1. Main Objectives DTD의 활용 XML PROCESSOR의 사용 DOM (Document Object Model)의 개념 단기 4352년 4월 24일 Jung, Jin A

4 2. Overview or Introduction
DTD (Document Type Definition) Define the rules of the document, such as which elements are present and the structural relationship between elements DOM (Document Object Model) A platform- and language-neutral interface that permits script to access and update the content, structure , and style of a document. Ref. MSDN 단기 4352년 4월 24일 Jung, Jin A

5 3.DTD (Document Type Definition)
What is DTD? DTD의 사용 – 외부 참조 DTD의 사용 – 내부 참조 DTD Grammar 및 작성 예제 단기 4352년 4월 24일 Jung, Jin A

6 Object Oriented Programming
3.1 What id DTD? Class Object1 Object2 Object3 Object Oriented Programming 실체화 DTD XML Document Type XML Document XML Document2 XML Document3 실체화 유사 단기 4352년 4월 24일 Jung, Jin A

7 3.2 DTD 사용 – 외부 참조(1/2) <?xml version = “1.0” encoding=“euc-kr”?> <! - - an example of XML document. mail1.xml - -> <MAIL> <HEADER> </HEADER> <BODY> 길동 도련님! 안녕하십니까?…. </BODY> </MAIL> <!DOCTYPE MAIL SYSTEM “mail.dtd”> This DTD file is separate from the XML document it describe. Merit – easily referenced from multiple XML documents. 단기 4352년 4월 24일 Jung, Jin A

8 3.2 DTD 사용 – 외부 참조 (2/2) (mail.dtd)
<!ELEMENT MAIL (HEADER , BODY)> <!ELEMENT HEADER (RECEIVED, SENDED)> <!ELEMENT RECEIVED (#PCDATA)> <!ELEMENT SENDED (#PCDATA)> <!ELEMENT BODY (#PCDATA)> Element Declarations <!ELEMENT element_name (content_model)> MAIL element는 HEADER element와 BODY element를 child element로 반드시 1개씩 가진다. 반드시 HEADER element 다음에 BODY element가 온다. HEADER element는 RECEIVED 와 SENDED element를 child element 로 가진다. RECEIVED 다음에 SEVDED가 온다. RECEIVED,SENDED and BODY element는 text Data를 가지고 있다. 단기 4352년 4월 24일 Jung, Jin A

9 3.3 DTD 사용 – 내부 참조 This DTD file is included inside the XML document.
<?xml version = “1.0” encoding=“euc-kr”?> <! - - an example of XML document. mail.xml - -> <MAIL> <HEADER> </HEADER> <BODY> 길동 도련님! 안녕하십니까?…. </BODY> </MAIL> <!DOCTYPE MAIL [ <!ELEMENT MAIL (HEADER , BODY)> <!ELEMENT HEADER (RECEIVED , SENDED , TITLE)>……] > This DTD file is included inside the XML document. 단기 4352년 4월 24일 Jung, Jin A

10 3.4 DTD Grammar & 작성 예제 (1/9) (mail 문서) From: “홍길동” 길동@nownuri.net
To: “성춘향” Cc: “향단이” Subject : 새해인사 Date: Thu, 6 May :13:56 Organization : 길동 클럽 Content : “ 새해 복 많이 받으시오…” (mail 문서) Header Body 단기 4352년 4월 24일 Jung, Jin A

11 3.4 DTD Grammar & 작성 예제 (2/9) Element Define (mail2.dtd)
<!ELEMENT MAIL (HEADER , BODY)> <!ELEMENT FROM (#PCDATA)> <!ELEMENT TO (#PCDATA)> <!ELEMENT CC (#PCDATA)> <!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT ORGANIZATION (#PCDATA)> <!ELEMENT CONTENT (#PCDATA)> (mail2.dtd) <!ELEMENT HEADER ( FROM? , TO ,CC? , SUBJECT , DATE? , ORGANIZATION? )> <!ELEMENT BODY (CONTENT*) > 단기 4352년 4월 24일 Jung, Jin A

12 Content_Type of Element
3.4 DTD Grammar & 작성 예제 (6/9) Content_Type of Element Content Type 설명 및 예제 (ELEMENT의 내용) ANY Child ELEMENT or TEXT 예: <ELEMENT MAIL ANY> EMPTY 어떤 것도 올 수 없다. 속성만 허용 예: <ELEMENT MAIL EMPTY> ELEMENT Child ELEMENT만 허용 예: <ELEMENT MAIL (HAEDER,BODY)> MIXED ELEMENTMEN와 TEXT가 모두 포함된 경우 예: <ELEMENT MAIL(#PCDATA,HEADER)> PCDATA Text만 허용 예: <ELEMENT MAIL(#PCDATA)> 단기 4352년 4월 24일 Jung, Jin A

13 Content Model of Element
3.4 DTD Grammar & 작성 예제 (3/9) Content Model of Element 문서의 구조를 설계할 때 어떤 element들이 어떤 순서로(order), 얼마 만큼 (cardinality) 존재해야 하는지에 대한 규칙을 정의하는 부분. Order Operator Cardinality Operator 단기 4352년 4월 24일 Jung, Jin A

14 Order Operator 3.4 DTD Grammar & 작성 예제 (4/9) Order Operator Example
Comma( , ) : Sequence ( A , B ) A 다음에 B가 순서대로 Vertical bar( | ) : Choice (A | B ) A 또는 B 중에 하나만 자식으로 단기 4352년 4월 24일 Jung, Jin A

15 3.4 DTD Grammar & 작성 예제 (5/9) Cardinality Operator
Example 없음 : Only One (필수) ( A , B , C) A , B ,C 가 모두 한번 와야 한다. ? : 0 or 1 (옵션) ( A , B? , C) B 는 생략하거나 한번 올 수 있다. * : 0 or more(옵션) (A , B* , C) B는 생략하거나 여러 번 올 수 있다. + : 1 or more (옵션) (A ,B+ , C) B는 한번 이상 올 수 있다. 단기 4352년 4월 24일 Jung, Jin A

16 3.4 DTD Grammar & 작성 예제 (7/9) Attribute Define
<!ELEMENT MAIL (HEADER , BODY)> <!ELEMENT HEADER ( FROM? , TO ,CC? , SUBJECT , DATE? , ORGANIZATION? )> <!ELEMENT BODY (CONTENT*) > <!ELEMENT FROM (#PCDATA)> <!ELEMENT TO (#PCDATA)> <!ELEMENT CC (#PCDATA)> <!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT ORGANIZATION (#PCDATA)> <!ELEMENT CONTENT (#PCDATA)> (mail2.dtd) <! ATTLIST MAIL 요망사항 (긴급 | 검토 요망 | 답신 요망) #REQUIRED> Attribute Declarations <!ATTLIST element_name attribute value Type> 단기 4352년 4월 24일 Jung, Jin A

17 Default Attribute Keyword
3.4 DTD Grammar & 작성 예제 (8/9) Default Attribute Keyword Type 설명 #REQUIRED 해당 ELEMENT마다 반드시 ,속성 값이 지정되어야 한다 #IMPLED 속성 값의 부여가 옵션이다. #FILXED Default value 반드시 default value를 적용. 부여 되지 않은 경우 default value적용. 다른 값 적용도 가능 단기 4352년 4월 24일 Jung, Jin A

18 3.4 DTD Grammar & 작성 예제 (9/9) (mail2.xml)
<?xml version=“1.0” encoding=“euc-kr”?> <!DOCTYPE mail SYSTEM “mail2.dtd”> <MAIL 요망사항 = “답신 요망”> <HEADER> <FROM> “홍길동” </FROM> <TO> “성춘향” </TO> <CC> “향단이” </CC> <SUBJECT> 새해인사 <SUBJECT> <DATE> Thu, 6 May :13: <DATE> <ORGANIZATION> 길동 클럽 <ORGANIZATION> </HEADER> <BODY><CONTENT> 새해 복 많이 받으시오…</CONTENT></BODY> </MAIL> (mail2.xml) 단기 4352년 4월 24일 Jung, Jin A

19 4. XML Processor 4. XML Processor What is XML Processor?
XML API의 종류 What is DOM? DOM의 개념 단기 4352년 4월 24일 Jung, Jin A

20 4.1 What is XML Processor? (1/2)
Application 문서 검증 문서 로딩 문서 저장 문서 추가 문서 삭제 문서 수정 DOM API For XML/HTML XML Parser1 XML Parser2 XML Parser n XML프로세서 Web / DB / XML File 단기 4352년 4월 24일 Jung, Jin A

21 4.1 What is XML processor? (2/2)
XML문서를 읽어서 문서 내용과 문서 구조에 대한 접근 을 제공하는 software 문서와 DTD를 읽어 문서의 정확성을 검증 문서 내의 element와 content tree, catalog등을 생성해내며, 이를 이용하여 XML application은 해당 element에 대한 특정 동작을 기술함으로써 XML문서의 처리를 수행 단기 4352년 4월 24일 Jung, Jin A

22 XML Processor를 이용하는 방법 4.2 XML Processor의 이용 (1/2) XML browser를 이용
XML processor가 제공하는 자체 API를 이용 표준화된 API를 사용 단기 4352년 4월 24일 Jung, Jin A

23 프로세서에 대한 접근에 API를 이용. 4.2 XML Processor의 이용 (2/2)
Processor자체에서 제공하는 API 표준화된 API : SAX , DOM Standard Interface Each Processor’s Interface DOM SAX 범용 XML Processor XML 문서 단기 4352년 4월 24일 Jung, Jin A

24 XML Processor 및 API들의 접근 방법
4.3 XML API (1/3) XML Processor 및 API들의 접근 방법 Event-Driven Approach SAX Object Model Approach DOM 단기 4352년 4월 24일 Jung, Jin A

25 Event-Driven Approach
4.3 XML API (2/3) Event-Driven Approach XML 문서를 parsing할 때 문서의 전체 구조 정보를 가지지 안으며, 단순히 특정 element를 만났을 때, event를 발생시켜 programmer가 요구한 작업을 수행할 수 있도록 한다. 문서의 전체 정보보다는 특정 element의 추출 연산이 중요한 서비스에 적합. SAX(Simple API for XML) 단기 4352년 4월 24일 Jung, Jin A

26 Object Model Approach 4.3 XML API (3/3)
XML문서를 parsing하여 문서의 구조 정보와 contents 모두를 object로서 메모리상에 올려놓고 이용. 문서 전체에 대한 구조 정보를 tree에 기반한 object로서 이용 가능하므로 XML 문서를 구조적으로 변경하는 작업에 적합. 여러 application이 XML 문서를 메모리상에서 공유가 가능 큰 XML문서의 경우 메모리 사용량 증가. DOM(Document Object Model) 단기 4352년 4월 24일 Jung, Jin A

27 DOM이란? 4.4 What is DOM? Document Object Model html과 xml문서를 다루기 위한 API
웹 페이지에 포함되어 있는 조작 가능한 객체(element, link,image …)를 위한 interface Interface를 통해 객체를 조회 , 삭제, 추가, 변경을 가능하도록 하는 것이 목적 Platform , programming language에 독립적인 standard interface ----->사용자는 DOM을 통해서 문서를 생성하고, 그 문서의 구조에 따라 navigation하고, element와 문서내용을 추가/수정/삭제 할 수 있다. 단기 4352년 4월 24일 Jung, Jin A

28 DOM and MSXML(Microsoft XML Parser-COM based) (ref. MSDN)
단기 4352년 4월 24일 Jung, Jin A

29 Example Document Structure
<sample bogus=“value”> <text_node>Test data.</text_node> </sample> Parsing& tree building Document nodeType = DOCUMENT_NODE nodeName = #document nodeValue = (null) Attr nodeType = ATTRIBUTE_NODE nodeName = bogus nodeValue = value Element nodeType = ELEMENT_NODE nodeName = sample nodeValue = (null) firstchild attributes Element nodeType = ELEMENT_NODE nodeName = text_node nodeValue = (null) firstchild Element nodeType = ELEMENT_NODE nodeName = #text nodeValue = text data. ref. XML IN A NUTSHELL 단기 4352년 4월 24일 Jung, Jin A

30 4.5 DOM의 개념 <LAB> <PROFESSOR>
<NAME>CHOIS</NAME> </PROFESSOR> <STUDENT> <NAME>ARROW</NAME> <NAME>WOLF</NAME> <NAME>JINA</NAME> </STUDENT> </LAB> Web Document 구조화 단기 4352년 4월 24일 Jung, Jin A

31 DOM의 개념 - Web Document의 구조화
Tree 형태로 구조화 : programming으로 쉽게 조작 가능 <LAB> <PROFESSOR> <NAME> Chois <STUDNET> Arrow Wolf Jina 단기 4352년 4월 24일 Jung, Jin A

32 DOM (core) Level1 class/interface 계층도
Node Document DocumentFragment CharacterData Comment Text CDATASection Attr Element DocumentType Notation Entity EntityReference ProcessingInsruction DOMException NodeList NameNodeMap DomImplementaion 단기 4352년 4월 24일 Jung, Jin A

33 XML은 SGML과 HTML의 한계를 극복하여, Web에서 구조화된 문서를 처리할 수 있게 하는데 목적이 있다.
5. Summary XML은 SGML과 HTML의 한계를 극복하여, Web에서 구조화된 문서를 처리할 수 있게 하는데 목적이 있다. 문서의 구조를 정의하는 DTD를 사용하여, 임으로 문서의 구조를 구성할 수 있다. Application이 HTML , XML 문서를 접근하기 위한 표준 interface로 DOM ,SAX가 정의 되어 있다. 단기 4352년 4월 24일 Jung, Jin A


Download ppt "XML-II (eXtensible Markup Language) DTD/DOM"

Similar presentations


Ads by Google