1 / 9

XML with JAVA

XML with JAVA. chapter 12 : SAX Ⅰ. 학습목표. SAX 파서의 용도 SAX 파서 객체 생성 이벤트 핸들러 ContentHandler DTDHandler EntityResolver ErrorHandler DefaultHandler. SAX 의 용도. SAX 용도

sheryl
Download Presentation

XML with JAVA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML with JAVA

  2. chapter 12 : SAX Ⅰ

  3. 학습목표 • SAX 파서의 용도 • SAX 파서 객체 생성 • 이벤트 핸들러 • ContentHandler • DTDHandler • EntityResolver • ErrorHandler • DefaultHandler

  4. SAX의 용도 • SAX 용도 • : DOM 과 같이 XML 문서를 해석하는 파서 형태로서 DOM 은 XML 문서를 읽어들여 메모리에 로드하기 때문에 문서가 커질 경우 비효율적이다 • . SAX는 문서 내용을 메모리에 로드 하지 않고 이밴트 핸들러를 이용하므로 훨씬 효율적이다. DTDHandler ContentHandler XML SAX 파서 이벤트 EntityResolver ErrorHandler

  5. SAX 파서 객체 생성 • 파서객체 생성 SAXParserFactory saxpf = SAXParserFactory.newInstance(); SAXParser saxp = saxpf.newSAXParser(); • ContentHandler 마크업이나 문자 데이터를 만났을 때 호출 • 지원메소드 public void startElement(String uri,String localName,String qName,Attributes atts ) uri : 네임 스페이스 uri localName : 네임 스페이스 접두사를 제외한 이름 qName : 네임 스페이스 접두사를 포함한 이름 atts : 속성

  6. 이벤트 핸들러 public void characters(char[] ch,int start int length) ch : xml 문서에 있는 char 배열 start : 이벤트가 발생한 문자 시작 위치 length : 문자 길이 Public void stopElement(String uri,String localName,String qName) • ContentHandler 등록 • MyHandler my = new MyHandler(); • xReader.setContentHandler(my); 예제소스(ch12_1.java)

  7. 이벤트 핸들러 • DTDHandler • 지원메소드 • Public void notationDecl(String name,String publicId,String systemId) • name : 노테이션 명 • publicId : public 식별자 • systemId : system 식별자 • Public void unparsedEntityDecl(String name,String publicId,String systemId,String notationName) • name : 엔티티 이름 • notationName : 노테이션 명 • DTDHandler 객체 등록 • MyHandler my = new MyHandler(); • xReader.setDTDHandler(my); • 예제참조(ch12_2.java,My2Handler.java,NotationDecl.java,UnparsedEntityDecl.java)

  8. 이벤트 핸들러 • EntityResolver 인터페이스 Public InputSource resolveEntity(String publicId,String systemId) 외부 일반 파스드 엔티티를 만났을 때 실행되는 메소드. 예제참조(ch12_3.java,My3Handler.java,ch05_2.dtd,ch05_2_1.dtd,ch05_2.xml) • ErrorHandler 인터페이스 public void fatalError(SAXParserException exception) public void error(SAXParserException exception) public void warning(SAXParserException exception) 예제참조(ch12_4.java,My4Handler.java)

  9. 이벤트 핸들러 • DefaultHandler 클래스 ContentHandler,DTDHandler,EntityResolver,ErrorHandler 를 구현한 클래스, 따라서 모든 메서드를 구현할 필요없이 필요한 메서드만 사용할 수 있다. Defaulthandler 등록 saxp.parse(“xml 파일”,DefaultHandler 객체 참조변수) 예제참조(ch12_5.java)

More Related