스탁스
StAXStAX(Streaming API for XML)는 자바 프로그래밍 언어 커뮤니티에서 유래한 XML 문서를 읽고 쓰기 위한 API(응용 프로그래밍 인터페이스)이다.null
전통적으로 XML API는 다음과 같다.
- DOM 기반 - 호출 애플리케이션에 의해 전체 문서가 트리 구조로 메모리로 읽혀져 임의 액세스 가능
- 이벤트 기반 - 응용 프로그램은 원본 문서 내에서 엔터티가 발견될 때 이벤트를 수신하기 위해 등록한다.
두 가지 모두 장점이 있다. 예를 들어 DOM은 문서에 대한 임의의 액세스를 허용하며, 색스와 같은 이벤트 기반 알고리즘은 메모리 설치 공간이 작으며 일반적으로 훨씬 빠르다.null
이 두 가지 접근 은유법은 극과 극의 대립이라고 생각할 수 있다.트리 기반 API는 무제한 랜덤 액세스와 조작이 가능하며, 이벤트 기반 API는 소스 문서를 통과하는 '원샷' 패스다.null
StAX는 이 두 반대편 사이의 중앙값으로 설계되었다.StAX 은유에서 프로그램적 진입점은 문서 내의 한 점을 나타내는 커서다.응용 프로그램은 커서를 앞으로 이동시켜 필요에 따라 파서로부터 정보를 '끌어낸다'.이는 애플리케이션에 데이터를 '푸시'하는 이벤트 기반 API(예: SAX)와 달리, 응용프로그램이 문서 내의 위치를 추적하기 위해 필요에 따라 이벤트 간 상태를 유지하도록 요구하는 것과 다르다.null
오리진스
StAX는 XML을 위한 호환이 불가능한 풀 API에 뿌리를 두고 있으며, 특히 XMLPULL의 저자들(Stefan Haustain and Aleksander Slominski)이 BEA Systems, Oracle, Sun, James Clark와 협력했다.null
예
JSR-173 사양• 최종, V1.0(공정한 사용에서 사용됨).null
인용:
- 다음 자바 API는 커서 접근법에서 XML을 읽는 주요 방법을 보여준다.
공중의 접점 XMLStreamReader { 공중의 인트로 다음에() 던지다 XMLStreamException; 공중의 부울 hasNext() 던지다 XMLStreamException; 공중의 끈 getText(); 공중의 끈 getLocalName(); 공중의 끈 getNamespaceURI(); //...다른 방법은 표시되지 않음 }
- API의 쓰기 측면에는 "StartElement" 및 "EndElement" 이벤트 유형에 대한 읽기 측면에 해당하는 방법이 있다.
공중의 접점 XMLStreamWriter { 공중의 공허하게 하다 writeStartElement(끈 localName) 던지다 XMLStreamException; 공중의 공허하게 하다 writeEndElement() 던지다 XMLStreamException; 공중의 공허하게 하다 글씨를 쓰다(끈 문자 메시지를 보내다) 던지다 XMLStreamException; //...다른 방법은 표시되지 않음 }
- 5.3.1 XMLStreamReader
- 이 예는 입력 공장을 인스턴스화하고, 판독기를 생성하고, XML 문서의 요소를 반복하는 방법을 보여준다.
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLStreamReader xmlStreamReader = xmlInputFactory.CreateXMLStreamReader(...); 하는 동안에 (xmlStreamReader.hasNext()) { xmlStreamReader.다음에(); }
참고 항목
Java에서 XML을 처리하는 경쟁 및 보완 방법(순서는 도입 초기 날짜에 따라 느슨하게 설정됨):null
- 최초의 표준화된 언어/플랫폼 독립적인 트리 기반 XML 처리 모델인 DOM(Document Object Model); 대체 Java 트리 모델에는 JDOM, Dom4j, XOM이 포함된다.
- XML용 단순 API(SAX), 표준 XML 푸시 API
- JAXB(Java XML Binding API, Java XML Binding API)는 다른 파서(일반적으로 스트리밍 파서) 위에서 작동하며 포함된 데이터를 Java 개체와 바인딩한다.
- 스트리밍 XML
- 자바용 XQuery API
외부 링크
- StAX 소개 XML.com, 해롤드, 엘리엇 러스티
- XML용 Java Streaming API(Stax) - 자습서
- 알렉산더 슬로민스키의 XML 풀(및 StAX) 디자인 패턴에 관한 XMLPull 패턴 문서.
- StAX 파서 - HowToDoInJava에 의한 커서 & Iterator APIs 문서.