JAXP API--嵌入不同的解釋器
SAX解釋器+DOM解釋器+XSL轉換器
Javax.xml.parsers中加載XML文檔的類:
DocumentBuilder
DocumentBuildrFactory
SAXParser
SAXParserFactory
=====================================
SAX API
SAX的XML解釋器:apache的Xerces或Crimson
處理XML文檔的接口:
ContentHandler
EntityResolver
ErroHandler
DTDHandler
DeclHandler
LexicalHandler
======================================
DOM API
兩個DOM標准:DOM Level1 DOM Level 2 Core
節點
Node-節點類型接口層次結構的根。
Document-樹結構的根
Element-XML元素
Text-元素內的文本
Attr-元素的特性
CDATA Sectionn-CDATA
NodeList-子節點的集合
ProcessingInstruction-指令
Comment-包含注釋的信息
DocumentFragment-Document的消減版,用於在樹中移動節點
DocumentType-文檔類型定義的子集。
Entity-DTD中的實體標記
EntityReference-XML文檔中的實體引用
Notation-DTD中的符號標記
從程序中讀取X M L文檔基本上有三種方式:
1把X M L只當做一個文件讀取,然後自己挑選出其中的標簽。這是黑客們的方法,我們不推薦這種方式。
你很快會發現處理所有的特殊情況(包括不同的字符編碼,例外約定,內部和外部實體,缺省屬性等)比想象的困難得多;
你可能不能夠正確地處理所有的特殊情況,這樣你的程序會接收到一個非常規范的X M L文檔,卻不能正確地處理它。
要避免這種想法:XML解析器似乎並不昂貴(大多數是免費的)。
2可以用解析器分析文檔並在內存裡創建對文檔內容樹狀的表達方式:解析器將輸出傳遞給文檔對象模型,即DOM。
這樣程序可以從樹的頂部開始遍歷,按照從一個樹單元到另一個單元的引用,從而找到需要的信息。
3也可以用解析器讀取文檔,當解析器發現標簽時告知程序它發現的標簽。
例如它會告知它何時發現了一個開始標簽,何時發現了一些特征數據,以及何時發現了一個結束標簽。
這叫做事件驅動接口,因為解析器告知應用程序它遇到的有含義的事件。
如果這正是你需要的那種接口,可以使用SAX。
SAX是只讀的
DOM可以從XML原文件中讀取文檔,也可以創建和修改內存中的文檔。相比較而言,SAX是用來讀取XML文檔而不是書寫文檔。
可擴展樣式語言(XSL,eXtensible Sytlesheet Language)是一種基於XML的語言,它被設計用來轉換XML文檔到另一種XML文檔或轉換XML文檔為可翻譯對象。
原始的XSL語言已經被分割成三種不同的語言:
1轉換工具(XSLT)是一種轉換XML文檔到其他XML文檔的語言
2翻譯工具(XSLF—可以包括X S LT的使用)
3XML分級命令處理工具(XPath)
XSL有它自已的根,不管是在層疊樣式表(CSS)中還是在一種叫DSSSL(文檔樣式語義和規格語言—讀為'deessel')的語言中。
隨著它的發展,XSL的樣式表現變得更接近於CSS和遠離DSSSL