제 1 강 Introduction to XML
ㅇ XML 응용을 만들기 위해서는
- DTD 선택 혹은 작성
- XML 문서 생성
- XML 문서 해석 (interpret)
- XML 문서 display
ㅇ DTD (Document Type Definition) 문서 선택 혹은 작성
- XML 문서안에 작성될 Tag
- Tag들 간의 포함관계
- Tag의 개수 및 순서
- Tag가 가질 수 있는 속성 (attribute) 및 값
ㅇ XML 문서 생성
- DTD를 template으로 하여 XML 문서 작성
- Tag rules
ㅁ begin tag와 end tag의 쌍을 유지해야 함 (올바른 예: <a> </a>)
ㅁ Text를 포함하지 않은 tag의 경우 축약 표현 가능 (예: <a/>와 <a> </a>는 동일)
ㅁ Tag를 overlap시킬 수는 없음 (잘못된 예: <a><b></a></b>)
- XML의 3가지 유형
ㅁ Invalid Documents: Tag rule을 따르지 않은 경우
ㅁ Well-Formed Documents: Tag rule을 따랐으나, DTD를 따르지 않은 경우
ㅁ Valid Documents: Tag rule과 DTD를 잘 따른 경우
ㅇ XML 문서 해석 (interpret)
- XML 문서 해석을 위한 API: DOM (Document Object Model) or SAX (Simple API for XML)
- DOM
ㅁ XML의 Tree 구조를 보여주는 (Tree View) W3C 표준
ㅁ XML 문서의 요소 (Element)들을 다룰 수 있는 기능들을 제공
ㅁ SAX 대비 훨씬 다양한 기능을 제공할 수 있음
- SAX
ㅁ XML 문서를 parsing하면서 특정 이벤트가 있을 경우 notify
ㅁ 불필요한 parsing을 막을 수 있음
ㅁ XML 문서의 일부 요소 (element)만 parsing 가능
ㅁ DOM 대비 메모리를 훨씬 적게 사용하므로 XML 문서가 매우 클 경우 유리
ㅇ XML 문서 display
- 브라우저를 통해 code 전체를 display
- XSL stylesheet를 이용하여 브라우저가 다룰 수 있는 형태로 XML을 변환 (transform)
- XSL stylesheet은 XML을 변환 (transform)할 수 있는 몇 가지 template을 포함함
ㅇ XML Parser
- Java
ㅁ IBM Parser: www.alphaWorks.ibm.com/tech/xml4j
ㅁ James Clark’s parser: www.jclark.com/xml/xp
ㅁ Sun’s XML parser: developer.java.sun.com/developer/products/xml/
ㅁ DataChannel’s XJParser: xdev.datachannel.com/downloads/xjparser/
- C++
ㅁ IBM’s XML4C parser: www.alphaWorks.ibm.com/tech/xml4c
ㅁ James Clark’s C++ parser: www.jclark.com/xml/expat.html
- Perl
ㅁ www.perlxml.com/faq/perl-xml-faq.html
- Python
ㅁ www.python.org/topics/xml/