IT 이야기/XML 강좌

제 1 강 Introduction to XML

옥사마 2010. 3. 10. 14:46


ㅇ 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/