<?xml version="1.0" encoding="utf-8" ?>
<!--
엔티티(Entity)
- 미리 정의된 내용을 문서 실행 시 치환하는 요소
이스케이프 시퀀스와 비슷하다고 보면된다.
1. Built-in Entity
- < : <
- > : >
- & : &emp;
- " : "
- ' : '
2. 일반 내부 파스드 엔티티
- 문자열 변수
- 엔티티 선언은 내부 DTD에서 하고, 엔티티 사용은 XML에서..
3. 일반 외부 파스드 엔티티
4. 내부 파라미터 엔티티
-->
<!DOCTYPE booklist [
<!ELEMENT booklist (book+)>
<!ELEMENT book (title,author,nation)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ATTLIST author
nation CDATA #IMPLIED
>
<!ELEMENT nation (#PCDATA)>
<!ENTITY kr "한국"> <!-- string kr = "한국"; -->
<!--유지관리에 좋으다.-->
<!ENTITY en "미국">
<!ENTITY eg "영국">
]>
<!--<root>
<item><item>엘리먼트는 PCDATA를 자식으로 가집니다.</item>
</root>-->
<booklist>
<book>
<title>XML</title>
<author nation="&kr;">홍길동</author>
<nation>한국</nation>
</book>
<book>
<title>ASP.NET</title>
<author>마이클</author>
<nation>&en;</nation>
</book>
<book>
<title>C#</title>
<author>나카무라</author>
<nation>일본</nation>
</book>
<book>
<title>비쥬얼 베이직</title>
<author>찰스</author>
<nation>⪚</nation>
</book>
<book>
<title>죽기전에 100가지 해야할일</title>
<author>김소울</author>
<nation>한국</nation>
</book>
<book>
<title>한국여행</title>
<author>띠하오마</author>
<nation>중국</nation>
</book>
</booklist>
일반 외부 파스드 엔티티
일반 외부 파스드 엔티티
<?xml version="1.0" encoding="utf-8" ?>
<!--
Ex13_dtd.xml
3. 일반 외부 파스드 엔티티
- XML의 일부분을 재사용할 수 있음(치환) = 구조 + 데이터
-->
<!DOCTYPE booklist [
<!ELEMENT booklist (category, book+)>
<!ELEMENT category (item+)>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item
id ID #REQUIRED
>
<!ELEMENT book (title)>
<!ATTLIST book
id ID #REQUIRED
category IDREF #REQUIRED
>
<!ELEMENT title (#PCDATA)>
<!--
문서 자체를 지정 통째로 파일 내용을 가져온다.
문서를 모듈화 시킨다. 문서가 커다란것일 수록 쪼개고 쪼개고 쪼갠다..
-->
<!ENTITY category SYSTEM "Ex12_category.xml">
]>
<booklist>
&category;
<book id="b1" category="c1">
<title>XML</title>
</book>
<book id="b2" category="c1">
<title>ASP.NET</title>
</book>
<book id="b3" category="c2">
<title>삼국지</title>
</book>
<book id="b4" category="c3">
<title>백설공주</title>
</book>
</booklist>
외부 dtd
<?xml version="1.0" encoding="utf-8" ?>
<!--Ex12_dtd.xml-->
<category>
<item id="c1">프로그래밍</item>
<item id="c2">소설</item>
<item id="c3">동화</item>
</category>