XMLStreamReader 클래스의 next 메서드는 이벤트를 반환하고, 반환된 이벤트에 따라 맞는 처리를 하게 된다.
StAX의 XMLEvent 클래스에는 XML의 이벤트가 상수로 정의되어 있는데, 아래와 같다.
- XMLEvent.START_ELEMENT
- XMLEvent.END_ELEMENT
- XMLEvent.PROCESSING_INSTRUCTION
- XMLEvent.CHARACTERS
- XMLEvent.COMMENT
- XMLEvent.SPACE
- XMLEvent.START_DOCUMENT
- XMLEvent.END_DOCUMENT
- XMLEvent.ENTITY_REFERENCE
- XMLEvent.ATTRIBUTE
- XMLEvent.DTD
- XMLEvent.CDATA
- XMLEvent.NAMESPACE
- XMLEvent.NOTATION_DECLARATION
- XMLEvent.ENTITY_DECLARATION
참고로 이는 XMLStreamConstants에 동일하게 정의되어 있다.
또한 각각의 이벤트에 따라 사용할 수 있는 메서드가 정해져있는데,
이벤트에 맞지 않는 메서드를 사용하면 예외가 발생한다.
이벤트 |
유효한 메서드 |
모든 이벤트에 적용가능 | getProperty(), hasNext(), require(), close(), getNamespaceURI(), getNamespaceContext(), getEventType(),getLocation(), hasText(), hasName() |
START_ELEMENT | next(), getName(), getLocalName(), hasName(), getPrefix(), getAttributeXXX(), isAttributeSpecified(),getNamespaceXXX(), getElementText(), nextTag() |
ATTRIBUTE | next(), nextTag() getAttributeXXX(), isAttributeSpecified() |
NAMESPACE | next(), nextTag() getNamespaceXXX() |
END_ELEMENT |
next(), getName(), getLocalName(), hasName(), getPrefix(), getNamespaceXXX(), nextTag() |
CHARACTERS | next(), getTextXXX(), nextTag() |
CDATA | next(), getTextXXX(), nextTag() |
COMMENT | next(), getTextXXX(), nextTag() |
SPACE | next(), getTextXXX(), nextTag() |
START_DOCUMENT | next(), getEncoding(), getVersion(), isStandalone(), standaloneSet(), getCharacterEncodingScheme(), nextTag() |
END_DOCUMENT |
close() |
PROCESSING_INSTRUCTION | next(), getPITarget(), getPIData(), nextTag() |
ENTITY_REFERENCE | next(), getLocalName(), getText(), nextTag() |
DTD | next(), getText(), nextTag() |
'밤을 지새다 > Java' 카테고리의 다른 글
이클립스 환경에서 AWT에서 한글이 깨질 때 (0) | 2012.05.16 |
---|---|
Java PriorityQueue (0) | 2012.05.07 |
Java StAX: XMLStreamWriter - The Cursor Writer API (0) | 2012.04.30 |
Java StAX: XMLStreamReader - The Cursor API (0) | 2012.04.30 |
Java StAX: XMLEventWriter - The Iterator Writer API (0) | 2012.04.30 |