XML CH9 課後複習

 <內容取自XML How to program>  <建立XML相關觀念>    

Ch9 XML的簡易應用程式介面(SAX

    SAX是由XML-DEV部門所發展而且是一種使用以事件為基礎的模型來解析XML文件的交替方法–當文件被解析的時候,事件才被通告來產生。

    SAX為基礎的解析器是當遇到標記(例如:開始標籤,結束標籤等)的時候才作用的方法,使用以事件為基礎的模型–SAX的解析器並沒有建立一個樹的架構來儲存XML文件檔的資料–資料是當它需要使用的時候,才從XML文件傳送到應用程式。

    SAX為基礎的解析器可利用在多數的程式語言(例如JavaPython等)。一些以SAX為基礎的解析器(例如JAXPXercesmsxml)是可以免費下載取得的。

    物件HandlerBase實作了四個介面:EntityResolver–用來處理外部的實體,DTDHandler–用來處理記號和未解析的實體,DocumentHandler–用來處理解析過的事件和ErrorHandler–用來處理錯誤。

    HandlerBase的函式endDocument,當我們到文件檔的結尾時就呼叫這個函式;這個函式是最後才被呼叫而且只會被呼叫一次,當致命的錯誤發生時,也會呼叫這個函式。

    DTD出現時,一些空白字元就可以被忽略掉。當遇到可忽略的空白字元時,我們將呼叫函式ignorableWhitespace而不用函式characters

    一些SAX1.0SAX2.0之間最主要的改變是物件HandlerBase被置換成物件DefaultHandler;元件跟特性的處理已經被擴充到支援傳遞名稱;另外下載跟解析XML文件檔的過程也改變了。

    物件DefaultHandler提供了跟物件HandlerBase一樣的介面。在SAX2.0中,物件HandlerBase被反對使用(即是荒廢了)。