Network Programming

Size: px
Start display at page:

Download "Network Programming"

Transcription

1 XML 문서처리 (extensible Markup Language) 김덕태 Bi Consulting. Co., Ltd. 2000년 4월 1

2 목차 XML(eXtensible Markup Language) 소개 XML 문법의개요 XML 이름공간 : 서로다른규격의 XML 문서들을통합할수있는표준 XML 링킹표준 : XML 문서들을서로연결시킬수있는확장된링킹표준 자바기반 XML 구문분석기 (SAX, DOM) DOM 객체모델 XHTML: HTML 4.0 문서규격을 XML 문서규격을만족하도록수정한문서규격 XSL (Extensible Stylesheet Language): XML 문서를다른규격의 XML 문서로변환하고표시하기위한변환정의문서 2

3 소개 XML 문서 XML 처리기 + XML 처리기응용 확장가능한문법을제공하는문서마크업언어의일종 마크업 (Markup): 문서내용의논리적구조및표현정보 XML 처리기 XML 문서를읽어들여구문분석한후, 그내용과구조에대한접근을제공하는 S/W 모듈 XML 처리기응용 XML 처리기를내장 ( 혹은호출 ) 하여처리 ( 편집, 검증, 저장, 전송, 검색, 구문분석, 변환, 포매팅등등 ) 기능을제공하는 XML 처리기응용 S/W 3

4 제품, 플랫폼독립성 단순성 XML 의특징 (1) HTML 과유사한텍스트기반문서마크업언어이므로, 텍스트기반 S/W 도구를비롯한다양한 S/W 도구를사용하여처리할수있다. SGML (Standard Generalized Markup Language) 을단순화한문서마크업언어로서, SGML 의일종이다. 확장성 문서타입정의기능을통하여다양한 XML 기반문서형식 ( 새로운태그의정의등 ) 을정의하여사용할수있다. 정확성 HTML 문서타입도문법에약간의제약을가하면 XML 문서타입중하나가된다. 주어진응용에가장적합한문서타입정의를통하여정보를표현함으로써문서정보를가장적절히표현할수있다. 이러한특징은문서처리의유연성과효율성을제공한다. 4

5 XML 의특징 (2) 통일성 다양한 XML 문서타입을정의하여사용하더라도기본골격은 XML 문서형식을따른다. 다양한 XML 응용 S/W 에서 XML 처리기를재사용할수있다. 출력매체독립성 문서의내용이특정출력형식과는독립적이다. HTML 과는달리 XML 문서가최종적으로출력되는형태는해당 XML 문서타입을지원하는 XML 처리기응용에달려있다. 문서의내용을다양한형태 ( 테이블, 그래프등등 ) 로출력할수있다. 문서의내용을다양한형식의다른문서 (HTML, 다른 XML 문서, RTF, MS Word, Postscript, PDF, TeX, LaTeX) 로의변환이가능하다. XML 문서의출력은클라이언트측 ( 웹브라우저, 애플릿등 ) 및서버측 ( 서블릿등 ) 에서이루어질수있다. 이때, 경우에따라 HTML 문서등다른문서형식으로의변환을통하여출력하는방법이종종사용된다. 5

6 XML 문서타입의종류 (1) XML 문서타입은다음과같은부류로나뉘어질수있다. 개별적인용도를위해정의한새로운문서형식특정분야에서받아들여지는표준형식일반적으로폭넓게받아들여지는표준형식 XML 문서타입정의모음 웹분야문서타입 XHTML (HTML 문서타입의 XML 타입정의 ) : Resource Description Framework (RDF) 다양한웹기반메타데이타의통합 Platform for Internet Content Selection (PICS) 레이블 ( 메타데이타 ) 와인터넷콘텐트와의연동 6

7 XML 문서타입의종류 (2) Platform for Privacy Preferences (P3P) Digital Signature (DSig) Web Interface Definition Language (WIDL) 정보검색분야문서타입 A Query Language for XML (XML-QL) SQL 유사질의어 사용자인터페이스분야문서타입 Extensible Forms Description Language (XFDL) 폼기반사용자인터페이스제공 7

8 XML 문서타입의종류 (3) 그래픽스, 멀티미디아 Vector Markup Language (VML) 벡터그래픽 Scalable Vector Graphics (SVG) 2 차원그래픽스표현 ( 벡터그래픽도형, 이미지, 텍스트 ) Precision Graphics Markup Language (PGML) 고정밀 2 차원그래픽스표현 ( 폰트, 색상, 배치, 합성등 ) PostScript, PDF (Portable Ducument Format) 에공통된이미징모델채용 X3D 3 차원그래픽표현 VRML 의확장 : Synchronized Multimedia Integration Language (SMIL) 서로독립적인멀티미디아자료의동기화된프리젠테이션 8

9 XML 문서타입의종류 (4) JSML (Java Speech Markup Language) 일반문서, 프리젠테이션타입 TeXML TeX과유사 XslSliderMaker 슬라이드프리젠테이션 수학, 과학, 예술 Mathematical Markup Language (MathML) 수학, 과학기호및수식표현 Chemical Markup Language 화학분자식 Music Markup Language (MusicML) 9

10 XML 문법의기초 (1) XML 1.0 표준문서 XML 문서는다음과같은순서의기본형식을갖는다. XML 선언 ( 생략가능 ) 0개이상의문서타입선언 1개의루트요소 유효한 (valid) 문서 XML 기본문법에맞는 (well-formed) 문서이어야한다. 문서내에문서타입선언이있어야한다. 문서가선언된문서타입정의를따라야한다. 검증용 XML 처리기는구문분석과정에서문서의유효성을검증한다. XML 선언 문법 : <?xml version=1.0 encoding=" 인코딩이름 standalone="yes no"?> 인코딩선언을통하여문서내에사용된문자의인코딩을지정할수있다. 인코딩이름은 IANA 표준인코딩이름을사용하여야한다. 예 ) "UTF-8", "UTF-16", "ISO ", "EUC-KR", 등등 10

11 XML 문법의기초 (2) IANA 표준인코딩이름문서 ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets 인코딩선언이생략된경우, 문서의문자인코딩은 "UTF-8" 혹은 "UTF-16" ( 유니코드 ) 으로가정되며, 문서의처음에오는바이트순서표식 (#xfeff) 에의해이들인코딩을구분한다. 모든 XML 처리기는 "UTF-8", "UTF-16" 인코딩을지원해야하나, 기타인코딩의지원은선택사항이다. standalone 선언이생략되면 "standalone=no" 를선언한것과동일하며, yes인경우에는외부 DTD를참조하지않음을의미한다. 이름 유니코드레터 (letter), 유니코드숫자, `_', `:', `.', `-' 등으로이루어진식별자이다. 요소타입이름 ( 태그이름 ), 속성이름, ID 이름, 개체이름, 표기이름등을나타내는데사용된다. 문자 ``"'' 의쌍이구분자로서사용되는모든경우에대하여, 문자 ``''' 의쌍으로대신할수있다. 11

12 XML 문법의기초 (3) 요소 (element) 요소는시작태그와끝태그로묶여진논리적문서단위이다. 태그이름과요소타입이름은동의어이다. 요소의문법 : 시작태그요소내용끝태그 시작태그문법 : < 태그이름속성이름 =" 값 " 속성이름 =" 값 "...> 예 ) <termdef id="dt-dog" term="dog"> 끝태그문법 : </ 태그이름 > 예 ) </termdef> 빈태그문법 : < 태그이름속성이름 =" 값 " 속성이름 =" 값 ".../> : 내용이없는요소를나타내며, < 태그이름...></ 태그이름 > 과동일한의미를갖는다. 예 ) <termdef id="dt-dog" term="dog"/> HTML 과는달리대소문자를구분한다. 속성값은 `<' 를제외한문자로이루어진다. 요소내용은자식요소, 문자데이타, CDATA 섹션들로이루어진다. 유효한문서는선언된문서타입정의내의태그만을사용해야하며그문법을따라야한다. 12

13 XML 문법의기초 (4) 문자데이타 `<', `&' 문자는마크업에사용되므로직접표현될수없다. 문자참조 이들문자는문자그자체를나타내기위해서는문자참조나개체참조 ``<'', ``&'' 를사용해야한다. 문법 : &#10 진수문자코드값 ; 문법 : &#x16 진수문자코드값 ; 문자데이타로직접표현하기곤란한어떠한문자도 ISO ( 유니코드의 32 비트확장판 ) 문자코드값으로표현할수있다. 문자참조는요소내용, 속성값, 문서타입정의등문서의대부분의곳에서사용될수있다. CDATA 섹션 문법 : <![CDATA[ 문자열 ]]> 예 ) <![CDATA[<greeting>Hello, world!</greeting>]]> 마크업표식을포함하는문자열을해석하지않고일반문자데이타로서표현하기위해사용한다. 요소내용에서만나타날수있다. 13

14 주석 문법 : <!--'' 문자열 ``--> ` 문자열 ' 에는 ``--'' 가올수없다. XML 문법의기초 (5) 마크업표식이외의어느곳에서도나타날수있다. 예 ) intro.xml <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE seminar SYSTEM "seminar.dtd"> <!-- XML 예제화일주석예 --> <seminar> <title>xml 문서처리 </title> <author> 김덕태 </author> 14

15 XML 문법의기초 (6) <section> <head>xml 문법의기초 </head> <itemize> <item> XML 문서내에다음과같은 XML 특수기호를사용하기위해서는개체참조를이용하거나, <example> System.out.println(1 < 2); System.out.println(true && false) </example> </item> <item> CDATA 섹션을이용하거나, <example><![cdata[ System.out.println(1 < 2); System.out.println(true && false) ]]> </example> </item> <item> 처리기응용의처리에맡긴다. <examplefile file="xml\test.java"/> </item> <item> `가 ' 대신문자참조 `가' 라고표현할수있다. </item> </itemize> </section> </seminar> 15

