Java與XML(一)基礎

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- Java與XML(一)基礎 (http://www.webasp.net/article/17/16615.htm)
-- 作者:未知
-- 發佈日期: 2005-02-23
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



webasp.net