스탁스

StAX

StAX(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

외부 링크