16 문서타입선언 (1) 문서타입선언 목적 : XML 문서에문서타입정의 (DTD) 를포함시키기위한방법제공 문법 : <!DOCTYPE 문서타입이름문서타입정의식별자 [ 문서타입정의 ]> 유효한문서는문서타입이름이 XML 문서의루트요소타입이름 ( 태그이름 ) 과같아야한다. 문서타입정의식별자와문서타입정의부모두생략될수있다. ` 문서타입정의식별자 ' 를지정함으로써분리되어저장되어있는외부문서타입정의를포함시킬수있다. 내부문서타입정의예 <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE seminar [ <!ELEMENT seminar (title, author?, section*)>... <!ATTLIST examplefile file CDATA #REQUIRED>... ]> <seminar>... </seminar> 16

17 문서타입선언 (2) 문서타입정의식별자 문서타입선언에서 URI 에의해식별되는문서타입정의를 XML 문서내에논리적으로포함시키는기능을제공한다. 문법 : SYSTEM " 시스템 URI ` 시스템 URI' 는특정조직내부에서만사용되는문서타입정의가저장되어있는 URI 이다. 문법 : PUBLIC " 공개 URI" " 시스템 URI" ` 공개 URI' 는폭넓게받아들여지는문서타입정의가저장되어있는 URI 이며, 이겨우 XML 처리기는표준문서타입정의라이브러리를검색하여해당문서타입정의를검색할수있다. XML 처리기는 URI 내의비아스키문자는 ``%HH'' 형태의문자열로변환하여처리하여야한다. ( 여기서 HH 는해당문자의 UTF-8 인코딩코드값을 16 진수로나타낸값이다.) 이 URI 에저장된문서타입정의의첫행에다음선언이올수있다. ( 각선언부가생략가능하다.) <?xml version="1.0" encoding=" 인코딩이름 "?> 17

18 문서타입정의 (1) 문서타입정의 ` 문서타입정의 ' 는 0 개이상의마크업선언 ( 요소선언, 속성목록선언, 개체선언, 매개변수개체선언, 표기선언 ) 및매개변수개체참조로이루어진다. 매개변수개체참조는마크업선언내에도올수있다. 요소선언 문서타입정의는내포될수있으며, 누적되고, 내부문서타입정의는외부문서타입정의보다우선순위가높다. 문법 : <!ELEMENT 태그이름요소내용패턴 > 다음각요소내용패턴은이요소가가질수있는요소내용의형식을정의한다. ANY: 어떠한형식도올수있다. 예 ) <!ELEMENT container ANY> EMPTY: 요소내용을가질수없다. 예 ) <!ELEMENT br EMPTY> (#PCDATA#): 요소내용으로문자데이타, CDATA 섹션만이올수있다. 예 ) <!ELEMENT p (#PCDATA) > 18

19 문서타입정의 (2) (#PCDATA# 태그이름 태그이름...)*: 요소내용으로문자데이타, 문자참조, 개체참조, CDATA 섹션및주어진태그의요소들을가질수있다. 예 ) <!ELEMENT p (#PCDATA emph)* > 정규수식 : 주어진패턴의자식요소들만을가질수있다. 정규수식은태그이름들과연산자 ` ' ( 선택 ), `,' ( 연결 ), 괄호 ( 그룹화 ), `?' (0번혹은 1번 ), `*' (0번이상반복), `+' (1번이상반복) 를사용하여나타낸다. 예 1) <!ELEMENT spec (front, body, back?)> 예 2) <!ELEMENT div1 (head, (p list note)*, div2*)> 속성 (attribute) 목록선언 요소 ( 태그 ) 에사용될수있는속성이름, 속성자료형, 디폴트값들을정의한다. 문법 : <!ATTLIST 태그이름속성이름속성자료형디폴트값...> `속성자료형 ' 은다음과같은값으로지정한다. CDATA: 일반스트링. NMTOKEN: 임의의이름 NMTOKENS: 공백류문자로구분된임의의이름목록 ( 이름 이름...): 주어진이름중 1개 19

20 문서타입정의 (3) ID: ID 이름. 하나의 XML 문서내에서는이태그의모든요소에서속성값으로지정된이이름이모두서로달라야한다. 문서내에서요소를링크시키기위한주소로사용하기위한것이주목적이다. 속성이름으로 "id" 를많이사용한다. IDREF: ID 이름. 하나의 XML 문서내에서속성자료형 ID의해당속성값을갖는요소로링크시키기위한것이주목적이다. IDREFS: 공백류문자로구분된 ID 이름목록.. `디폴트값 ' 은해당요소의디폴트속성값에대한사항을정의한다. " 속성값 ": 요소에서이속성이지정되지않은경우사용될디폴트속성값 #FIXED " 속성값 ": 이속성디폴트값만이이속성이가질수있는유일한값이다. #IMPLIED: 디폴트값을정의하지않고처리기응용이디폴트값들제공. #REQUIRED: 요소에서이속성이반드시지정되어야하며, 디폴트값은없다. 예약된속성 xml:space를다음과같이속성목록에선언해주면 XML 처리기가요소내의공백류문자를정규화하지않고있는그대로처리기응용에넘겨준다. <!ATTLIST code xml:space (default preserver) preserve > 20

21 문서타입정의 (4) 예 <!ATTLIST termdef id ID #REQUIRED name CDATA #IMPLIED> <!ATTLIST list type (bullets ordered glossary) "ordered"> <!ATTLIST form method CDATA #FIXED "POST"> 예졔 : seminar.dtd <?xml encoding="euc-kr"?> <!ELEMENT seminar (title, author?, section*)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT section (head, (itemize example examplefile)*)> <!ELEMENT head (#PCDATA)> <!ELEMENT itemize (item)+> <!ELEMENT item (#PCDATA example examplefile itemize)*> <!ELEMENT example (#PCDATA)> <!ELEMENT examplefile EMPTY> <!ATTLIST examplefile file CDATA #REQUIRED> 21

22 개체 개체 (entity) 와개체참조 개체는문서타입정의내의개체선언에의해이름과내용을부여받는다. 개체의내용은요소, 문자데이타, CDATA 섹션들로이루어질수있다. 즉, XML 문서의일부로서정의된다. 내부개체는문서타입정의내에직접나타나고, 외부개체는별도의화일 (URI) 에저장된다. 개체의내용은 XML 문서내의개체참조에의해참조 ( 포함 ) 된다. 한번정의된개체를여러곳에서참조함으로써반복적인 XML 문서작업을줄이고, 손쉽게관리할수있다. 일종의매크로기능이다. 개체참조 문법 : & 개체이름 ; 개체참조는요소내용및속성값에서만나타날수있으며, XML 처리기에의해해당개체의내용으로대체된후, 구문분석된다. ``<'' (``<''), ``&''(``&''), ``gt;''(``>''), ``quot;'(``"''), ``apos;''(``''') 은해당문자참조로의정의가내장되어있다. 22

23 개체선언 개체참조가개체정의에나타나는경우, 그참조가해석되지않고, 있는그대로다루어진다. 다음페이지에는다양한문자개체가정의되어있으므로, 문서타입정의내에포함시켜사용할수있다. 내부개체선언 문법 : <!ENTITY 개체이름 " 내부개체정의 "> `내부개체정의 ' 내에서문자 `%' 는매개변수개체참조로서해석된다. 외부개체선언 문법 : <!ENTITY 개체이름외부개체식별자 > 개체내용은 `외부개체식별자 ' 가나타내는 URI의내용이다. 외부개체식별자는문서타입정의식별자와동일한문법과의미를가지며, 단지해당 URI에저장된내용이개체정의라는차이가있을뿐이다. 속성목록선언의 `속성자료형 ' 으로다음을사용할수있다. ENTITY: 개체이름. 이진데이타등 #PCDATA로전달하기곤란한경우유용. ENTITIES: 공백류문자로구분된개체이름목록 23

24 예 : entity_test.xml <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE seminar SYSTEM "seminar.dtd" [ <!ENTITY author " 김덕태 "> <!ENTITY head1 "<head> 개체의의미 </head>"> <!ENTITY section2 SYSTEM "section2.xml"> ]> <seminar> <title>xml 개체처리 </title> <author>&author;</author> <section> &head1; <itemize> <item> 개체의내용은요소, 문자데이타, CDATA 섹션들로이루어진내용으로정의될수있다. </item> </itemize> </section> &section2; </seminar> 24

25 예 : section2.xml <?xml encoding="euc-kr"?> <section> <head> 외부개체정의 </head> <itemize> <item> 이와같이외부에정의된개체를개체참조를통하여포함시킬수있다. </item> </itemize> </section> 25

26 매개변수개체 (entity) 와매개변수개체참조 매개변수개체 매개변수개체는문서타입정의내의매개변수개체선언에의해이름과내용을부여받는다. 매개변수개체의내용은문서타입정의이일부로서정의된다. 내부매개변수개체정의는문서타입정의내에직접나타나고, 외부매개변수개체정의는별도의화일 (URI) 에저장된다. 개체의내용은문서타입정의내의매개변수개체참조에의해참조 ( 포함 ) 된다. 한번정의된매개변수개체를여러곳에서참조함으로써반복적인문서타입정의작업을줄이고, 손쉽게관리할수있다. 일종의매크로기능이다. 매개변수개체참조 문법 : % 매개변수개체이름 ; 요소내용과속성값내에서는해석되지않고, 문서타입정의내에서만해석된다. 문서타입정의내의거의모든곳에서사용될수있다. 26

27 매개변수개체선언 (1) 매개변수개체선언및문서타입선언의외부개체식별자가나타내는 URI 에저장되어있는개체내용은문서타입정의의일부로서마크업선언과조건부섹션들로이루어진다. 내부매개변수개체선언문법 : <!ENTITY % 매개변수개체이름 " 내부매개변수개체정의 "> 외부매개변수개체선언문법 : <!ENTITY % 매개변수개체이름외부매개변수개체식별자 > 정의된내용이문서타입정의의일부라는차이점만있을뿐, 개체식별자와문법및의미가동일하다. 포함조건부섹션문법 : <![INCLUDE[ 매개변수개체정의 ]]> 배제조건부섹션문법 : <![IGNORE[ 매개변수개체정의 ]]> 27

28 매개변수개체선언 (2) 예 ) <!ENTITY % draft 'INCLUDE' > <!ENTITY % final 'IGNORE' > <![%draft;[ <!ELEMENT book (comments*, title, body, supplements?)> ]]> <![%final;[ <!ELEMENT book (title, body, supplements?)> ]]> 28

29 표기 (notation) 표기이름은처리기명령의대상응용혹은구문분석되지않는개체의형식을식별하기위한식별자이다. 응용식별자는 XML 처리기가호출할응용을식별하는 URI 이다. 선언문법 : <!NOTATION 표기이름응용식별자 > ` 응용식별자 ' 의문법 SYSTEM " 시스템 URI" PUBLIC " 공개 URI" PUBLIC " 공개 URI" " 시스템 URI 속성목록선언의 ` 속성자료형 ' 으로다음을지정함으로써주어진표기이름중 1 개를속성값으로사용할수있도록선언할수있다. NOTATION ( 표기이름 표기이름...) 29

