StAX

XML流API （ Streaming API for XML ， 縮寫StAX ） 是用於讀寫XML文檔的應用程序接口 ， 起源於Java社群 ， JSR 173定義了這個API 。 傳統上來說 ， XML的API無外乎是以下兩種 ： 基於樹的API - 整個文檔以樹的形式被讀入內存 ， 可以被調用程序隨機訪問 。 基於事件的API - 應用註冊接收事件 ， 當原XML文檔遇到事體時就會產生這些事件 。 兩者皆有優點 ， 前者 （ 例如DOM ） 允許對文檔進行隨機訪問 ， 而後者 （ 例如SAX ） 需要較小的內存開銷 ， 並卻通常更快 。 這兩個方法可以認爲是正好相反 。 基於樹的API允許無限制的 ， 隨機的訪問和操縱 ， 而基於事件的API是一次性地遍歷源文檔 。 StAX被設計爲這兩者的一個折中 。 在StAX中 ， 程序的切入點是表示XML文檔中一個位置的光標 。 應用程序在需要時向前移動光標 ， 從解析器拉出信息 。 與基於事件的API （ 如SAX ） 將 “ 數據推送 ” 給應用程序不同的是 ， SAX需要應用程序維持時間間的狀態 ， 以保持文檔內的位置信息 。