120 likes | 281 Views
第 17 章 JAXP 的使用. 簡介 JAXP. JAXP 的全名為 Java API for XML Parsing ,將用於做為 XML 文件處理程式與剖析器間的中間層,以達成自由抽換程式使用之 XML 剖析器的效果。 中間層用於包裝服務提供者,以達到隔離服務提供者與服務要求者的效果。 對於 XML 文件的處理,所謂的服務就是剖析 XML 文件,服務提供者就是剖析器,服務要求者則是 XML 文件處理程式。. 簡介 JAXP.
E N D
簡介JAXP • JAXP的全名為Java API for XML Parsing,將用於做為XML文件處理程式與剖析器間的中間層,以達成自由抽換程式使用之XML剖析器的效果。 • 中間層用於包裝服務提供者,以達到隔離服務提供者與服務要求者的效果。 • 對於XML文件的處理,所謂的服務就是剖析XML文件,服務提供者就是剖析器,服務要求者則是XML文件處理程式。
簡介JAXP • 因此,處理XML文件的應用程式,將不再直接使用剖析器所提供的剖析器類別,而是透過JAXP取得完成剖析的DOM物件(說明於16-2-1節)或SAX剖析器(說明於16-2-2節),所以,抽換剖析器時,應用程式亦不必修改。
JAXP程式設計 - JAXP與DOM • 的全名為ActiveX Data Objects,是早期Microsoft提供給程式設計師在程式設計時,運用OLE DB的應用程式設計介面(Application Programming Interface)。 • 那什麼是OLE DB呢?OLE DB技術是由Microsoft所提出的Component Object Model(COM)介面集合,用於提供程式設計師一個一致性的資料存取介面,方便存取儲存於不同資訊來源的資料。
JAXP程式設計 - JAXP與DOM • 撰寫以DOM物件處理XML文件的Java程式時,JAXP將以DocumentBuilderFactory類別與DocumentBuilder類別,做為剖析器與Java程式的中間層,並擔負著運用剖析器剖析XML文件,完成DOM物件建立的責任,至於決定使用的剖析器,與抽換剖析器的方法,請參考16-2-3節的說明。 • 以下的敘述將完成DocumentBuilderFactory類別與DocumentBuilder類別的引用。
JAXP程式設計 - JAXP與DOM • 在執行XML文件剖析前,必須運用DocumentBuilderFactory類別的newInstance()類別方法,建立DocumentBuilderFactory物件。 • 再以DocumentBuilderFactory物件newDocumentBuilder()方法完成DocumentBuilder物件的建立。 • 最後,才由DocumentBuilder物件執行XML文件的剖析,並取得剖析後的Document物件。
JAXP程式設計 - JAXP與SAX • 撰寫以SAX處理XML文件的Java程式時,JAXP將以SAXParserFactory類別與SAXParser類別,做為剖析器與Java程式的中間層,並擔負著取得SAX剖析器物件的責任,至於決定使用的剖析器,與抽換剖析器的方法,請參考16-2-3節的說明。 • 以下的敘述,將完成SAXParserFactory類別與SAXParser類別的引用。
JAXP程式設計 - JAXP與SAX • 在執行XML文件剖析前,必須運用SAXParserFactory類別的newInstance()類別方法,建立SAXParserFactory物件。 • 再以SAXParserFactory物件newSAXParser()方法完成SAXParser物件(剖析器物件)的建立。 • 最後,呼叫SAXParser物件parse,傳入欲剖析的XML文件與處理器。
JAXP程式設計 - JAXP與SAX • SAXParser類別parse()方法的呼叫語法說明如下:SAXParser物件.parse( String uri, DefaultHandler dh);無回傳值
JAXP程式設計 - 使用剖析器的取得與抽換 • 取得目前使用的剖析器欲取得目前JAXP所使用的剖析器時,可以用DocumentBuilderFactory類別、DocumentBuilder類別、SAXParser類別與SAXParserFactory類別的toString()方法,輸出目前使用的剖析器資料。
JAXP程式設計 - 使用剖析器的取得與抽換 • 指定使用的剖析器在Java 2 SDK 1.4版的安裝資料夾下jre\lib子資料夾內,建立一個名為jaxp.properties的設定檔,內容如下所述(此檔儲存於ch16資料夾下)。該檔案內,將分別設定JAXP介面使用的xerces剖析器實做類別為javax.xml.parsers.DocumentBuilderFactory與javax.xml.parsers.SAXParserFactory屬性。
JAXP程式設計 - 使用剖析器的取得與抽換 • 完成設定後,再執行getParser.java,則執行結果將為