30 처리기명령 (Processing Instruction) 문법 : <? 표기이름명령?> XML 처리기가주어진문자열의 ` 명령 ' 을 ` 표기이름 ' 의선언에의해정의된외부개체식별자에의해식별된식별된응용에전달한다. 마크업표식이외의어느곳에서도나타날수있다. ` 표기이름 ' 은표기선언에의해선언된식별자 xml, XML 등으로시작할수없다. 30

31 구문분석되지않는 (unparsed) 개체 이미지화일등 XML 문서형식이아닌데이타를나타내기위해서사용된다. 선언문법 : <!ENTITY 개체이름외부개체식별자 NDATA 표기이름 > 외부개체식별자가나타내는 URI 는해당데이타의위치를나타내는 URI 이다. 구문분석되지않는개체는속성목록선언에서 ` 속성자료형 ' 이다음과같은값으로선언된경우의속성값으로서만사용될수있다. ENTITY: 구문분석되지않는개체의이름. ENTITIES: 구문분석되지않는개체의이름목록. XML 처리기는구문분석되지않는개체참조가나타나면, 해당 ` 표기이름 ' 이나타내는 URI 가식별하는응용에 ` 외부개체식별자 ' 가나타내는 URI 를전달한다. 31

32 XML 이름공간 (1) 목적 : XML 요소, 속성이름을 URI 로식별되는이름공간과연관시켜구분 용도 전세계적으로고유한요소, 속성이름생성 : 이름충돌해결및의미구분 스키마 (DTD 포함 ) 의재사용 서로다른규격의 XML 문서들을 1개의문서내에통합. XML Namespaces 1.0 Recommendation XML 이름공간은 URI로식별한다. 이름공간의참조 이름에 `: 이사용된경우, 앞부분이이름공간을나타내는접두어로해석된다. 이름공간의선언 요소의속성으로다음과같이이름공간을선언한다. 하나의요소에여러개의이름공간선언을할수있다. 자손요소에서선언된동일이름공간선언은조상요소에선언된이름공간 선언을재정의 (override) 할수있다. 32

33 문제점 XML 이름공간 (2) xmlns: 이름공간접두어 = 이름공간의 URI 이요소및모든자손요소의요소, 속성이름에이름공간접두어를붙여해당이름공간을지정할수있다. xmlns= 이름공간의 URI 이요소및모든자손요소의요소, 속성이름에대하여, 이름공간접두어가붙지않은요소, 속성이름은디폴트로이이름공간에속하게된다. ( 디폴트이름공간 ) xmlns= 조상요소에선언된디폴트이름공간선언을이요소및모든자손요소에대하여취소시킨다. 이름공간을사용하는경우유효한문서가되기어렵다. 유효한문서가되려면다양한이름공간의이름들이하나의 DTD 내에정의되어있어야한다. 33

34 예제 : namespace.xml XML 이름공간 (3) <?xml version="1.0" encoding="euc-kr"?> <seminar> <section xmlns=" xmlns:html=" <title>xml 소개 </title> <html:ul> <html:li>xml의유래 </html:li> <html:li>xml의용도 </html:li> <li xmlns=" 처리기 </li> </html:ul> </section> </seminar> 34

35 XML 링킹 (linking) 표준 (1) 링크 (link): 2 개이상의데이타객체 ( 혹은그일부분 ) 사이의명시적관계 XML Linking Language (XLink) 명세문서 : 목적 : HTML 링크인단방향링크이외에더강력한링크기능 ( 여러방향링크, 확장링크, 아웃오브라인링크 ) 제공 이름공간식별자 : XML Pointer Language (XPointer) 명세문서 : 목적 : 링크의 id 속성이정의되어있지않아도수식으로표현되는문서조각식별자로임의의문서조각을나타낼수있다. 예 ) <xlink:simple href='doc.xml#xpointer(book/chapter[position() <= 5])' /> 35

36 XML 링킹 (linking) 표준 (2) 위치식별자 (Locator) 목적 : URI 의확장 다음중 1가지형태를갖는다. URI: 자원의주소. 보통, 1개의문서전체를나타낸다. # 이름 #XPointer URI# 이름 URI#XPointer 이들형태중 `#' 대신에 ` ' 가사용될수있다. `이름 ' 은 XPointer의 `id( 이름 ) 과동일하다. XPointer 목적 : XML 문서내의요소혹은요소의일부에대한주소 일반적인자원의식별자는 URI를사용한다. XML 문서내의일부를나타내는식별자는 XPointer를사용해야한다. 36

37 자바 XML 구문분석기 (1) XML 구문분석기의종류 SAX 구문분석기 이벤트기반 XML 구문분석기 구문분석중에구문분석기와상호작용하며동작하는프로그램을작성할수있게해준다. DOM 구문분석기 XML 문서를구문분석하여 DOM 객체모델을생성하는구문분석기 JAXP (Java API for XML Parsing) 1.0 XML 1.0, SAX 1.0, DOM (Core) Level 1, JAXP 1.0 지원 javax.xml.parsers, org.xml.sax, org.w3c.dom 패키지포함 IBM XML Parser for Java XML 1.0, SAX 1.0, SAX 2.0 베타, DOM Level 1, DOM Level 2 베타지원 Docuverse DOM SDK 1.0A5 XML 1.0, SAX 1.0, DOM (Core) Level 1, DOM (HTML) Level 1, JAXP 1.0 지원 37

38 자바 XML 구문분석기 (2) Microsoft XML Parser in Java 문서 : 38

39 SAX API 1.0 (Simple API for XML) 목적 : SAX 드라이버 (SAX 지원 XML 구문분석기 ) 에대한인터페이스정의 org.xml.sax 패키지 홈페이지 : 전체구조 PaserFactory.makeParser() 1. 생성 2. 이벤트처리기등록 (setdocumenthandler, seterrorhandler, \ / setdtdhandler, setentityresolver) SAX 구문분석기 < (SAX 지원 XML 구문분석기 ) 이벤트처리기 3. parse(inputsource) 4. 이벤트 > 39

40 SAX API: ParserFactory 클래스 목적 : SAX 지원구문분석기의생성 메쏘드 ParserFactory.makeParser() throws ClassNotFoundException, IllegalAccessException, InstantiationException, NullPointerException, ClassCastException : "org.xml.sax.parser" 시스템프로퍼티로지정된클래스이름의 SAX 지원구문분석기생성 ParserFactory.makeParser(String parser) throws ClassNotFoundException, IllegalAccessException, InstantiationException, ClassCastException : 주어진클래스이름의 SAX 지원구문분석기생성. 시스템프로퍼티를설정하기곤란한애플릿에서유용하다. 40

41 SAX API: Parser 인터페이스 목적 : 구문분석의시동, 이벤트처리기 ( 콜백 ) 등록 구문분석도중에도다른이벤트처리기로재등록할수있다. 메쏘드 parse(inputsource source) throws SAXException, IOException SAX 구문분석기가 XML 문서 source의구문분석을시작하게한다. 구문분석이진행중에는호출할수없다. parse(string systemid) throws SAXException, IOException = parse(new InputSource(systemId)) setdocumenthandler(documenthandler handler) 문서이벤트처리기를등록한다. 등록되어있지않으면모든문서이벤트가무시된다. seterrorhandler(errorhandler handler) 오류이벤트처리기를등록한다. 등록되어있지않으면치명적오류를제외한모든오류이벤트가무시된다. setdtdhandler(dtdhandler handler) DTD 이벤트처리기를등록한다. 등록되어있지않으면모든 DTD 이벤트가무시된다. 41

42 SAX API: Parser 인터페이스 setentityresolver(entityresolver resolver) EntityResolver를등록한다. 등록되어있지않으면 SAX 구문분석기에의해처리된다. setlocale(locale locale) throws SAXException 경고, 오류메시지의로캘. 해당로캘을지원하지않는경우에는예외발생. 42

43 SAX API: InputSource 클래스 목적 : 문자스트림, 바이트스트림, 시스템 URI 등으로검색할수있는 XML 문서내용 생성자 new InputSource() new InputSource(Reader characterstream) new InputSource(InputStream bytestream) new InputSource(String systemid) 메소드 Reader characterstream 입력원천을문자스트림으로설정. InputStream bytestream 입력원천을바이트스트림으로설정. 문자스트림으로설정되지않은경우, 문서내용을가져오기위해사용된다. String systemid 입력원천을시스템 URI로설정. 문자스트림혹은바이트스트림으로설정되지않은경우, 문서내용을가져오기위해사용된다. 설정된 URI는문서내의상대 URI를처리하는경우에도사용된다. 43

44 SAX API: InputSource 클래스 String publicid 입력원천의위치정보를제공하기위한공개 URI. String encoding 입력원천이문자스트림이아닌경우, XML 문서의문자인코딩 44

