Download presentation
Presentation is loading. Please wait.
Published byCarmel Glenn Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.