Presentation is loading. Please wait.

Presentation is loading. Please wait.

9 주 실습강의 XML Visualization(1) 2009. 1 학기, 소프트웨어 설계 및 실험 ( Ⅰ )

Similar presentations


Presentation on theme: "9 주 실습강의 XML Visualization(1) 2009. 1 학기, 소프트웨어 설계 및 실험 ( Ⅰ )"— Presentation transcript:

1 9 주 실습강의 XML Visualization(1) 2009. 1 학기, 소프트웨어 설계 및 실험 ( Ⅰ )

2 Artificial Intelligence Laboratory 실습목표

3 Artificial Intelligence Laboratory 프로그램에서 XML 문서 이용 방법  DOM  Document Object Model  XML 문서를 Object 의 개념으로 생각  문서를 한번에 읽어서 처리 ( 수정, 삭제 용이 )  SAX  Simple API for XML  이벤트 중심의 방법  문서를 순차적으로 읽음 ( 속도, 메모리 측면에서 효율적 )  문서 전체 구조정보를 가지지 않음

4 Artificial Intelligence Laboratory XML DOM (Document Object Model)

5 Artificial Intelligence Laboratory XML SAX(Simple API for XML)

6 Artificial Intelligence Laboratory DOM VS SAX

7 Artificial Intelligence Laboratory XML Parser  Xerces  http://xerces.apache.org/xerces-c/ http://xerces.apache.org/xerces-c/  오픈 소스 XML 파서  IBM 에서 개발 (xml4c)  C++, Java, Perl 지원  현재 Apache 에서 개발 / 관리  현재 버전 Xerces-C++ 3.0.1

8 Artificial Intelligence Laboratory Xerces 설치  Xerces Download  http://xerces.apache.org/xerces-c/download.cgi http://xerces.apache.org/xerces-c/download.cgi  xerces-c-3.0.1.zip (for windows)  압축해제  솔루션 실행  ~\xerces-c-3.0.1\projects\Win32\VC9\xerces-all\Xerces-all.sin  Build ( 빌드 -> 솔루션빌드 단축키 F6)  ~\xerces-c-3.0.1\Build\Win32\VC9\Debug\xerces-c_3_0D.dll 생성

9 Artificial Intelligence Laboratory Xerces 사용법  새 프로젝트 생성 ( VC++ Win32 Console Application)  추가 옵션에서 빈 프로젝트 체크  프로젝트에서 main.cpp 추가  프로젝트 속성 설정  C/C++ -> 일반 -> 추가 포함 디렉터리  ~\xerces-c-3.0.1\src 추가  링커 -> 일반 -> 추가 라이브러리 디렉터리  ~\xerces-c-3.0.1\Build\Win32\VC9\Debug 추가  ~\xerces-c-3.0.1\Build\Win32\VC9\Debug\xerces-c_3_0D.dll  프로젝트 폴더에 복사  링커 -> 입력 -> 추가종속성  Xerces-c_3D.lib 추가

10 Artificial Intelligence Laboratory Xerces 사용법  실행 테스트 #include int main(int argc, char * argv){ return 0; }

11 Artificial Intelligence Laboratory XML Handler 생성  Handler Class 생성  클래스 뷰 -> 프로젝트 추가 -> 클래스  C++ 클래스  클래스 이름 설정 (ex SAXHandler)  기본클래스 DefaultHandler  “ 예 ” 클릭  #include 추가  DefaultHandler Interface  #include 추가  XECES_CPP_NAMESPACE_USE 추가  namespace

12 Artificial Intelligence Laboratory

13  DefaultHandler  Handler Class 의 기본 모델  SAX Parser 를 사용하기 위한 base class  DefaultHandler Class 를 상속하여 Interface 함수를 재정의 하여 사용

14 Artificial Intelligence Laboratory  DefaultHandler 의 주요 메서드  http://xerces.apache.org/xerces-c/apiDocs-3/classDefaultHandler.html http://xerces.apache.org/xerces-c/apiDocs-3/classDefaultHandler.html virture void startDocument() virture void endDocument() virture void startElement( const XMLCh *const uri,XMLCh const XMLCh *const localname,XMLCh const XMLCh *const qname,XMLCh const Attributes &attrs)Attributes virture void endElement( const XMLCh *const uri,XMLCh const XMLCh *const localname,XMLCh const XMLCh *const qname)XMLCh virture characters( const XMLCh *const chars,XMLCh const XMLSize_t length)XMLSize_t

15 Artificial Intelligence Laboratory  startDocument() 함수 추가  클래스 뷰 -> HanderClass 우클릭 -> 추가 -> 함수 추가  반환 형식 void  함수 이름 startDocument()  마침  endDocument() 함수 추가  각각 문서의 시작과 끝에 자동으로 호출됨.

16 Artificial Intelligence Laboratory  Main 작성

17 Artificial Intelligence Laboratory  Main

18 Artificial Intelligence Laboratory 추가구현 The Confidence Man Output ElementStart=book AttributeQName=genre AttributeValue=novel ElementStart=title TextValue=The Confidence Man ElementEnd=title ElementEnd=book

19 Artificial Intelligence Laboratory 추가구현  Element  XMLString::transcode(qname)  qname 의 값 출력.  Attribute  attribute.getLength()  Attribute 개수.  attribute.getQName(index)  Attribute QName  attribute.getValue(index)  Attribute Value


Download ppt "9 주 실습강의 XML Visualization(1) 2009. 1 학기, 소프트웨어 설계 및 실험 ( Ⅰ )"

Similar presentations


Ads by Google