390 likes | 564 Views
XML. chapter 09 : XML 과 자바 연동. 학습목표. XML 과 자바연동 위한 준비 XML Parser 종류 JAXP 란 ? SAX DOM. XML 과 자바연동. XML Parser ? : 작성된 XML 문서가 1) well-formed 문서인지 검사 2) valid 문서인지 검사 3) 응용프로그램이 실행할 수 있는 결과 제공. XML Parser 종류 DOM ( Document Object Model ) 파서
E N D
chapter 09 : XML과 자바 연동
학습목표 • XML과 자바연동 위한 준비 • XML Parser 종류 • JAXP 란? • SAX • DOM
XML과 자바연동 • XML Parser ? • : 작성된 XML문서가 • 1) well-formed 문서인지 검사 • 2) valid 문서인지 검사 • 3) 응용프로그램이 실행할 수 있는 결과 제공 • XML Parser 종류 • DOM ( Document Object Model ) 파서 • : Parser를 이용한 해석 결과를 메모리에 DOM 이라는 객체Tree 구조로 생성. • 2) SAX ( Simple API for XML ) 파서 • : 해석하면서 동시에 Event를 발생시킨다.
JAXP ( Java API for XML Processing) 란? • : DOM 파서와 SAX 파서를 만든 vendor에 독립적인 API. JAXP의 interfaces Xerces 파서는 J2SE 1.4부터 기본내장. DOM SAX • XML과 자바연동
Parser XML 문서 이벤트 처리방식 SAX파서 DOM파서 Tree 구조 방식 자바응용프로그램 • XML과 자바연동 JAXP
SAX 2.0 ( Simple API for XML )
EventHandler가 구현한 메소드 SAX 파싱 • XML과 자바연동 • SAX 2.0 • - 이벤트 기반의 XML 파서를 위한 interface. • - XML 문서전체를 처음부터 끝까지 차례대로 읽으면서 • 이벤트를 발생시켜 처리. ( 1회 순차적인 접근 ) • - 이벤트를 처리하는 EventHandler 가 존재 • - 저장 메커니즘이 필요하다.
XML과 자바연동 • SAX 2.0 핵심 package • : org.xml.sax : SAX의 핵심 패키지. • org.xml.sax.ext : SAX의 확장 패키지. • org.xml.sax.helpers : sax패키지의 구현클래스.
XML과 자바연동 org.xml.sax org.xml.sax.ext org.xml.sax.helpers
XML과 자바연동 Vendor 독립적
sax.xml 사용자 application DefaultHandler.class XML Parser SimpleSAXHandler.class SaxParserFactory • XML과 자바연동
XML과 자바연동 • Attributes 인터페이스 사용 예제 • : 엘리먼트의 속성관련. org.xml.sax.Attributes
XML과 자바연동 • Locator 인터페이스 사용 예제 • : Event와 관련된 위치정보를 제공 • : org.xml.sax.Locator Parsing 시작할 때 한번 호출
XML과 자바연동 • SAX 의 저장 메커니즘 구현
XML과 자바연동 • Validating SAX Parser 구현 • : DTD 또는 Schemas 을 이용한 XML인 경우에는 • setValidating( true ) : SAXParserFactory 구현한다. Valid 에러발생시 호출
DOM Level 2 ( Document Object Model )
XML과 자바연동 • DOM • - 객체 모델 기반의 XML 파서를 위한 interface. • - XML 문서전체를 파싱하여 메모리에 tree 구조로 • 만들어서 작업. • - 저용량의 XML 처리시 적합. • - XML 데이터구조 변경 ( 수정 , 삭제 , 삽입 )이 가능하다. (자식,자손,형제) 메모리 DOM 파싱
XML과 자바연동 • DOM 핵심 package • : org.w3c.dom : DOM의 핵심 패키지.
XML과 자바연동 • DOM 실습예제
XML과 자바연동 • DOM API 계층구조
XML과 자바연동 • DOM 파서의 parse 메소드
XML과 자바연동 • 1. “TomSmith”데이터 찾기 • whitespace( 공백문자 )를 제거하자. : DocumentBuilder 는 기본으로 공백을 Text 객체로 인식. : factory.setIgnoringElementContentWhitespace( true ); : 반드시 문서유형 선언이 필요 ( <!DOCTYPE )
XML과 자바연동 • 2. 마지막 자식 객체 찾기
XML과 자바연동 • 3. 형제 노드 찾기
XML과 자바연동 • 4. 속성값 얻기 • : getAttribute ( “속성명”);
XML과 자바연동 • 5. 동일 이름의 엘리먼트 객체 찾기 • : ele.getElementsByTagName( “tag명”) : NodeList
XML과 자바연동 • 6. DOM 객체 수정 • : Text 객체 수정 : text.setData( “변경Data” ); • : 속성 객체 수정 : ele.setAttribute( “속성명”,”값”); • DOM 객체를 수정한다고 해서 실제 XML 파일이 변경되는 것은 아니다. 단지 메모리에 저장된 값이 변경됨. 변경된 값을 XML 파일까지 적용을 시키려면 저장 작업이필요하다.
XML과 자바연동 • 7. DOM 객체 추가 • 1) 객체를 생성 : doc.createElement( “엘리먼트명”); • doc.createTextNode( “데이터”); • 2) 객체 붙이기 : ele.appendChild( childElement ); • 속성 객체일 경우에는 setAttribute( “속성명”,”값”)사용. • ( 속성이 있으면 수정. 없으면 생성 )
XML과 자바연동 • 8. DOM 객체 삭제 • : 부모 엘리먼트에서 자식엘리먼트를 삭제. • : ele.removeChild( childElement );
공부한 내용 • SAX & DOM