45 SAX API: DocumentHandler 인터페이스 목적 : SAX 구문분석기가구문분석중에발생하는문서이벤트의처리기에대한인터페이스 메소드 setdocumentlocator(locator locator) : 각문서이벤트처리메쏘드내에서문서의현재위치를알아내기위한 locator를알려준다. 이인터페이스의모든다른메쏘드가호출되기전에호출된다. startdocument() throws SAXException : XML 문서시작시에 1번호출된다. enddocument() throws SAXException : XML 문서마지막에 1번호출된다. startelement(string name, AttributeList atts) throws SAXException : XML 문서의구성요소시작시마다호출되어, 요소타입이름과애트리뷰트를알린다. 지정된애트리뷰트및디폴트애트리뷰트를알려주나함축된애트리뷰트 (#IMPLIED) 는알려주지않는다. endelement(string name) throws SAXException : XML 문서요소마지막마다호출된다. 45

46 SAX API: DocumentHandler 인터페이스 characters(char ch[], int start, int length) throws SAXException : 일련의문자데이타를알린다. 여러번으로나뉘어호출될수있다. ignorablewhitespace(char ch[], int start, int length) throws SAXException : 무시될수있는일련의공백류문자 (whitespace) 를알린다. 여러번으로나뉘어호출될수있다. 검증구문분석기는반드시호출하나, 비검증구문분석기는호출하지않을수도있다. processinginstruction(string target, String data) throws SAXException : XML 선언혹은 XML 텍스트선언을알린다. 46

47 SAX API: Locator 인터페이스 목적 : XML 문서의현재위치를알아내기위한인터페이스 이들메쏘드는 DocumentHandler 인터페이스의메쏘드내에서만호출되어야한다. 메소드 String getpublicid() : 현재문서이벤트의공개 URI. String getsystemid() : 현재문서이벤트의시스템 URI. int getlinenumber() : 현재문서이벤트가종료하는행번호. 알려지지않은경우에는 -1 int getcolumnnumber() : 현재문서이벤트가종료하는열번호. 알려지지않은경우에는 -1 47

48 SAX API: org.xml.sax.helpers.locatorimpl 클래스 implements Locator 목적 : Locator 객체의저장 생성자 new LocatorImpl() new LocatorImpl(Locator locator) : locator 와동일한내용을갖는객체생성. 메소드 setpublicid(string publicid) setsystemid(string systemid) setlinenumber(int linenumber) setcolumnnumber(int columnnumber) 48

49 SAX API: AttributeList 인터페이스 목적 : 문서요소의애트리뷰트들 메소드 int getlength() 애트리뷰트갯수 String getname(int i) i 번째애트리뷰트의이름 String gettype(int i) i 번째애트리뷰트의자료형. "CDATA", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES", "NOTATION" 중하나. String getvalue(int i) : i번째애트리뷰트의값. String gettype(string name) String getvalue(string name) 49

50 SAX API: org.xml.sax.helpers.attributelistimpl 클래스 implements AttributeList 목적 : AttributeList 의저장 메소드 new AttributeListImpl() new AttributeListImpl(AttributeList atts) : atts와동일한내용을갖는객체생성. setattributelist(attributelist atts) addattribute(string name, String type, String value) removeattribute(string name) clear() 50

51 SAX API: ErrorHandler 인터페이스 목적 : SAX 구문분석기가구문분석중에발생하는오류이벤트처리기에대한인터페이스 메소드 warning(saxparseexception exception) throws SAXException error(saxparseexception exception) throws SAXException 구문분석이계속하여진행될수있는회복가능한오류의알림. fatalerror(saxparseexception exception) throws SAXException 구문분석을정상적으로완료할수없는치명적오류의알림. 51

52 SAX API: DTDHandler 인터페이스 목적 : SAX 구문분석기가구문분석중에발생하는 DTD 이벤트처리기에대한인터페이스 표기선언및구문분석되지않는개체선언을선언순서와관계없이호출하여알려준다. 모든이벤트가 DocumentHandler 의 startdocument, startelement 사이에발생한다. 메소드 notationdecl(string name, String publicid, String systemid) throws SAXException 표기선언의알림. unparsedentitydecl(string name, String publicid, String systemid, String notationname) throws SAXException 구문분석되지않는개체선언의알림 52

53 SAX API: EntityResolver 인터페이스 목적 : SAX 구문분석기가구문분석중에외부개체처리의커스터마이즈화 외부개체의 InputSource 를다른 InputSource 로대체한다. 시스템 URI 가처리되기곤란한 URI ( 데이타베이스등 ) 인경우데이타를가져와서 InputSource 로제공하거나, URI 리다이렉트 (redirect) 등에유용하다. 메소드 InputSource resolveentity(string publicid, String systemid) throws SAXException, IOException 모든종류의외부개체 ( 외부문서타입정의, 외부개체, 매개변수외부개체 ) 를포함시킬때마다호출된다. null 을반환하면구문분석기는본래의 InputSource 를사용한다. 53

54 SAX API: HandlerBase 클래스 목적 : SAX 이벤트처리기의편리한작성 이클래스는다음각인터페이스를다음과같이동작하도록구현한다. DocumentHandler 인터페이스 ErrorHandler 인터페이스 : 경고, 회복가능한오류는무시하고, 치명적오류의경우에는해당 SAXParseException 예외발생. DTDHandler 인터페이스 : DTD 이벤트를무시한다. EntityResolver 인터페이스 : InputSource로 null을반환한다. 54

55 javax.xml.parsers 패키지 JAXP API (1) SAX, DOM 구문분석기 API 사용을위한표준화된 API 제공 SAXParserFactory 추상클래스 목적 : SAX 구문분석기객체의환경설정및생성 SAXParserFactory SAXParserFactory.newInstance() 시스템프로퍼티 javax.xml.parsers.saxparserfactory 로지정된팩토리클래스객체생성. 시스템프로퍼티가지정되지않은경우디폴트로내장된팩토리클래스객체생성. SAXParser newsaxparser() throws ParserConfigurationException, SAXException boolean validating 생성될 SAX 구문분석기의검증용구문분석기여부 boolean namespaceaware 생성될 SAX 구문분석기의 XML 이름공간지원여부 55

56 SAXParser 추상클래스 JAXP API (2) 목적 : org.xml.sax.parser 클래스의포장 (wrapping) 클래스 boolean isvalidating() boolean isnamespaceaware() org.xml.sax.parser getparser() throws SAXException 본래의 SAX 구문분석기구현객체 parse(java.io.inputstream is, HandlerBase hb) throws SAXException, java.io.ioexception parse(java.lang.string uri, HandlerBase hb) throws SAXException, java.io.ioexception parse(java.io.file f, HandlerBase hb) throws SAXException, java.io.ioexception parse(inputsource is, HandlerBase hb) throws SAXException, java.io.ioexception 56

57 JAXP API (3) DocumentBuilderFactory 추상클래스 목적 : SAX 구문분석기객체의환경설정및생성 DocumentBuilderFactory DocumentBuilderFactory.newInstance() 시스템프로퍼티 javax.xml.parsers.documentbuilderfactory 로지정된팩토리클래스객체생성. 시스템프로퍼티가지정되지않은경우디폴트로내장된팩토리클래스객체생성. DocumentBulder newdocumentbuilder() throws ParserConfigurationException boolean validating 생성될 DOM 구문분석기의검증용구문분석기여부 boolean namespaceaware 생성될 DOM 구문분석기의 XML 이름공간지원여부 57

58 DocumentBuilder 추상클래스 JAXP API (4) 목적 : XML 문서로부터 DOM 트리객체생성 boolean isvalidating() boolean isnamespaceaware() setentityresolver(entityresolver resolver) seterrorhandler(errorhandler handler) Document newdocument() Document parse(java.io.inputstream is) throws SAXException, java.io.ioexception Document parse(java.lang.string uri) throws SAXException, java.io.ioexception Document parse(java.io.file f) throws SAXException, java.io.ioexception Document parse(inputsource is) throws SAXException, java.io.ioexception 58

59 JAXP API (5) JAXP 1.0 SAX 구문분석기실행예 C:\example\xml> set classpath=.;c:\jaxp1.0\jaxp.jar;c:\jaxp1.0\parser.jar C:\example\xml> java SAXTest -v intro.xml... ( 문서위치설정 )<?xml version="1.0" encoding="euc-kr"?> ( 문서시작 )( 외부개체 : null file:/home/dtkim/research/java/notes/example/xml/seminar.dtd)<seminar>( 시작 ) ( 공백류 )<title>( 시작 )XML 문서처리 ( 문자 )</title>( 끝 ) ( 공백류 )<author>( 시작 ) 김덕태 ( 문자 )</author>( 끝 ) ( 공백류 )<section>( 시작 ) ( 공백류 )<head>( 시작 )XML 문법의기초 ( 문자 )</head>( 끝 ) ( 공백류 )<itemize>( 시작 ) ( 공백류 )<item>( 시작 ) XML 문서내에다음과같은 XML 특수기호를사용하기위해서는개체참조를이용하거나, ( 문자 )<example>( 시작 ) System.out.println(1 ( 문자 )<( 문자 ) 2); System.out.println(true ( 문자 )&( 문자 )&( 문자 ) false) ( 문자 )</example>( 끝 ) ( 문자 )</item>( 끝 ) ( 공백류 )<item>( 시작 ) CDATA 섹션을이용하거나, ( 문자 )<example>( 시작 ) System.out.println(1 < 2); System.out.println(true && false) ( 문자 ) ( 문자 )</example>( 끝 ) 59

60 ( 문자 )</item>( 끝 ) ( 공백류 )<item>( 시작 ) 처리기응용의처리에맡긴다. ( 문자 )<examplefile file="xml\test.java">( 시작 )</examplefile>( 끝 ) ( 문자 )</item>( 끝 ) ( 공백류 )<item>( 시작 ) `가 ' 대신문자참조 `( 문자 ) 가 ( 문자 )' 라고표현할수있다. ( 문자 )</item>( 끝 ) ( 공백류 )</itemize>( 끝 ) ( 공백류 )</section>( 끝 ) ( 공백류 )</seminar>( 끝 )( 문서끝 ) 60

61 C:\example\xml> java SAXTest -v entity_test.xml ( 문서위치설정 )<?xml version="1.0" encoding="euc-kr"?> ( 문서시작 )( 외부개체 : null file:/home/dtkim/research/java/notes/example/xml/seminar.dtd)<seminar> ( 공백류 )<title>( 시작 )XML 개체처리 ( 문자 )</title>( 끝 ) ( 공백류 )<author>( 시작 ) 김덕태 ( 문자 )</author>( 끝 ) ( 공백류 )<section>( 시작 ) ( 공백류 )<head>( 시작 ) 개체의의미 ( 문자 )</head>( 끝 ) ( 공백류 )<itemize>( 시작 ) ( 공백류 )<item>( 시작 ) 개체의내용은요소, 문자데이타, CDATA 섹션들로이루어진내용으로정의될수있다. ( 문자 )</item>( 끝 ) ( 공백류 )</itemize>( 끝 ) ( 공백류 )</section>( 끝 ) ( 공백류 )( 외부개체 : null file:/home/dtkim/research/java/notes/example/xml/section2.xml) ( 공백류 )<section>( 시작 ) ( 공백류 )<head>( 시작 ) 외부개체정의 ( 문자 )</head>( 끝 ) ( 공백류 )<itemize>( 시작 ) ( 공백류 )<item>( 시작 ) 이와같이외부에정의된개체를개체참조를통하여포함시킬수있다. ( 문자 )</item>( 끝 ) ( 공백류 )</itemize>( 끝 ) ( 공백류 )</section>( 끝 ) ( 공백류 )</seminar>( 끝 )( 문서끝 ) 61

62 XML for Java 의 SAX 구문분석기실행예 C:\example\xml> set classpath=.;c:\xml4j_3_0_1\xerces.jar C:\example\xml> java SAXTest2 org.apache.xerces.parsers.saxparser intro.xml... 62

63 import javax.xml.parsers.*; import org.xml.sax.*; import java.io.*; // Usage: java SAXTest [-v -n] <xml file> [output encoding] [-nodebug] public class SAXTest implements DocumentHandler, ErrorHandler, DTDHandler, EntityResolver { public static void main(string[] args) throws Exception { try { SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(false); factory.setnamespaceaware(false); int i = 0; for (; args[i].startswith("-"); i++) { if (args[i].equals("-v")) factory.setvalidating(true); else if (args[i].equals("-n")) factory.setnamespaceaware(true); } String xmlfile = args[i++]; String outencoding = "euc-kr"; if (i < args.length) outencoding = args[i++]; SAXTest app = new SAXTest(outEncoding); if (i < args.length) app.debug = false; 63

64 // XML 문서내용설정 File file = new File(xmlFile); // InputSource input = new InputSource(file.toURL().toString()); // tourl() 은 JDK 1.2 메쏘드이므로, 다음과같이한다. String path = file.getabsolutepath(); path.replace(file.separatorchar, '/'); if (path.length() > 0 && path.charat(0)!= '/') path = '/' + path; input = new InputSource("file:" + path); } // XML 구문분석기생성 SAXParser jaxparser = factory.newsaxparser(); Parser parser = ParserFactory.makeParser(parserClass); parser.setdocumenthandler(app); parser.seterrorhandler(app); parser.setdtdhandler(app); parser.setentityresolver(app); parser.parse(input); } catch (SAXParseException ex) { System.err.println("==> 오류 : " + ex.getsystemid() + ":" + ex.getlinenumber() + ":" + ex.getmessage()); ex.printstacktrace(system.err); } catch (SAXException ex) { System.err.println("==> 오류 : " + ex.getmessage()); ex.printstacktrace(system.err); } 64

65 String outencoding; PrintWriter writer; Locator locator; boolean debug = true; public SAXTest(String outencoding) throws UnsupportedEncodingException { this.outencoding = outencoding; writer = new PrintWriter( new OutputStreamWriter(System.out, outencoding)); } void print(string msg) { writer.print(msg); } void print(char[] buf, int offset, int len) { writer.write(buf, offset, len); } void println(string msg) { writer.println(msg); } void printstatus(string msg) { if (debug) { writer.print("(" + msg + ")"); writer.flush(); } } 65

66 // DocumentHandler 인터페이스메쏘드 public void setdocumentlocator(locator loc) { this.locator = loc; printstatus(" 문서위치설정 "); } public void startdocument() throws SAXException { println("<?xml version=\"1.0\" encoding=\"" + outencoding + "\"?>"); printstatus(" 문서시작 "); } public void enddocument() throws SAXException { printstatus(" 문서끝 "); println(""); writer.flush(); } public void startelement(string name, AttributeList attrs) throws SAXException { print("<" + name); } if (attrs!= null) for (int i = 0; i < attrs.getlength(); i++) print(" " + attrs.getname(i) + "=\"" + attrs.getvalue(i) + "\""); print(">"); printstatus(" 시작 "); 66

67 public void endelement(string name) throws SAXException { print("</" + name + ">"); printstatus(" 끝 "); } public void characters(char[] buf, int offset, int len) throws SAXException { print(buf, offset, len); printstatus(" 문자 "); } public void ignorablewhitespace(char buf [], int offset, int len) throws SAXException { print(buf, offset, len); printstatus(" 공백류 "); } public void processinginstruction(string target, String data) throws SAXException { print("<?" + target + " " + data + "?>"); printstatus(" 처리기명령 "); } 67

68 // ErrorHandler 인터페이스메쏘드 public void warning(saxparseexception ex) throws SAXParseException { if (writer!= null) writer.flush(); System.err.println("==> 경고 : " + ex.getsystemid() + ":" + ex.getlinenumber() + ":" + ex.getmessage()); } public void error(saxparseexception ex) throws SAXParseException { if (writer!= null) writer.flush(); System.err.println("==> 오류 : " + ex.getsystemid() + ":" + ex.getlinenumber() + ":" + ex.getmessage()); } public void fatalerror(saxparseexception ex) throws SAXParseException { if (writer!= null) writer.flush(); System.err.println("==> 치명적오류 : " + ex.getsystemid() + ":" + ex.getlinenumber() + ":" + ex.getmessage()); } 68

69 // DTDHandler 인터페이스메쏘드 public void notationdecl(string name, String publicid, String systemid) throws SAXException { printstatus(" 표기선언 : " + publicid + " " + systemid); } public void unparsedentitydecl( String name, String publicid, String systemid, String notationname) throws SAXException { println("<!entity " + name + " " + publicid + " " + systemid + " NDATA " + notationname); printstatus(" 구문분석되지않는개체 "); } // EntityResolver 인터페이스메쏘드 } public InputSource resolveentity(string publicid, String systemid) throws SAXException, IOException { printstatus(" 외부개체 : " + publicid + " " + systemid); return null; } 69

70 문서객체모델 (DOM) XML, HTML 문서 1. 구문분석웹브라우저, XML, HTML 구문분석기, 기타프로그램 2. 생성 3. 동적인제어 DOM 모델 < 자바, 자바스크립트, IDL (C++,...) 웹브라우저로출력, XML, HTML 문서생성 목적 : XML 및 HTML 문서의동적인변경및제어를위한플랫폼및언어독립적인표준 XML 문서의구조를메모리내에서나무구조로표현하기위한문서객체모델표준의일종 용도 : 브라우저등에서출력되는문서의동적인변경및상호작용, XML, HTML 문서편집기 홈페이지 : XML DOM 구문분석기는 XML 문서를구문분석하여, DOM 모델로변환한다. 70

71 문서객체모델 (DOM) (2) 종류 Document Object Model (Core) Level 1 XML 문서의 DOM 모델 필수적으로구현되어야하는기본 API 와선택적으로구현할수있는확장 API 로나뉘어진다. Document Object Model (HTML) Level 1 HTML 문서의 DOM 모델 DOM (Core) Level 1 의기본 API 를포함하고 HTML 의표현에편리한 API 가추가되어있다. 자바, 자바스크립트 (ECMA Script), 코바 IDL 에대한표준 API 가정의되어있다. ( 코바 IDL 은다양한언어에서의표준 API 를간단히정의하기위해그문법을차용한것뿐임 ) DOM 객체의생성 XML, HTML 문서로부터 DOM 구문분석기를통한 DOM 객체생성 XML 및 HTML 문서로부터웹브라우저에의한생성기타프로그램의필요에따른생성 71

72 문서객체모델 (DOM) (3) DOM 모델의일반적인구조 문서내용을개념상여러개의나무구조로표현한다. 나무구조의각노드는 Node 인터페이스의객체로구성된다. 나무구조의루트노드는 Document 인터페이스의객체이다. 72

73 자바 DOM (Core) Level 1 API (1) org.w3c.dom 패키지. 예외클래스를제외하고인터페이스만이정의되어있다. 인터페이스계층도 Node +-- Document +-- Element +-- Attr +-- CharacterData +-- Text +-- CDATASection +-- Comment +-- EntityReference +-- ProcessingInstruction +-- DocumentFragment +-- DocumentType +-- Entity +-- Notation RuntimeException DOMException 73

74 DOM 모델의구조 자바 DOM (Core) Level 1 API (2) Document > DocumentType ---> Entity, Notation,... / \ / \... Comment Element > Attr,... / \ Element Text EntityReference / \ Text CDATASection DOMImplementation 인터페이스 목적 : 특정 DOM 구현패키지의정보검색 boolean hasfeature(string feature, String version) DOM 구현패키지가주어진기능을제공하면 true. feature 의값으로 "XML" 혹은 "HTML" 을사용할수있고, version 의값으로 Level 1 에대해서는 "1.0" 으로표현한다. 74

75 Node 인터페이스 자바 DOM (Core) Level 1 API (3) 목적 : 모든노드의최상위인터페이스 short getnodetype() 노드의타입. 각하위인터페이스노드에대하여다음과같은상수가정의되어있다. DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE, ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, DOCUMENT_TYPE_NODE String getnodename() : 노드의이름 ( 태그이름등 ) String nodevalue <-> throws DOMException NamedNodeMap getattributes() Node getparentnode() NodeList getchildnodes() boolean haschildnodes() 75

76 자바 DOM (Core) Level 1 API (4) Node getfirstchild() Node getlastchild() Node getprevioussibling() Node getnextsibling() Document getownerdocument() Node insertbefore(node newchild, Node refchild) throws DOMException Node appendchild(node newchild) throws DOMException Node removechild(node oldchild) throws DOMException Node replacechild(node newchild, Node oldchild) throws DOMException Node clonenode(boolean deep) NamedNodeMap 인터페이스 목적 : 이름으로검색할수있는노드목록 int getlength() Node getnameditem(string name) Node setnameditem(node arg) throws DOMException Node removenameditem(string name) throws DOMException Node item(int index) 76

77 자바 DOM (Core) Level 1 API (5) NodeList 인터페이스 목적 : 자식노드들을순서대로나타내기위한노드목록 int getlength() Node item(int index) Document 인터페이스 목적 : 단일문서모델내에포함될노드객체생성및검색이객체의생성을위한표준 API가정해져있지않으므로, 각구현에따라정해진방법을사용하여생성하여야한다. DOMImplementation getimplementation() DocumentType getdoctype() Element getdocumentelement() NodeList getelementsbytagname(string tagname) 문서내의주어진이름을갖는모든노드목록 Element createelement(string tagname) throws DOMException Attr createattribute(string name) throws DOMException DocumentFragment createdocumentfragment() Text createtextnode(string data) 77

78 자바 DOM (Core) Level 1 API (6) Comment createcomment(string data) CDATASection createcdatasection(string data) throws DOMException ProcessingInstruction createprocessinginstruction(string target, String data) throws DOMException EntityReference createentityreference(string name) throws DOMException Element 인터페이스 목적 : 문서의요소 ( 태그 ) 노드 String gettagname() String getattribute(string name) setattribute(string name, String value) Attr getattributenode(string name) Attr setattributenode(attr newattr) removeattribute(string name) Attr removeattributenode(attr oldattr) NodeList getelementsbytagname(string name) 주어진태그이름을갖는모든후손 Element 노드목록 normalize() 인접한모든 Text 노드를하나의 Text 노드로병합한다. 78

79 Attr 인터페이스 자바 DOM (Core) Level 1 API (7) 목적 : Element 노드의애트리뷰트 부모, 형제노드를갖지않는다. 자식노드로 Text, EntityReference 노드를가질수있다. String getname() boolean getspecified() 이애트리뷰트가 Element 노드와함께명시적으로값이지정된경우에 true String getvalue() setvalue(string value) CharacterData 인터페이스 목적 : 문자데이타노드 (Text, Comment) 의공통상위인터페이스 int getlength() String getdata() throws DOMException setdata(string data) throws DOMException insertdata(int offset, String arg) throws DOMException 79

80 자바 DOM (Core) Level 1 API (8) String substringdata(int offset, int count) throws DOMException appenddata(string arg) throws DOMException deletedata(int offset, int count) throws DOMException replacedata(int offset, int count, String arg) throws DOMException Text 인터페이스 목적 : 일반문자데이타노드 Text splittext(int offset) throws DOMException 2 개의 Text 노드로분리시켜이노드의다음형제노드로추가. CDATASection 인터페이스 목적 : Text 노드의 data 속성을나타내는 CDATA 섹션 CDATA 섹션은마크업명령을무시하며, CDATA 의마지막에오는 "]]>" 문자열만이유일한구분자로해석된다. Comment 인터페이스 목적 : 문서주석을나타내는노드 EntityReference 인터페이스 목적 : Entitty 노드로의참조노드 80

81 자바 DOM (Core) Level 1 API (9) ProcessingInstruction 인터페이스 String gettarget() setdata(string data) throws DOMException String getdata() DocumentFragment 인터페이스 목적 : 문서의부분 DocumentType 인터페이스 목적 : 문서타입정의 (Document Type Definition) 를나타내는노드의인터페이스 String getname() NamedNodeMap getentities() NamedNodeMap getnotations() Entity 인터페이스 목적 : 문서타입정의의 ( 구문분석된혹은안된 ) 개체부모노드를갖지않는다. String getnotationname() String getpublicid() String getsystemid() 81

82 자바 DOM (Core) Level 1 API (10) Notation 인터페이스 목적 : 구문분석되지않은개체에대한형식및 ProcessingInstruction 노드의타겟선언 부모노드를갖지않는다. String getpublicid() String getsystemid() DOMException 클래스 extends RuntimeException 82

83 XML DOM 자바구문분석기실행예 JAXP 1.0 DOM 구문분석기실행예 C:\example\xml> set classpath=.;c:\jaxp1.0\jaxp.jar;c:\jaxp1.0\parser.jar C:\example\xml> java DOMTest -v intro.xml {Document:{Element:<seminar>{Text: {Element:<title>{Text:XML 문서처리 {Text: {Element:<author>{Text: 김덕태 {Text: {Element:<section>{Text: {Element:<head>{Text:XML 문법의기초 {Text: {Element:<itemize>{Text: {Element:<item>{Text: XML 문서내에다음과같은 XML 특수기호를사용하기위해서는개체참조를이용하거나, {Element:<example>{Text: System.out.println(1 < 2); System.out.println(true && false) {Text: {Text: {Element:<item>{Text: CDATA 섹션을이용하거나, {Element:<example>{CDATASection: System.out.println(1 < 2); System.out.println(true && false) 83

84 {Text: {Text: {Text: {Element:<item>{Text: 처리기응용의처리에맡긴다. {Element:<examplefile>{Text: {Text: {Element:<item>{Text: ` 가 ' 대신문자참조 ` 가 ' 라고표현할수있다. {Text: {Text: {Text: {Comment: XML 예제화일주석예 {Element:<seminar>{Text: {Element:<title>{Text:XML 문서처리 {Text: {Element:<author>{Text: 김덕태 {Text: {Element:<section>{Text: {Element:<head>{Text:XML 문법의기초 {Text: {Element:<itemize>{Text: {Element:<item>{Text: XML 문서내에다음과같은 XML 특수기호를사용하기위해서는개체참조를이용하거나, {Element:<example>{Text: System.out.println(1 < 2); System.out.println(true && false) {Text: {Text: {Element:<item>{Text: CDATA 섹션을이용하거나, 84

85 {Element:<example>{CDATASection: System.out.println(1 < 2); System.out.println(true && false) {Text: {Text: {Text: {Element:<item>{Text: 처리기응용의처리에맡긴다. {Element:<examplefile>{Text: {Text: {Element:<item>{Text: ` 가 ' 대신문자참조 ` 가 ' 라고표현할수있다. {Text: {Text: {Text: 85

86 Docuverse DOM SDK 1.0A5 DOM 구문분석기실행예 C:\example\xml> set classpath=.;c:\domsdk_a5\domsdk.jar ;c:\domsdk_a5\w3cdom1.jar;c:\jaxp1.0\jaxp.jar;c:\jaxp1.0\parser.jar C:\example\xml> java DOMTest -Djavax.xml.parsers.DocumentBuilderFactory =com.docuverse.dom.documentbuilderfactoryimpl -v intro.xml... IBM XML Parser for Java DOM 구문분석기실행예 C:\example\xml> set classpath=.;c:\xml4j_3_0_1\xerces.jar;c:\jaxp1.0\jaxp.jar C:\example\xml> java -Djavax.xml.parsers.DocumentBuilderFactory =IBMDocumentBuilderFactoryImpl DOMTest -v intro.xml... 86

87 import org.w3c.dom.*; import org.xml.sax.*; import java.io.*; public class DOMTest { public static void main(string[] args) throws Exception { // XML 문서내용설정 File file = new File(args[2]); // input = new InputSource(file.toURL().toString()); // tourl() 은 JDK 1.2 메쏘드이므로, 다음과같이한다. String path = file.getabsolutepath(); path.replace(file.separatorchar, '/'); if (path.length() > 0 && path.charat(0)!= '/') path = '/' + path; InputSource input = new InputSource("file:" + path); Document doc = DOMFactory.openDocument(args[0], args[1], input); } print(doc); public static void print(node node) { if (node == null) return; int type = node.getnodetype(); 87

88 switch(type) { case Node.DOCUMENT_NODE: print((document) node); break; case Node.DOCUMENT_FRAGMENT_NODE: print((documentfragment) node); break; case Node.ELEMENT_NODE: print((element) node); break; case Node.ATTRIBUTE_NODE: //print((attribute) node); break; case Node.TEXT_NODE: print((text) node); break; case Node.CDATA_SECTION_NODE: print((cdatasection) node); break; case Node.COMMENT_NODE: print((comment) node); break; case Node.ENTITY_NODE: //print((entity) node); break; case Node.ENTITY_REFERENCE_NODE: //print((entityreference) node); break; 88

89 } case Node.NOTATION_NODE: //print((notation) node); break; case Node.PROCESSING_INSTRUCTION_NODE: //print((processinginstruction) node); break; case Node.DOCUMENT_TYPE_NODE: //print((documenttype) node); } public static void print(nodelist nodelist) { int num = nodelist.getlength(); for (int i = 0; i < num; i++) { Node node = nodelist.item(i); print(node); } } public static void print(document doc) { print("{document:"); DocumentType doctype = doc.getdoctype(); Element root = doc.getdocumentelement(); print(doctype); print(root); print(doc.getchildnodes()); print("}"); } 89

90 public static void print(documenttype doctype) { if (doctype == null) return; print("{documenttype:"); print(doctype.getnodename()); //print(doctype.getname()); //NamedNodeMap entities = doctype.getentities(); //NamedNodeMap notations = doctype.getnotations(); //print(entities); //print(notations); print(doctype.getchildnodes()); print("}"); } public static void print(element elem) { print("{element:"); print("<" + elem.gettagname() + ">"); print(elem.getchildnodes()); print("}"); } public static void print(text text) { print("{text:"); print(text.getdata()); print(text.getchildnodes()); print("}"); } 90

91 public static void print(cdatasection cdata) { print("{cdatasection:"); print(cdata.getdata()); print(cdata.getchildnodes()); print("}"); } public static void print(comment comment) { print("{comment:"); print(comment.getdata()); print(comment.getchildnodes()); print("}"); } } public static void print(string val) { System.out.print(val); } 91

92 자바 DOM (HTML) Level 1 API org.w3c.dom.html 패키지. HTML 문서의각요소 ( 태그 ) 종류에대하여 org.w3c.dom 패키지의하위인터페이스가정의되어있다. DOM (HTML) 을지원하는 XML 자바 DOM 구문분석기로 HTML 문서를구문분석하여 DOM (HTML) 객체모델을생성할수있다. 92

93 XHTML (1) 명세문서 MIME 타입 : text/html, text/xml, application/xml XHTML 1.0 규격 HTML 4.0 문서규격을 XML 문서규격을만족하도록수정한문서규격 Strict, Transitional, Frameset 등 3 가지문서규격중한가지를만족시켜야한다. 루트요소는 <html> 이어야한다. 루트요소의 xmlns 속성으로 XHTML 1.0 이름공간인 을지정한다. 루트요소이전에다음중하나의 DTD 를포함시켜야한다. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN "DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN "DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN "DTD/xhtml1-frameset.dtd"> 93

94 XHTML (2) <a>, <applet>, <form>, <frame>, <iframe>, <img>, <map> 요소의요소식별자로 name 속성대신에 id 속성사용 HTML 과 XML 문서규격을동시에만족하는문서를만들수있다. 요소이름과속성이름은모두소문자이어야한다. 예 : xhtml.html <?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns=" xml:lang="ko" lang="ko"> <head> <meta http-equiv="content-type" content='text/html; charset="euc-kr"' /> <title>xhtml 소개 </title> </head> <body> XHTML 1.0 은 HTML 4.0 문서규격을 XML 문서규격을만족하도록수정한문서규격이다. </body> </html> 94

95 XHTML (3) XHTML 문서에다른규격의 XML 문서를포함시킬수있다. ( 단, 현재로서는 XHTML 규격을엄격히따르는문서가아님 ) 예 : xhtml-xmlns.html <html xmlns=" xml:lang="en" lang="en"> <head> <title>a Math Example</title> </head> <body> <p>the following is MathML markup:</p> <math xmlns=" <apply> <log/> <logbase> <cn> 3 </cn> </logbase> <ci> x </ci> </apply> </math> </body> </html> 95

96 XHTML(4) 다른규격의 XML 문서에 XHTML 문서조각을포함시킬수있다. 예 : xhtml-xmlns2.html <?xml version="1.0" encoding="utf-8"?> <!-- initially, the default namespace is "books" --> <book xmlns='urn:loc.gov:books' xmlns:isbn='urn:isbn: ' xml:lang="en" lang="en"> <title>cheaper by the Dozen</title> <isbn:number> </isbn:number> <notes> <!-- make HTML the default namespace for a hypertext commentary --> <p xmlns=' This is also available <a href=" </p> </notes> </book> 96

97 XHTML(5) Tidy HTML 문서를 XHTML 문서로변환해주는도구 예제 : untidy.html <html> <head> <title>test</title> </head> <body> <H1>Heading 1</H1> <p>this is a paragraph. <ul> <li> item 1 <li> item 2 </ul> </body> </html> 97

98 XHTML(6) 실행예 C:\example\xml> set CLASSPATH=c:\tools\xml\JTidy\lib\Tidy.jar C:\example\xml> java org.w3c.tidy.tidy -asxml untidy.html <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " <html xmlns=" <head> <meta name="generator" content="html Tidy, see /> <title>test</title> </head> <body> <h1>heading 1</h1> <p>this is a paragraph.</p> <ul> <li>item 1</li> <li>item 2</li> </ul> </body> </html> 98

99 XML 문서의 HTML 변환표시방법 정적인변환 MSXSL XML과 XSL을결합해서 HTML 문서를생성하는툴 동적인변환 서버측혹은클라이언트측에서수행될수있다. MSXSL 명령행유틸리티액티브X 컨트롤자바애플릿자바스크립트 99

100 스타일시트 정의 문서가어떤방식으로표시될것인지를규정하는규칙들의집합 종류 XSL (extensible Markup Language) CSS (Cascading Style Sheet) DSSSL 장점 문서의내용과표시방법의분리를통한문서의명료화 다운로드시간, 네트워크체증, 서버부담감소 동일문서를목적에따라다양한방식으로표현가능 하나의스타일시트를변경시킴으로써이스타일시트를따른모든문서의 일괄적인변경 특징 XSL, CSS는 XML에적용될수있다. CSS는 HTML에적용가능하나, XSL은그렇지않다. XSL은문서변환기술언어로도사용될수있으나CSS는그렇지않다. CSS 문서는 XSL 문서로변환될수있다. 100

101 XML 문서에스타일시트명시 (1) XML 문서에스타일시트명시명세문서 XML 문서에 xml-stylesheet 처리기명령으로 XSL, CSS 등의스타일시트를명시할수있다. 예 ) <?xml-stylesheet href="mystyle.css" type="text/css"?> xml-stylesheet 처리기명령의애트리뷰트 href CDATA #REQUIRED type CDATA #REQUIRED title CDATA #IMPLIED media CDATA #IMPLIED charset CDATA #IMPLIED alternate (yes no) "no 101

102 XML 문서에스타일시트명시 (2) XML 문서에 CSS 명시예 : intro-css.xml <?xml version="1.0" encoding="euc-kr"?> <?xml-stylesheet href="seminar.css" type="text/css"?> <!DOCTYPE seminar SYSTEM "seminar.dtd">... 예제 CSS 스타일시트 : seminar.css seminar {display: block; font-size: 14pt; background-color: white; color: black; } title {display: block; font-size: 32pt; font-weight: bold; text-align: center} author {display: block; text-align: left; font-size} section {display: block;} head {display: block; font-size: 24pt; font-weight: bold; text-align: center} itemize {display: block;} item {display: list-item; list-style-type: circle;} example {display: block; white-space: pre; border: 1pt solid;} examplefile {display: block} 102

103 XSL XSL: Extensible Stylesheet Language 목적 : XML 문서를표시정보를갖는 XML 문서타입으로변환하기위한스타일시트언어 XSL 은다음 2 가지의독립적인언어로구성된 XML 문서이다. 변환언어 (XSLT): 하나의 XML 문서를다른 XML 문서로변환 포매팅언어 XSL 문서자체는 XML 문서의일종이다. XSL 명세문서 : 단점 XSL 은 HTML 등과같이 XML 문법을갖는문서로만변환할수있다. 정교한포매팅은곤란하다. XSL 에스크립트언어를사용하거나, XSL 을사용하는대신 XML 처리기응용을구현하여표시하거나, XSL 로변환된문서를별도의 XML 처리기응용으로표시하여해결될수있다. 103

104 XSL Transformations (XSLT) XSL 규격의일부 XML 문서 ( 소스트리 ) 를다른 XML 문서 ( 결과트리 ) 로의변환을기술하기위한 XML 문서의일종 MIME 타입 : text/xml, application/xml XSL Transformations (XSLT) Version 1.0 명세문서 XML Path Language (XPath) XSLT 이름공간 URI: 이름공간프리픽스로 `xml: 을사용하는것이관례. 루트요소는 <xsl:stylesheet> 혹은 <xsl:transform> 사용 104

105 XSL 처리기 목적 : XML 문서와 XSL 문서를구문분석하여변환된 XML 문서생성 XSL 처리기 LotusXSL XSLP James Clark 의 XT LotusXSL 의실행예 실행후의출력파일 out.html 을웹브라우저로방문한다. c:\example\xml> set CLASSPATH=c:\lotusxsl_1_0_0\xalan.jar;c:\lotusxsl_1_0_0\xerces.jar c:\example\xml> java org.apache.xalan.xslt.process in intro.xml -xsl seminar2html.xml > out.html 105

106 예제 : seminar2html.xml <?xml version="1.0" encoding="euc-kr"?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/seminar"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title><xsl:value-of select="title"/></title> </head> <body> <h1 style="text-align: center;"><xsl:value-of select="title"/></h1> <p> 저자 : <xsl:value-of select="author"/></p> <hr /> <xsl:apply-templates select="section"/> </body> </html> </xsl:template> 106

107 <xsl:template match="section"> <xsl:apply-templates/> <hr /> </xsl:template> <xsl:template match="head"> <h2 style="text-align: center;"><xsl:value-of select="."/></h2> </xsl:template> <xsl:template match="itemize"> <ul> <xsl:apply-templates/> </ul> </xsl:template> <xsl:template match="item"> <li><xsl:apply-templates/></li> </xsl:template> 107

108 <xsl:template match="example"> <!-- <p style="border: 1pt solid; padding: 1ex; white-space: pre; font-family: monospace;"> --> <pre style="white-space: pre; border: 1pt solid;"><xsl:value-of select="."/></pre> </xsl:template> <xsl:template match="examplefile"> <p> 예제 ) <a> <xsl:attribute name="href"><xsl:value-of select="translate(@file, '\', '/')"/> </xsl:attribute><xsl:value-of select="@file"/></a></p> </xsl:template> </xsl:stylesheet> 108

109 XSL 포매팅언어 XSL 포매팅객체변환기 FOP: A Formatting Object to PDF Translator XSL 문서는특정문서타입의 XML 문서를요소나무구조를결과나무구조로변환한후, 결과나무구조를목적 XML 문서로변환하기위한변환규칙을정의한다. 109

110 리소스 XML 홈페이지 : XML 사이트 : XML 사이트 : XML S/W 모음 : XML 관련정보 : SGML/XML 홈페이지 : XML FAQ: XML 뉴스그룹 : news:comp.text.xml XML 사이트 : ``XML Bible, Elliotte Rusty Harold, IDG Books Worldwide, 1999 ``Professional XML Applications, Frank Boumphrey 외 11 인, 류광역, 정보문화사, 1999 XML 메일링리스트아카이브 XML FAQ: 110

XML DTD

XML DTD XML DOM (Document Object Model) 2017. 9. 27 Content XML 문서처리 DOM 개요 DOM Tree DOM Core Interfaces Node Document Element Attr DOM 사용예 1 XML 문서처리 XML 문서처리과정 XML Parser 2 XML 문서처리 XML Parsing XML 문서를읽고해석하여구성요소,

More information

웹 프로그래밍

웹 프로그래밍 XML 프로세서 배재대학교 김창수 sungu@markup.paichai.ac.kr XML 프로세서개요 정의 XML 문서를읽어문서내용및구조에대한접근을제공하는소프트웨어 지원기능 엘리먼트, 속성, 엔티티정보생성 문서의정확성검증 XML 문서처리를수행하도록지원 2 XML 프로세서역할 XML 브라우저 XML 응용 SAX 범용 XML 프로세서 DOM Level 3 DOM

More information

한국학 온라인 디지털 자원 소개

한국학 온라인 디지털 자원 소개 XSL 의이해 김현한국학중앙연구원인문정보학교실 hyeon@aks.ac.kr 이저작물 (PPT) 의인용표시방법 : 김현, XSL 의이해, 전자문서와하이퍼텍스트 수업자료 (2018) 1. XSL 이란? 2. XSL Elements 3. XSL 에의한문서표현 1. XSL이란? XSL 관련개념 XSL (extensible Stylesheet Language) 문서의스타일을정의하기위한언어

More information

Java XPath API (한글)

Java XPath API (한글) XML : Elliotte Rusty Harold, Adjunct Professor, Polytechnic University 2006 9 04 2006 10 17 문서옵션 제안및의견 XPath Document Object Model (DOM). XML XPath. Java 5 XPath XML - javax.xml.xpath.,? "?"? ".... 4.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 How to produce ChemML and MathML 조윤상 ( 과편협기획운영위원 ) 1 Applications of XML Applications of XML RDF (Resource Description Framework) : 자원의정보를표현하기위한규격, 구문및구조에대한공통적인규칙을지원. RSS (Rich Site Summary) : 뉴스나블로그사이트에서주로사용하는콘텐츠표현방식.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Elements and attributes 조윤상 ( 과편협기획운영위원 ) 1 Table of Contents 1. Elements( 요소 )? 2. Attributes( 속성 ), PCDATA, CDATA? 3. Elements 선언방법 4. Attributes 속성 2 15 th KCSE Editor s Workshop, Seoul 2015 Elements

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 JATS to PDF 와구성요소 M2community By Younsang Cho Table of Contents 1. 발간프로세스및 JATS to PDF 작업의장단점 2. 구성요소및생성프로세스 3. 국내, 해외출판사 PDF 생성분석 4. Example XML to PDF 2 학술지 PDF 레이아웃에서갖추어야할내용과기능 학술지발간프로세스 Before After

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 발표자윤승환 1 XML DOM DOM 의구조 예제및참고자료 2 XML XML 개요 XML 문법 XML 파서의종류 (DOM, SAX) DOM 의구조 트리구조도 DOM 인터페이스 DOM DOM 개요 DOM 사용목적 DOM 장점과단점 예제및참고자료 XML 파일 DOM 파싱 DOM 인터페이스추가내용 웹서버에 XML 파일 DOM 파싱 3 XML 의개요 extensible

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

Week8-Extra

Week8-Extra Week 08 Extra HTML & CSS Joonhwan Lee human-computer interaction + design lab. HTML CSS HTML, HTML 5 1. HTML HTML HTML HTML (elements) (attributes), (arguments). HTML (tag), DTD (Document Type Definition).!4

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

12-file.key

12-file.key 11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part1. JavaScript / Ch10. 문서객체모델 2014년 1학기 Professor Seung-Hoon Choi 10 문서객체모델 문서객체모델 (Document Object Model, DOM) 웹브라우저가 HTML 페이지를인식하는방식 document

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 How to construct XSL and/or CSS for style sheet of XML files based on the data type definition 조윤상 ( 과편협기획운영위원 ) 1 Table of Contents 1. XML, XSL and CSS? 2. What is XSL? XSLT? XPath? XSL-FO? 3. What is

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

Lab1

Lab1 Lab 1: HTML CSS 2015 Fall human-computer interaction + design lab. Joonhwan Lee HTML Web Server (World Wide Web: WWW)? (., FTP ). web 3 웹 구조의 이해 웹페이지 웹페이지는 HTML 이라는 언어로 만들어진 일종의 프로그램 웹페이지는 텍스트, 이미지, 동영상,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 How to produce table XHTML 임정희 M2community 1 Table of Contents 1. XHTML - XHTML 과 HTML 2. Table XHTML - Table의이해 - Table 링크연결 - Table 작성 2 15 th KCSE Editor s Workshop, Seoul 2015 XHTML XHTML 기존에사용되던 HTML

More information

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF CHAPTER 2 (interaction) Ext JS., HTML, onready, MessageBox get.. Ext JS HTML CSS Ext JS.1. Ext JS. Ext.Msg: : Ext Ext.get: DOM 22 CHAPTER 2 (config). Ext JS.... var test = new TestFunction( 'three', 'fixed',

More information

04장

04장 20..29 1: PM ` 199 ntech4 C9600 2400DPI 175LPI T CHAPTER 4 20..29 1: PM ` 200 ntech4 C9600 2400DPI 175LPI T CHAPTER 4.1 JSP (Comment) HTML JSP 3 home index jsp HTML JSP 15 16 17 18 19 20

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

歯튜토리얼-이헌중.PDF

歯튜토리얼-이헌중.PDF leehj@nca nca.or..or.kr 1 : 2 : / 3 : 4 : 5 : 6 : 2 1 : 1.? 2. 3. 4. 5. 3 1.? " MOU (ISO, IEC, ITU, UN/ECE) Electronic Business A generic term covering information definition and exchange requirements

More information

Microsoft PowerPoint - aj-lecture1-HTML-CSS-JS.ppt [호환 모드]

Microsoft PowerPoint - aj-lecture1-HTML-CSS-JS.ppt [호환 모드] Web Technology Stack HTML, CSS, JS Basics HTML Tutorial https://www.w3schools.com/html/default.asp CSS Tutorial https://www.w3schools.com/css/default.asp JS Tutorial 524730-1 2019 년봄학기 3/11/2019 박경신 https://www.w3schools.com/html/default.asp

More information

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 24 장입출력 이번장에서학습할내용 스트림이란? 스트림의분류 바이트스트림 문자스트림 형식입출력 명령어행에서입출력 파일입출력 스트림을이용한입출력에대하여살펴봅시다. 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 스트림들은연결될수있다. 중간점검문제 1. 자바에서는입출력을무엇이라고추상화하는가?

More information

Overall Process

Overall Process CSS ( ) Overall Process Overall Process (Contents : Story Board or Design Source) (Structure : extensible HyperText Markup Language) (Style : Cascade Style Sheet) (Script : Document Object Model) (Contents

More information

3장

3장 C H A P T E R 03 CHAPTER 03 03-01 03-01-01 Win m1 f1 e4 e5 e6 o8 Mac m1 f1 s1.2 o8 Linux m1 f1 k3 o8 AJAX

More information

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

Microsoft PowerPoint - hci2-lecture12 [호환 모드] Serialization C# Serialization 321190 2012 년가을학기 11/28/2012 박경신 Serializaiton( 직렬화 ) 란객체상태를지속시키거나전송할수있는형식으로변환하는과정으로, Serialization 반대로다시객체로변환하는것을 Deserialization 임 Serialization i 을사용하는이유 객체의상태를저장소에보존했다가나중에똑같은복사본을다시만들기위하거나,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 05 장 CSS3 선택자 1. 선택자개요 2. 기본선택자 3. 속성선택자 4. 후손선택자와자손선택자 5. 반응 / 상태 / 구조선택자 CSS 블록을생성할수있다. 선택자를이해하고적절한선택자를활용할수있다. 1 선택자개요 CSS3 선택자 특정한 HTML 태그를선택할때사용하는기능 선택한태그에원하는스타일이나스크립트적용가능 그림 5-1 CSS 블록 CSS 블록 style

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

4장.문장

4장.문장 문장 1 배정문 혼합문 제어문 조건문반복문분기문 표준입출력 입출력 형식화된출력 [2/33] ANSI C 언어와유사 문장의종류 [3/33] 값을변수에저장하는데사용 형태 : < 변수 > = < 식 > ; remainder = dividend % divisor; i = j = k = 0; x *= y; 형변환 광역화 (widening) 형변환 : 컴파일러에의해자동적으로변환

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가 혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx 과목명 : 웹프로그래밍응용교재 : 모던웹을위한 JavaScript Jquery 입문, 한빛미디어 Part2. jquery Ch15. 문서객체조작 2014년 1학기 Professor Seung-Hoon Choi 15 문서객체조작 문서객체조작 자바스크립트만으로문서객체모델을다루려면복잡함 jquery를이용하면쉽게다룰수있다. 이책에서가장중요한부분 15.1 문서객체의클래스속성추가

More information

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 26 장애플릿 이번장에서학습할내용 애플릿소개 애플릿작성및소개 애플릿의생명주기 애플릿에서의그래픽컴포넌트의소개 Applet API의이용 웹브라우저상에서실행되는작은프로그램인애플릿에대하여학습합니다. 애플릿이란? 애플릿은웹페이지같은 HTML 문서안에내장되어실행되는자바프로그램이다. 애플릿을실행시키는두가지방법 1. 웹브라우저를이용하는방법 2. Appletviewer를이용하는방법

More information

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

한국학 온라인 디지털 자원 소개

한국학 온라인 디지털 자원 소개 XML 의이해 김현한국학중앙연구원인문정보학교실 hyeon@aks.ac.kr 이저작물 (PPT) 의인용표시방법 : 김현, XML 의이해, 전자문서와하이퍼텍스트 수업자료 (2018) 1. XML 발전의역사 2. XML 의특징 3. Namespace 의활용 1. XML 발전의역사 ARTANET XML이란? XML 이란? XML: extensible Markup Language

More information

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 13. HTML5 위치정보와드래그앤드롭 SVG SVG(Scalable Vector Graphics) 는 XML- 기반의벡터이미지포맷 웹에서벡터 - 기반의그래픽을정의하는데사용 1999 년부터 W3C 에의하여표준 SVG 의장점 SVG 그래픽은확대되거나크기가변경되어도품질이손상되지않는다. SVG 파일에서모든요소와속성은애니메이션이가능하다. SVG 이미지는어떤텍스트에디터로도생성하고편집할수있다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Html 은웹에서 text, images, movie 등다양한정보의요소를 담을수있는문서형식이다. 정보 (txt, imges) 전송 = 동일한어플리케이션 = 정보 (txt, imges) 정보 (txt, imges Movie, 동작 ) 정보 (txt, imges movie) 어플리케이션 웹브라우저 HTML5 는기존 HTML 에차별화된특징을가진 최신버전의웹표준언어.

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

Microsoft PowerPoint - Ajax

Microsoft PowerPoint - Ajax 박태정 [akasha.park@gmail.com] 1 Ajax(Asynchronous JavaScript) JavaScript 에의한비동기적인통신으로 XML 기반의데이터를클라이언트인웹브라우저와서버사이에서교환 페이지의이동없이웹브라우저화면을동적변경 Ajax 장점 서버측의부담중일부를웹클라이언트에게넘겨주게되어서버어플리케이션성능향상 웹브라우저는요청을송신하면응답을기다리지않는다

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 4 장. JSP 의구성요소와스크립팅요소 제 4 장 스크립팅요소 (Scripting Element) 1) 지시문 (Directive) 1. JSP 구성요소소개 JSP 엔진및컨테이너, 즉 Tomcat 에게현재의 JSP 페이지처리와관련된정보를전달하는목적으로활용 (6 장 )

More information

PowerPoint Presentation

PowerPoint Presentation WordPress 를이용한웹사이트만들기 2015 년 한지웅 WordPress 를이용한웹사이트만들기 Day 1 Day 2 Day 3 Day 4 Day 5 1. 웹사이트제작기초 HTLM 기본 CSS 기본 WordPress 개론 ( 웹사이트구축툴 ) 2. 웹호스팅 / 웹사이트구축 웹호스팅업체선택 cpanel 설정 WordPress 설치 3. WordPress 기초활용

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. 기술문서 14. 11. 10. 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 dokymania@naver.com I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라. Exploit 5 마. 피해 6 III. 결론 6 가. 권고사항 6 I. 소개 가. 역자 본문서는

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 예외처리 배효철 th1g@nate.com 1 목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생 예외와예외클래스 구문오류 예외와예외클래스 구문오류가없는데실행시오류가발생하는경우 예외와예외클래스 import java.util.scanner; public class ExceptionExample1

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공 메신저의새로운혁신 채팅로봇 챗봇 (Chatbot) 입문하기 소 이 메 속 : 시엠아이코리아 름 : 임채문 일 : soulgx@naver.com 1 목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper

More information

XML

XML 블로그 : http://blog.naver.com/jyeom15 홈페이지 : http://www.iwebnote.com/~jinyoung 엄짂영 이저작물은참고문헌을토대로 엄짂영 이재가공하였습니다. 내용의읷부는참고문헌의저작권자에게있음을명시합니다. 이저작물의읶용이나배포시이점을명시하여저작권침해에따른불이익이없도록하기시바랍니다. 위사항을명시하는핚자유롭게배포하실수있습니다.

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른 JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른 URL로바꿀수있다. 예 ) response.sendredirect("http://www.paran.com");

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - lec2.ppt 2008 학년도 1 학기 상지대학교컴퓨터정보공학부 고광만 강의내용 어휘구조 토큰 주석 자료형기본자료형 참조형배열, 열거형 2 어휘 (lexicon) 어휘구조와자료형 프로그램을구성하는최소기본단위토큰 (token) 이라부름문법적으로의미있는최소의단위컴파일과정의어휘분석단계에서처리 자료형 자료객체가갖는형 구조, 개념, 값, 연산자를정의 3 토큰 (token) 정의문법적으로의미있는최소의단위예,

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

14-Servlet

14-Servlet JAVA Programming Language Servlet (GenericServlet) HTTP (HttpServlet) 2 (1)? CGI 3 (2) http://jakarta.apache.org JSDK(Java Servlet Development Kit) 4 (3) CGI CGI(Common Gateway Interface) /,,, Client Server

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

Semantic Consistency in Information Exchange

Semantic Consistency in Information Exchange 제 6 장제어 (Control) 6.1 구조적프로그래밍 (Structured Programming) 6.2 예외 (Exceptions) Reading Chap. 7 숙대창병모 1 6.1 구조적프로그래밍 숙대창병모 2 Fortran 제어구조 10 IF (X.GT. 0.000001) GO TO 20 11 X = -X IF (X.LT. 0.000001) GO TO

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information