자바 개발자를 위한 xml

39
자자 자자자자 자자 자자 자자자자 자자 XML XML Chap2. DTD Chap2. DTD XML XML 와와 와와 와와와 와와와

Upload: mariko-burke

Post on 03-Jan-2016

53 views

Category:

Documents


0 download

DESCRIPTION

자바 개발자를 위한 XML. Chap2. DTD 와 XML 문서 김만수. CHAPTHER 2. DTD 와 XML 문서 DTD 소개 원소 선언 속성 선언 엔티티 선언 노테이션 선언과 바이너리 데이터 처리명령어 주석 조건부 섹션 CDATA 섹션 DTD 설계 DTD 파서. 2.2 XML 문서 구조.

TRANSCRIPT

Page 1: 자바 개발자를 위한  XML

자바 개발자를 위한 자바 개발자를 위한 XMLXML

Chap2. DTDChap2. DTD 와 와 XML XML 문서문서

김만수김만수

Page 2: 자바 개발자를 위한  XML

CHAPTHER 2CHAPTHER 2 DTDDTD 와 와 XML XML 문서문서

DTD DTD 소개소개 원소 선언원소 선언 속성 선언속성 선언 엔티티 선언엔티티 선언 노테이션 선언과 바이너리 데이터노테이션 선언과 바이너리 데이터 처리명령어처리명령어 주석주석 조건부 섹션조건부 섹션 CDATA CDATA 섹션섹션 DTD DTD 설계설계 DTD DTD 파서파서

Page 3: 자바 개발자를 위한  XML

2.2 XML 2.2 XML 문서 구조문서 구조

<?xml version=“1.0” encoding=“euc-kr”?<?xml version=“1.0” encoding=“euc-kr”?

<!DOCUMENT memo [ <!ELEMENT memo (to, …)> ?]>

<!DOCUMENT memo [ <!ELEMENT memo (to, …)> ?]>

<memo> <to what=“name”> 홍길동 </to> <date>2002/04/05</date> <contents> 여자 친구로부터 전화 요망 </contents> <from> 허준 </from></memo>

<memo> <to what=“name”> 홍길동 </to> <date>2002/04/05</date> <contents> 여자 친구로부터 전화 요망 </contents> <from> 허준 </from></memo>

XML 선언

DTD 선언( 생략가능 )

XML 문서 내용

서론서론(( 생략가능생략가능 ))

문서 내용문서 내용

Page 4: 자바 개발자를 위한  XML

2.2 XML 2.2 XML 문서 구조문서 구조

<?xml version="1.0" encoding="euc-kr" ?><greeting> 안녕하세요 .</greeting>

greeting.xml

Page 5: 자바 개발자를 위한  XML

2.2.1 XML 2.2.1 XML 선언 부분선언 부분

versionversion 사용되는 사용되는 XML XML 버전을 반드시 명시버전을 반드시 명시

encodingencoding 데이터 인코딩에 사용되는 문자 세트 기술데이터 인코딩에 사용되는 문자 세트 기술

standalongstandalong 외부 엔티티나 외부 데이터 타입을 사용하는지 여부 기술외부 엔티티나 외부 데이터 타입을 사용하는지 여부 기술 외부 엔티티를 사용하지 않으면 “외부 엔티티를 사용하지 않으면 “ yes”yes”

<?xml version=“1.0” encoding=“euc-kr” standalong=“yes”?><?xml version=“1.0” encoding=“euc-kr” standalong=“yes”?>

Page 6: 자바 개발자를 위한  XML

2.2.1 XML 2.2.1 XML 선언 부분선언 부분 용어 정리용어 정리

잘 정의된잘 정의된 (well-formed) : XML (well-formed) : XML 문법 사항을 지킨 문서문법 사항을 지킨 문서 유효한유효한 (valid) : XML (valid) : XML 문서가 잘 정의되어 있으면서문서가 잘 정의되어 있으면서 , , 문서 내용이 문서 내용이

