XML 문서를 처리할 수 있는 방법으로는 DOMSAX가 있다.

▣ DOM(Document Object Model)
W3C에서 제안된 마크업 언어를 위한 표준 API
트리 기반(Tree based)의 처리 방식
http://www.w3.org
▣ SAX(Simple API for XML)
XML-Dev Mailing List 회원들의 제안에 의해 탄생
이벤트 기반(Event based)의 처리 방식
현재 버전은 SAX 2.0
http://www.saxproject.org




출처 - novelxml








JAXP(Java API for XML Processing)는 XML을 처리하는 자바 API 중 하나이다. 주로 XML 문서의 유효성 검증과 분석을 위한 인터페이스를 제공한다. 주로 다음 2개의 기본 분석 인터페이스를 제공한다.

  • DOM 인터페이스
  • SAX 인터페이스

JAXP 1.4부터는 3번째 인터페이스를 추가하였다.

  • StAX 인터페이스 (JSR 173)

JAXP는 3가지의 파싱 인터페이스 이외에도 XML 문선의 데이터 및 구조를 변환할 수 있는 XSLT 인터페이스도 제공한다. JAXP는 자바 커뮤니터 프로세스의 JSR 5 (JAXP 1.0), JSR 63 (JAXP 1.1 & 1.2), JSR 206 (JAXP 1.3 & 1.4)에 의해 개발되었다. J2SE 1.4 이상에서는 JAXP를 포함하고 있어서 J2SE 5.0에서는 JAXP 1.3을, Java SE 6에서는 JAXP 1.4를 포함하고 있다.

버전 역사

JAXP API 역사
JAXP version발표자바 플랫폼중요한 변화
JAXP 1.4Java SE 6JSR 206
JAXP 1.3J2SE 5.0, Java EE 5JSR 206
JAXP 1.2JSR 63
JAXP 1.1JSR 63
JAXP 1.0JSR 5


Java API for XML Processing ( JAXP )는 Java 에서 XML 을 처리하는 API 의 하나. XML 문서의 유효성 검증과 구문 분석 을위한 인터페이스 를 제공한다. 다음 두 가지의 기본적인 구문 분석 인터페이스를 갖춘다.

JAXP 1.4에서 세 번째 인터페이스가 추가되어있다.

JAXP는 구문 분석 인터페이스 외에도 XML 문서의 데이터와 구조의 변환을위한 XSLT 인터페이스도 제공하고있다. JAXP는 Java Community Process 에서 JSR 5 (JAXP 1.0), JSR 63 (JAXP 1.1과 1.2), JSR 206 (JAXP 1.3 및 1.4)으로 개발되었다. 2007 년 현재 최신 버전은 1.4. J2SE 1.4 이후는 JAXP 구현을 포함하게되고, J2SE 5.0은 JAXP 1.3 구현을 Java SE 6는 JAXP1.4의 구현을 포함한다.

DOM 인터페이스 편집 ]

아마도 가장 이해하기 쉬운 것이 DOM 인터페이스 것이다. XML 문서 전체를 구문 분석하고 문서의 모든 요소에 해당하는 메모리 내 표현을, Document Object Model (DOM) Level 2 Core Specification 에서 규정 된 모델을 기반으로 클래스 로 구축한다.

DOM 파서 (구문 분석 기기)는 메모리에 Document 표현을 구축 (build)하기 때문에, DocumentBuilder 했다. javax.xml.parsers.DocumentBuilder 는javax.xml.parsers.DocumentBuilderFactory 에 의해 생성된다. DocumentBuilder 는 XML 문서의 모든 노드를 포함한 트리 의org.w3c.dom.Document 인스턴스 를 생성한다. 트리의 각 노드는 org.w3c.dom.Node 인터페이스를 구현하고있다. 노드는 XML 문서의 데이터 형식을 나타내는 다양한 노드 유형이있다. 가장 중요한 노드 유형으로 다음과 같은 것이있다.

  • 요소 (element) 노드. 속성 (attribute)을 가지는 경우가있다.
  • 텍스트 (text) 노드. 요소의 시작 태그와 종료 태그 사이에 기술 된 텍스트를 나타낸다.

모든 노드 유형 목록은 Java 패키지 org.w3c.dom 의 Javadoc 을 참조하십시오.

SAX 인터페이스 편집 ]

SAX 파서는 SAXParser 라고, javax.xml.parsers.SAXParserFactory 에 의해 생성된다. DOM 파서와 달리, SAX 파서는 메모리에 XML 문서의 표현을 만들지 않기 때문에보다 빠르고 메모리 사용량이 적다. 대신 SAX 파서는 콜백 을 호출, 즉 미리 파서에 전달 놓은org.xml.sax.helpers.DefaultHandler 인스턴스 의 메소드 를 호출하여 XML 문서의 구조를 클라이언트 에게 통지한다.

DefaultHandler 클래스 ContentHandler , ErrorHandler , DTDHandler , EntityResolver 의 각 인터페이스를 구현하고있다. 대부분의 클라이언트는 ContentHandler 인터페이스로 정의 된 메소드를 사용하게된다. 이 방법은 XML 문서의 해당 요소를 SAX 파서가 발견했을 때 호출된다. SAX 인터페이스 중에서 가장 중요한 방법으로 다음과 같은 것이있다.

  • startDocument () 과 endDocument () 메소드. XML 문서의 시작과 끝에서 호출된다.
  • startElement () and endElement () 메소드. 요소의 시작 지점과 끝 지점에서 호출된다.
  • characters () 메서드. 요소의 시작 태그와 종료 태그 사이에있는 텍스트 데이터에서 호출된다.

클라이언트는 DefaultHandler 의 서브 클래스에서이 메소드를 재정의 하고 데이터를 처리한다. 과정에서 데이터를 데이터베이스에 저장하거나 스트림에 내보낼 수도있다.

XSLT 인터페이스 편집 ]

XSLT 는 XML 문서를 다른 형식의 데이터로 변환한다.

'Development > XML' 카테고리의 다른 글

XML, DTD, XSD, XSL 관계  (0) 2012.02.13
Markup Language  (0) 2012.01.27
XSD(XML Schema Difinition)  (0) 2012.01.18
XML 창시자 - 팀 브레이  (0) 2010.12.14
XML 정의  (0) 2010.11.29
Posted by linuxism
,