StAX
維基百科,自由的 encyclopedia
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需要應用程式維持時間間的狀態,以保持文檔內的位置信息。