DTD DTD 규칙에 맞게 작성된 문서규칙에 맞게 작성된 문서 엔티티엔티티 (entity) : XML(entity) : XML 에서 정보의 단위에서 정보의 단위 원소원소 // 태그태그 // 속성속성

<to what = “name”><to what = “name”> 홍길동홍길동</to></to>

원소시작태그

속성

내용

끝 태그

Page 7: 자바 개발자를 위한  XML

2.2.2 DTD 2.2.2 DTD 선언 부분선언 부분 DTD (Document Type Definition)DTD (Document Type Definition)

XML XML 문서의 구조문서의 구조 XML XML 문서에서 사용할 수 있는 원소문서에서 사용할 수 있는 원소 , , 속성속성 , , 엔티티 등을 정의엔티티 등을 정의 XML XML 문서는 문서는 DTDDTD 를 사용할 수 있거나를 사용할 수 있거나 , , 무시 할 수 있음무시 할 수 있음

DTDDTD 의 필요성의 필요성 문서의 형태를 정형화된 방법으로 선언 – 표준화문서의 형태를 정형화된 방법으로 선언 – 표준화 문서 내용이 올바른 구조로 되어 있는지 검사 가능문서 내용이 올바른 구조로 되어 있는지 검사 가능 XML XML 문서에서 꼭 필요한 원소와 속성을 반드시 기술하도록 만들 문서에서 꼭 필요한 원소와 속성을 반드시 기술하도록 만들

수 있음수 있음 속성에 디폴트 값을 부여속성에 디폴트 값을 부여

Page 8: 자바 개발자를 위한  XML

2.2.2 DTD 2.2.2 DTD 선언 부분선언 부분 DTD DTD 사용 방법 사용 방법 (p. 2-6 (p. 2-6 참조참조 ))

XML XML 문서 내에서 문서 내에서 DTD DTD 선언선언

외부 파일로 외부 파일로 DTDDTD 를 선언를 선언

외부 외부 DTDDTD 와 내부 와 내부 DTDDTD 를 같이 사용하는 방법를 같이 사용하는 방법

<!DOCTYPE memo [<!DOCTYPE memo [……]>]>

<!DOCTYPE memo SYSTEM “memo.dtd”><!DOCTYPE memo SYSTEM “memo.dtd”>

