XMLStreamReader

XMLStreamReader (XML 스트림 리더)

XML에 대한 전방·읽기 전용 접근을 허용하는 인터페이스예요. XML 데이터를 읽는 가장 저수준이고 효율적인 방법이에요.

출처: Java API Reference

본문

public interface XMLStreamReader
    extends XMLStreamConstants

XMLStreamReader 인터페이스는 XML에 대한 전방(forward), 읽기 전용 접근을 허용해요. XML 데이터를 읽는 가장 저수준이고 효율적인 방법으로 설계됐어요.

XMLStreamReader는 next()와 hasNext()로 XML을 순회하도록 설계됐어요. 데이터는 getEventType(), getNamespaceURI(), getLocalName(), getText() 같은 메서드로 접근할 수 있어요. 인스턴스는 초기 이벤트 유형 START_DOCUMENT로 생성돼요.

현재 이벤트 유형은 getEventType()으로, 다음 이벤트는 next()로 결정해요. 파싱 이벤트는 XML 선언, DTD, 시작 태그, 문자 데이터, 공백, 종료 태그, 주석, 처리 명령으로 정의돼요. 문서 루트 레벨에서는 속성이나 네임스페이스 이벤트도 만날 수 있어요.

XML 1.0 준수를 위해 파서는 선언된 파싱되지 않은 엔티티, 표기법 선언과 관련 식별자를 애플리케이션에 전달해야 해요. 이 정보는 javax.xml.stream.notations와 javax.xml.stream.entities 속성으로 접근하며, DTD 이벤트 중에만 조회 가능하고 정보가 없으면 null을 반환해요.

각 이벤트 유형에서 유효한 메서드가 정해져 있고, 잘못된 상태에서 메서드를 호출하면 IllegalStateException이 던져져요. close()는 이 Reader와 관련된 자원을 해제해요.

더 알아보기

Java 공식 API