<!DOCTYPE car SYSTEM “car.dtd”<!DOCTYPE car SYSTEM “car.dtd”[[ <!ENTITY % ownership “(name, phone, addr)”><!ENTITY % ownership “(name, phone, addr)”> <!ATTLIST model<!ATTLIST model maker CDATA #REQUIREDmaker CDATA #REQUIRED >>]>]>

Page 9: 자바 개발자를 위한  XML

2.2.2 DTD 2.2.2 DTD 선언 부분선언 부분 DTD DTD 선언선언

원소 선언원소 선언 , , 속성 선언 등 다양한 내용속성 선언 등 다양한 내용 원소 선언원소 선언 (element declaration)(element declaration)

XML XML 문서에서 사용될 태그들과 태그들 사이의 포함 관계 및 문서에서 사용될 태그들과 태그들 사이의 포함 관계 및 순서를 기술순서를 기술

<!ELEMENT .. ><!ELEMENT .. > 속성 선언속성 선언 (attribute declaration)(attribute declaration)

원소에서 사용될 수 있는 속성의 이름과 디폴트 값에 관한 원소에서 사용될 수 있는 속성의 이름과 디폴트 값에 관한 사항들을 기술사항들을 기술

<!ATTLIST .. ><!ATTLIST .. > 엔티티 선언엔티티 선언

<!ENTITY .. ><!ENTITY .. >

Page 10: 자바 개발자를 위한  XML

2.2.2 DTD 2.2.2 DTD 선언 부분선언 부분 DTD DTD 선언선언

처리 명령어처리 명령어 (processing instruction)(processing instruction) 특수한 응용프로그램의 명령어특수한 응용프로그램의 명령어 (Processing Instruction)(Processing Instruction) 을 을

기술기술 <? ?><? ?>

노테이션 선언노테이션 선언 (notation declaration)(notation declaration) 데이터의 포맷이나 처리 명령어에서 기술된 응용프로그램의 데이터의 포맷이나 처리 명령어에서 기술된 응용프로그램의

이름을 식별하기 위해서 사용이름을 식별하기 위해서 사용 <!NOTATION ..> <!NOTATION ..>

Page 11: 자바 개발자를 위한  XML

2.2.3 XML 2.2.3 XML 문서 내용문서 내용 XML XML 문서 내용에는 실제 문서의 내용이 기술문서 내용에는 실제 문서의 내용이 기술

원소원소 (element) : (element) : 태그와 문서 내용을 기술태그와 문서 내용을 기술 속성속성 (attribute) : (attribute) : 원소에 포함되어서 원소에 대한 메타 원소에 포함되어서 원소에 대한 메타

정보를 기술정보를 기술 주석주석 (comment) : (comment) : 문서의 주석을 기술문서의 주석을 기술 처리 명령어처리 명령어 (processing instruction)(processing instruction) 엔티티 참조엔티티 참조 (entity reference) : (entity reference) : 엔티티를 참조해서 엔티티를 참조해서

사용사용 CDATA CDATA 섹션섹션 (CDATA Section) : <, &, ? (CDATA Section) : <, &, ? 등의 문자를 등의 문자를

포함하는 데이터를 편리하게 기술하기 위해서 사용포함하는 데이터를 편리하게 기술하기 위해서 사용

Page 12: 자바 개발자를 위한  XML

2.2.3 XML 2.2.3 XML 문서 내용문서 내용 XML XML 문서 요소들문서 요소들

XML XML 문서에는 오직 하나의 루트 원소가 존재문서에는 오직 하나의 루트 원소가 존재

Document

Element(Attribute)

Text Comment CData ProcessingInstruction

Element(Attribute) Text

EntityReference

ProcessingInstruction

Comment

EntityReference Entity

ProcessingInstruction

CData Comment

Page 13: 자바 개발자를 위한  XML

2.2.4 memo.xml2.2.4 memo.xml

memo 구 조

to date c ontents from

memo

to

date

contents

from

memo

Page 14: 자바 개발자를 위한  XML

2.3 DTD 2.3 DTD 소개소개 DTD DTD 선언의 요소들선언의 요소들

내부 내부 DTD + DTD + 외부 외부 DTD DTD 파일 참조 사용 가능파일 참조 사용 가능 외부 외부 DTD DTD 선언의 내용을 재정의 하거나 추가 가능선언의 내용을 재정의 하거나 추가 가능

DTD 선언

원소선언

속성선언

주석 조건부 섹션 엔티티 선언

처리 명령어

노테이션 명령

<!ELEMENTdata(#PCDATA)>

<!ATTLIST date start CDTA>

<!- - 주석부분- - >

<![INCLUDE[....]]>

<!ENTITYgreeting"Hello">

<?applicaion data ?>

<!NOTATION GIF SYSTEM "C:\viewer.exe"

Page 15: 자바 개발자를 위한  XML

2.3.1 2.3.1 내부 내부 DTDDTD DTD DTD 선언선언

<!DOCTYPE Name [ <!DOCTYPE Name [ 마크업선언마크업선언 *]>*]>

마크업선언마크업선언 원소선언원소선언 || 속성선언속성선언 || 엔티티선언엔티티선언 || 노테이션선언노테이션선언 ||PIPI|| 주석주석

•Parsed Character Data

•XML 의 특수 문자를 제외한 임의의 문자가 올 수 있음

Page 16: 자바 개발자를 위한  XML

2.3.1 2.3.1 내부 내부 DTDDTD

•‘to’ Element 의 속성 중 ‘ what’ 은 반드시 기술 해야 함•IE 는 XML 문서가 DTD 에 유효한가를 체크하지 않음

Page 17: 자바 개발자를 위한  XML

2.3.2 2.3.2 외부 외부 DTDDTD

외부 외부 DTD DTD 사용의 필요성사용의 필요성 공통된 공통된 DTDDTD 를 여러 를 여러 XMLXML 에서 공유할 수 있음에서 공유할 수 있음

DTD DTD 선언선언 <!DOCTYPE <!DOCTYPE NameName 외부외부 IDID>>

외부 외부 IDID SYSTEM SYSTEM URLURL | PUBLIC | PUBLIC PubidLiteral SystemLiteralPubidLiteral SystemLiteral

예제 예제 p. 2-11p. 2-11

Page 18: 자바 개발자를 위한  XML

2.4 2.4 원소 선언원소 선언 원소선언원소선언

<!ELEMENT <!ELEMENT element-nameelement-name contentscontents>> contentscontents

EMPTY | ANY | EMPTY | ANY | mixedmixed | | childrenchildren

EMPTYEMPTY 시작태그와 끝 태그 사이에 어떠한 내용도 들어가지 않을 때 시작태그와 끝 태그 사이에 어떠한 내용도 들어가지 않을 때 사용사용

ANYANY ANY ANY 키워드는 시작 태그와 끝 태그 사이에 문자 데이터와 키워드는 시작 태그와 끝 태그 사이에 문자 데이터와 다른 원소들이 임의로 들어갈 수 있을 때 사용다른 원소들이 임의로 들어갈 수 있을 때 사용

childrenchildren 시작 태그와 끝 태그 사이에 다른 원소가 들어감시작 태그와 끝 태그 사이에 다른 원소가 들어감mixedmixed 문자 데이터와 다른 원소들이 같이 섞여서 사용문자 데이터와 다른 원소들이 같이 섞여서 사용

Page 19: 자바 개발자를 위한  XML

2.4.3 2.4.3 자식 노드만을 가질 때 자식 노드만을 가질 때 - - childrenchildren

childrenchildren 은 별도의 키워드를 가지지 않음은 별도의 키워드를 가지지 않음 선언 예선언 예

<!ELEMENT memo(to, date, contents, from)><!ELEMENT memo(to, date, contents, from)> <!ELEMENT spec(front, body, back?)><!ELEMENT spec(front, body, back?)> <!ELEMENT div1(head, (p|list|note)*, div2*><!ELEMENT div1(head, (p|list|note)*, div2*>

기호기호 의미의미,, 고정된 순서 지정고정된 순서 지정|| 선택선택 (( 하나만 사용할 수 있다하나만 사용할 수 있다 ))

++ 11 번 이상 반복번 이상 반복** 00 번 이상 반복번 이상 반복?? 옵션옵션 (1(1 번 혹은 번 혹은 00 번번 ))

()() 그룹화그룹화

Page 20: 자바 개발자를 위한  XML

2.5 2.5 속성 선언속성 선언 속성 리스트속성 리스트 (ATTLIST) (ATTLIST) 선언선언

원소의 속성을 정의하기 위해서 사용원소의 속성을 정의하기 위해서 사용 원소의 이름과 속성 이름원소의 이름과 속성 이름 , , 속성의 타입 및 디폴트 값 기술속성의 타입 및 디폴트 값 기술 <!ATTLIST <!ATTLIST element-nameelement-name attr-nameattr-name attr-typeattr-type default-decldefault-decl>>

attr-typeattr-type CDATA : CDATA : 임의의 문자열을 가짐임의의 문자열을 가짐 토큰 토큰 : ID, IDREF, IDREFS, ENTITY, ENTITYES, NMTOKEN, NMTOK: ID, IDREF, IDREFS, ENTITY, ENTITYES, NMTOKEN, NMTOK

ENSENS 의 키워드 중에서 하나를 사용의 키워드 중에서 하나를 사용 열거형 열거형 : DTD : DTD 개발자가 정해놓은 여러 개의 속성 값들 중에 개발자가 정해놓은 여러 개의 속성 값들 중에

하나를 사용하나를 사용

Page 21: 자바 개발자를 위한  XML

2.5 2.5 속성 선언속성 선언 CDATACDATA

속성의 값이 문자열 타입속성의 값이 문자열 타입 XMLXML 의 특수 문자들은 사용 불가능의 특수 문자들은 사용 불가능 <!ATTLIST to <!ATTLIST to

what CDATA #REQUIREDwhat CDATA #REQUIRED>>

Page 22: 자바 개발자를 위한  XML

2.5 2.5 속성 선언속성 선언 토큰 타입토큰 타입

ID, IDREF, IDREFSID, IDREF, IDREFS <!ATTLIST termdef<!ATTLIST termdef

idid IDID #RE#REQUIREDQUIRED

whowho IDREFIDREF #RE#REQUIREDQUIRED

peoplespeoples IDREFSIDREFS #REQUIRED#REQUIREDnamename CDATACDATA #IMPLIED>#IMPLIED>

IDID XML XML 문서에서 원소를 유일하게 식별할 수 있게 속성 값을 지정문서에서 원소를 유일하게 식별할 수 있게 속성 값을 지정

IDREF, IDREFSIDREF, IDREFS XML XML 문서에서 문서의 다른 부분을 지칭이 필요 때 사용문서에서 문서의 다른 부분을 지칭이 필요 때 사용 IDREFSIDREFS 는 여러 개의 는 여러 개의 IDID 를 지칭 가능를 지칭 가능

예제 예제 p. 2-30p. 2-30

Page 23: 자바 개발자를 위한  XML

2.5 2.5 속성 선언속성 선언 열거형 타입열거형 타입

종류종류 주어진 값들 중에서 하나를 선택하는 타입주어진 값들 중에서 하나를 선택하는 타입 NOTATION NOTATION 타입타입

<!ATTLIST to<!ATTLIST towhat (name | title | nickname) “name”what (name | title | nickname) “name”

>>

속성의 디폴트 값 선언속성의 디폴트 값 선언 #REQUIRED : #REQUIRED : 속성 값을 반드시 명시속성 값을 반드시 명시 #IMPLIED : #IMPLIED : 속성의 디폴트 값이 없음속성의 디폴트 값이 없음 ((#FIDEX) ? AttValue : ((#FIDEX) ? AttValue : 속성의 디폴트 값을 명시속성의 디폴트 값을 명시

Page 24: 자바 개발자를 위한  XML

2.5 2.5 속성 선언속성 선언 속성의 디폴트 값 선언속성의 디폴트 값 선언

#REQUIRED#REQUIRED <!ATTLIST to<!ATTLIST to

what CDATA #REQUIREDwhat CDATA #REQUIRED>>

#IMPLIED#IMPLIED <!ATTLIST termdef<!ATTLIST termdef

name CDATA #IMPLIEDname CDATA #IMPLIED>>

#FIXED#FIXED <!ATTLIST from<!ATTLIST from

method CDTA #FIXED “POST”>method CDTA #FIXED “POST”> <!ATTLIST list<!ATTLIST list

type (bullets | ordered | glossary) “ordered”>type (bullets | ordered | glossary) “ordered”>

Page 25: 자바 개발자를 위한  XML

2.6 2.6 엔티티 선언엔티티 선언 EntityEntity

XML XML 문서에서 정보의 단위문서에서 정보의 단위 참조될 수 있도록 이름을 가짐참조될 수 있도록 이름을 가짐 문자문자 , , 문장문장 , , 혹은 파일이 하나의 단위가 됨혹은 파일이 하나의 단위가 됨 Entity Entity 선언을 통해서 정의선언을 통해서 정의

문자 단위의 문자 단위의 EntityEntity

& ; #숫자 : 10진수 문자 코드

#x숫자 : 16진수 문자 코드#문자 : 정의된 Entity 참조

Page 26: 자바 개발자를 위한  XML

2.6 2.6 엔티티 선언엔티티 선언엔티티 참조엔티티 참조 의 미의 미

&amp;&amp; &&

&lt;&lt; <<

&gt;&gt; >>

&apos;&apos; ‘‘

&quot;&quot; ““

엔티티

일반 엔티티 파라메터 엔티티

내부 엔티티 외부 엔티티

파싱된 엔티티 파싱된 엔티티 파싱안된 엔티티

내부 엔티티 외부 엔티티

엔티티 분류

Page 27: 자바 개발자를 위한  XML

2.6 2.6 엔티티 선언엔티티 선언 일반 엔티티일반 엔티티

프로그래밍 언어에서 매크로와 유사프로그래밍 언어에서 매크로와 유사 DTDDTD 에서 일반 엔티티를 선언에서 일반 엔티티를 선언 XML XML 문서 내용중에서 엔티티 참조를 이용해서 엔티티 사용문서 내용중에서 엔티티 참조를 이용해서 엔티티 사용 <!ENTITY <!ENTITY namename valuevalue > >

Page 28: 자바 개발자를 위한  XML

2.6 2.6 엔티티 선언엔티티 선언

Page 29: 자바 개발자를 위한  XML

2.6 2.6 엔티티 선언엔티티 선언 파라메터 엔티티파라메터 엔티티

DTD DTD 내부에서만 사용할 수 있는 엔티티내부에서만 사용할 수 있는 엔티티 일반 엔티티 선언 방법이 다름일반 엔티티 선언 방법이 다름 <!ENTITY % <!ENTITY % namename valuevalue>> 파라메터 엔티티 참조 방법파라메터 엔티티 참조 방법

%%namename;;

Page 30: 자바 개발자를 위한  XML

2.6 2.6 엔티티 선언엔티티 선언 외부 엔티티외부 엔티티

외부 파일에 저장된 정보외부 파일에 저장된 정보 XML XML 문서문서 , , 바이너리 내용바이너리 내용 (.jpg, .mpg (.jpg, .mpg 등등 ) ) 등등 외부 엔티티의 위치는 시스템 식별자를 통해서 제공 – 외부 엔티티의 위치는 시스템 식별자를 통해서 제공 –

SYSTEMSYSTEM <!ENTITY mydata SYSTEM “my.xml”><!ENTITY mydata SYSTEM “my.xml”>

예예 . 2-40. 2-40

Page 31: 자바 개발자를 위한  XML

2.7 2.7 노테이션 선언과 바이너리 데이터노테이션 선언과 바이너리 데이터

XMLXML 문서에 사진문서에 사진 , , 동영상동영상 , , 음악 파일들음악 파일들 (Binary Data)(Binary Data) 을 을 모두 기술 가능모두 기술 가능

XML XML 문서는 텍스트 문서 문서는 텍스트 문서 Binary DataBinary Data 는 외부 파일로 는 외부 파일로 저장하고 연결저장하고 연결

NotationNotation Binary DataBinary Data 를 어떻게 처리 할 것인지를 지정를 어떻게 처리 할 것인지를 지정 <!NOTATION name (<!NOTATION name ( 외부외부 IDID | | 공용공용 IDID)>)> 외부 외부 IDID

SYSTEM SYSTEM 키워드를 사용해서 키워드를 사용해서 Binary DataBinary Data 를 처리 할 수 있는 응용 를 처리 할 수 있는 응용 프로그램을 명시프로그램을 명시

공용공용 IDID 표준화된 표준화된 Binary DataBinary Data 일 경우 일 경우 PUBLIC PUBLIC 키워드를 사용키워드를 사용

예예 <!NOTATION gif SYSTEM “C:\gifviewer.exe”><!NOTATION gif SYSTEM “C:\gifviewer.exe”>

Page 32: 자바 개발자를 위한  XML

2.7 2.7 노테이션 선언과 바이너리 데이터노테이션 선언과 바이너리 데이터

Binary Data XML Binary Data XML 문서에서 직접 사용 못함문서에서 직접 사용 못함 EntityEntity 를 선언해서 속성의 값으로만 사용 가능를 선언해서 속성의 값으로만 사용 가능 <!ENTITY mypic SYSTEM “mypic.gif” NDATA gif><!ENTITY mypic SYSTEM “mypic.gif” NDATA gif>

NDATA gifNDATA gif 는 는 <!NOTATAION gif … > <!NOTATAION gif … > 를 의미를 의미 선언된 선언된 Binary EntityBinary Entity 와 파싱되는 와 파싱되는 EntityEntity 는 차이점는 차이점

파싱되는 파싱되는 Entity : Entity : 문서에서 직접 참조 가능문서에서 직접 참조 가능 선언된 선언된 Binary Entity : Binary Entity : 속성의 값으로만 사용속성의 값으로만 사용 , & ;, & ; 를 붙이지 를 붙이지

않음않음

Page 33: 자바 개발자를 위한  XML

2.7 2.7 노테이션 선언과 바이너리 데이터노테이션 선언과 바이너리 데이터

Notation 과 Binary Data Entity 를 정의

Binary Data Entity 는 속성 값으로만 사용

XML 문서에서 Binary Data 사용

Page 34: 자바 개발자를 위한  XML
Page 35: 자바 개발자를 위한  XML

2.8 2.8 처리 명령어처리 명령어(PI : Processing Instruction)(PI : Processing Instruction) DTD DTD 부분과 부분과 XML XML 문서 내용 부분에서 모두 사용문서 내용 부분에서 모두 사용 XML XML 자신의 문서를 어떻게 처리 하라는 정보를 문서 자신의 문서를 어떻게 처리 하라는 정보를 문서

처리 응용프로그램에게 전달처리 응용프로그램에게 전달 처리명령어처리명령어

<? <? 응용프로그램이름응용프로그램이름 응용프로그램명령어응용프로그램명령어 ?>?> 응용프로그램이름응용프로그램이름

예예 <?xml-stylesheet type=“text/css” href=“style.css” ?><?xml-stylesheet type=“text/css” href=“style.css” ?> <?xml-sytlesheet type=“text/xsl” href=“style.xsl” ?><?xml-sytlesheet type=“text/xsl” href=“style.xsl” ?>

Page 36: 자바 개발자를 위한  XML

2.9 2.9 주석주석 DTDDTD 와 와 XML XML 문서 내용 모두 사용 가능문서 내용 모두 사용 가능 TagTag 안에서는 사용될 수 없음안에서는 사용될 수 없음 일반 엔티티 선언일반 엔티티 선언

<!-- <!-- 주석내용 주석내용 -->-->

예예 <greeting> <greeting> 안녕하세요 안녕하세요 </greeting> <!-- </greeting> <!-- 잘못된 주석 잘못된 주석

--> >--> >

Page 37: 자바 개발자를 위한  XML

2.10 2.10 조건부 섹션조건부 섹션 DTDDTD 의 일부분을 포함시키거나의 일부분을 포함시키거나 , , 제외시킬 수 있는 제외시킬 수 있는

기능기능 조건부 섹션조건부 섹션

<![keyword[ … ]]><![keyword[ … ]]>

Page 38: 자바 개발자를 위한  XML

2.11 CDATA 2.11 CDATA 섹션섹션 XML XML 문서 내용에서만 사용문서 내용에서만 사용 XMLXML 의 특수 문자를 사용할 수 있음의 특수 문자를 사용할 수 있음

<![CDTA[ … ]]><![CDTA[ … ]]>

예예<script>

if (x &lt; 7 &amp;&amp; x &gt; 5) {

alert(“x = 6”);

}

/script>

<script><![CDATA[

if (x < 7 && x > 5) {alert(“x = 6”);

}

]]>/script>

Page 39: 자바 개발자를 위한  XML

2.12 DTD 2.12 DTD 설계설계 일반적인 방법론일반적인 방법론

재사용과 재정의재사용과 재정의 Parameter EntityParameter Entity 를 사용를 사용 , , 수정을 용의수정을 용의 예 예 p. 5-53p. 5-53

컴포지션에 의한 재사용컴포지션에 의한 재사용 기존의 기존의 DTDDTD 를 활용하여 더 넓은 개념에서 기존의 를 활용하여 더 넓은 개념에서 기존의

DTDDTD 를 를 child child 구조로 수용구조로 수용 예 예 p. 5-56p. 5-56