XML實(shí)用工具百寶箱
作為互聯(lián)網(wǎng)的新技術(shù),XML的應(yīng)用非常廣泛,可以說(shuō)XML已經(jīng)滲透到了互聯(lián)網(wǎng)的各個(gè)角落。隨著XML技術(shù)本身的成熟和應(yīng)用領(lǐng)域的不斷擴(kuò)大,相關(guān)的工具也如雨后春筍不斷地被開(kāi)發(fā)出來(lái)。下邊筆者就為各位介紹現(xiàn)有的、較有代表性的XML的實(shí)用工具。
一. XML瀏覽工具
1. Internet Explorer
相信大家對(duì)IE都十分熟悉,它是Micorsoft公司開(kāi)發(fā)的Web瀏覽器,是當(dāng)今兩大主流瀏覽器之一。IE最先支持XML,支持命名空間,并在IE 5.0開(kāi)創(chuàng)了XML+CSS、XML+XSL的Web瀏覽方式,使得瀏覽XML網(wǎng)頁(yè)終于夢(mèng)想成真。
不過(guò)IE對(duì)CSS的支持已經(jīng)落后于后面將要介紹的Mozilla Firefox瀏覽器了。
IE版本升級(jí)到 6.0后,其對(duì)XSLT 1.0標(biāo)準(zhǔn)提供完全的支持。
IE可以直接加載不包含樣式信息的XML文檔。這時(shí),瀏覽器將顯示外觀(guān)良好的樹(shù)形結(jié)構(gòu),并帶有小小的+- 圖標(biāo),點(diǎn)擊圖標(biāo),可以將子樹(shù)隱藏或展開(kāi)。實(shí)際上,這就是IE的缺省樣式單。通過(guò)缺省樣式單,可以快速查看別人的XML文檔,并能獲得對(duì)XML文件的內(nèi)容和結(jié)構(gòu)的感性認(rèn)識(shí)。
IE本身是不支持XML文檔的有效性檢查的。為此,微軟還提供了一個(gè)稱(chēng)為IE Tools插件,安裝了這個(gè)插件后,在IE的右鍵菜單中就增加了Validate XML和View XSL Output兩個(gè)功能菜單。
IE自身不支持SVG格式文件的顯示,如果需要使用IE顯示SVG格式文件,必須用戶(hù)自行安裝Adobe 公司提供的一個(gè)SVG瀏覽器插件 SVG Viewer。
2. Mozilla Firefox
Firefox是由Mozilla基金會(huì)(Mozilla Foundation)旗下主推的一款Web瀏覽器。Mozilla基金會(huì)起源原來(lái)的網(wǎng)景公司內(nèi)部的一個(gè)稱(chēng)為Mozilla組織。網(wǎng)景公司的著名Web瀏覽器NetScape Navigator在其公司內(nèi)部一直都被稱(chēng)為Mozilla,后來(lái)由于和微軟公司的IE瀏覽器的競(jìng)爭(zhēng)中失敗,網(wǎng)景公司關(guān)閉,將所有業(yè)務(wù)轉(zhuǎn)給非盈利的Mozilla組織,并最終建立Mozilla基金會(huì)。
Firefox 是一種相對(duì)較新的 Web 瀏覽器,目前是基于 Mozilla 平臺(tái)的最流行的瀏覽器。它的成長(zhǎng)速度異常快速,并且它是開(kāi)放源碼軟件取得成功的代表。Firefox承諾為 XML 開(kāi)發(fā)人員提供完善的Web瀏覽器,幫助推動(dòng)在Web上發(fā)展緩慢的客戶(hù)端XML特性的采用。必須要記住,目前很多Web技術(shù)的發(fā)展,包括Firefox瀏覽器特性的發(fā)展,都使得Web瀏覽器逐漸發(fā)展為完整的專(zhuān)用應(yīng)用程序開(kāi)發(fā)平臺(tái),而不再是簡(jiǎn)單的Internet瀏覽工具。
Firefox 不支持DTD驗(yàn)證或其他任何驗(yàn)證技術(shù),如 W3C XML Schema (WXS) 或 RELAX NG。
Mozilla系列的瀏覽器一向都對(duì)CSS技術(shù)具有良好支持。Firefox支持CSS2的大部分內(nèi)容,并對(duì)CSS3的提供了更多支持。雖然CSS3 目前仍處在 W3c 工作草案階段,但是因?yàn)镃SS3采納了 Web 開(kāi)發(fā)人員迫切需要解決的很多問(wèn)題,包括對(duì) XML 結(jié)構(gòu)更好的支持。所以Firefox對(duì)CSS3的支持是很有價(jià)值的。
Firefox提供可縮放向量圖形(SVG)的自身支持,不過(guò)只對(duì)SVG 1.1 Full 的一個(gè)子集的支持。相對(duì)于其他的瀏覽器而言,Mozilla Firefox是對(duì)SVG支持力度最大的一款瀏覽器了,無(wú)需安裝SVGViewer插件就能顯示SVG格式文件。
Mozilla Firefox全方面的支持XML相關(guān)標(biāo)準(zhǔn),包括支持CSS、XSLT、命名空間、Xlink、Xpoint、MathML、Xform以及部分SVG等標(biāo)準(zhǔn)及規(guī)范,并因?yàn)槠鋵?duì)DOM有很好的底層支持,而使得XML變得真正可用。
3. W3C的試驗(yàn)基地——Amaya
值得一提的是W3C的試驗(yàn)系統(tǒng)Amaya,可能很多讀者對(duì)它都不熟悉。Amaya是W3C自行開(kāi)發(fā)的網(wǎng)頁(yè)工具,既可以作為XML瀏覽器,也可以作為XML編輯器,且具有所見(jiàn)即所得的界面風(fēng)格。
開(kāi)發(fā)Amaya的目的是要建造一個(gè)W3C提出的草案或標(biāo)準(zhǔn)的“試驗(yàn)基地”,因此,它對(duì)XML及各項(xiàng)草案和標(biāo)準(zhǔn)的支持最新,也較為全面。目前Amaya已經(jīng)發(fā)展到10.0版本,支持HTML、XHTML、MathML、部分SVG和CSS,可能是支持網(wǎng)頁(yè)標(biāo)準(zhǔn)最多的一個(gè)瀏覽器。
#p#
二. XML編輯工具
1.XML Spy
Icon Information-Systems公司的產(chǎn)品,提供集成開(kāi)發(fā)環(huán)境IDE,但不支持所見(jiàn)即所得。支持Unicode、多字符集,支持格式良好的和有效的XML文檔??删庉媂ML文檔、DTD、schema,以及XSLT。
XML Spy提供了四種視窗:結(jié)構(gòu)視窗以樹(shù)形結(jié)構(gòu)編輯XML文檔(包括XML、XSL、DTD文檔);增強(qiáng)表格視窗以表格的方式顯示出文檔中元素的數(shù)據(jù)庫(kù)項(xiàng);源代碼視窗可以查看和修改文檔源碼;預(yù)覽視窗采用內(nèi)嵌IE5的方式在軟件內(nèi)對(duì)XML文檔進(jìn)行瀏覽,支持CSS和XSL。
XML Spy可運(yùn)行在Windows95982000和WindowsNT環(huán)境。
2.VisualXML
由Pierre Morel開(kāi)發(fā),以樹(shù)形結(jié)構(gòu)顯示XML、DTD、DOM文檔;實(shí)現(xiàn)同數(shù)據(jù)庫(kù)的集成,并可通過(guò)Wizard方式進(jìn)行數(shù)據(jù)庫(kù)的瀏覽、SQL語(yǔ)句和存儲(chǔ)過(guò)程的創(chuàng)建和執(zhí)行;以圖形界面實(shí)現(xiàn)XML元素同數(shù)據(jù)庫(kù)對(duì)象的綁定,同時(shí)創(chuàng)建XML文檔和DTD文檔;支持多種數(shù)據(jù)庫(kù),如Oracle、Access、SQL Server、Informix、Sybase、DB2。
該軟件的運(yùn)行環(huán)境是Java (JDK 1.1)。
3.EditML
EditML Technologies開(kāi)發(fā)的產(chǎn)品,是Windows平臺(tái)上的XML編輯器,可以用于創(chuàng)建有效的及格式良好的XML數(shù)據(jù)文檔,Schema文檔或者XSL樣式單。它使用Microsoft的MSXML分析器,遵守W3C的XML1.0標(biāo)準(zhǔn)。
#p#
三. XSL編輯工具
1. Excelon Stylus
是eXcelon公司開(kāi)發(fā)的第一個(gè)可視化XSL編輯軟件。
eXcelon Stylus是一個(gè)面向XSL編輯,集創(chuàng)建、管理、保存于一體的集成環(huán)境,使用它用戶(hù)可以快速、簡(jiǎn)便地創(chuàng)建XSL樣式單,并可以很方便地進(jìn)行調(diào)試。使用Stylue可以進(jìn)行XML商務(wù)開(kāi)發(fā)。
2.IBM XSLEditor
IBM公司的alphaworks開(kāi)發(fā),是交互式XSL編輯軟件,支持XSLT與XPath。有四個(gè)主要的窗口完成XML編輯、XSL編輯、結(jié)果樹(shù)顯示和XPath匹配。
該軟件要在JAVA環(huán)境中運(yùn)行,要求安裝有JDK1.1版本。
#p#
四. XML分析工具
XML分析器承擔(dān)著對(duì)XML文檔處理的第一道處理工序,它將XML文檔中的數(shù)據(jù)提取出來(lái),組織成樹(shù)狀結(jié)構(gòu),再送到應(yīng)用處理程序、瀏覽器等后期工序中去。
使用標(biāo)記的關(guān)鍵因素
首先,必須有一個(gè)標(biāo)準(zhǔn),用它來(lái)描述什么是有效的標(biāo)記。在上面例子中,標(biāo)記行為使用被定義為在文字上的黃色熒光墨水印跡。而在HTML中,標(biāo)記行為使用就是所謂的“標(biāo)簽”(tag)。
其次,還要有一個(gè)標(biāo)準(zhǔn)描述每個(gè)標(biāo)記行為的具體含義。上面例子中的黃色熒光加亮標(biāo)記意味著被加亮的句子很重要。而在HTML中,每一個(gè)標(biāo)簽都表明了一種顯示的格式。
XML分析器可以分為兩類(lèi)
支持有效性檢查的分析器:此類(lèi)分析器在檢查文檔是否符合"格式良好的"基本要求的基礎(chǔ)上,進(jìn)一步結(jié)合DTD檢查文檔是否符合DTD中對(duì)文檔結(jié)構(gòu)的規(guī)定,判定這個(gè)文檔是否是"有效的"。分析器必須讀入并分析出整個(gè)DTD,外加X(jué)ML文檔中所有的外部已分析的實(shí)體引用。并報(bào)告出文檔與DTD聲明相沖突的地方,以及不滿(mǎn)足DTD有效性約束的地方。
不支持有效性檢查的分析器:這一類(lèi)分析器只負(fù)責(zé)檢查XML文檔是否滿(mǎn)足格式良好的語(yǔ)法規(guī)定,包括XML文檔中內(nèi)含的內(nèi)部DTD文檔是否滿(mǎn)足格式良好的規(guī)定。此類(lèi)分析器不會(huì)對(duì)XML文檔所引用的外部DTD文檔進(jìn)行分析、進(jìn)而檢查XML文檔的有效性,但對(duì)于出現(xiàn)在XML文檔內(nèi)部的DTD子集,卻仍舊需要進(jìn)行部分分析,因?yàn)樵趯?duì)格式良好的文檔進(jìn)行分析時(shí)需要使用內(nèi)部DTD聲明中的信息,包括使用內(nèi)部實(shí)體替換正文、提供缺省屬性值等。
無(wú)論是哪一類(lèi)分析器,都要求檢測(cè)文檔或已分析實(shí)體是否有與格式良好的XML文檔定義相互沖突的地方。
1. IBM XML4J
目前,大多數(shù)XML分析器都是免費(fèi)的,一些大的公司,如Microsoft、IBM、DataChannel、Textuality等,都根據(jù)當(dāng)前的官方推薦標(biāo)準(zhǔn)(DOM)以及一些民間事實(shí)標(biāo)準(zhǔn)(SAX)開(kāi)發(fā)了自己的XML分析器,并提供免費(fèi)下載。其中首推的當(dāng)屬I(mǎi)BM XML4J。
IBM公司的XML4J完全是用JAVA開(kāi)發(fā)的,它曾經(jīng)是功能比較全面且支持有效性檢查的XML分析器之一。它遵守XML1.0標(biāo)準(zhǔn)、最新的DOM、SAX、命名空間的標(biāo)準(zhǔn),提供多語(yǔ)種支持,支持XML的有效性檢查,支持元素識(shí)別、DOM創(chuàng)建、錯(cuò)誤處理等。
除此以外,IBM還用C 編寫(xiě)了XML分析器,稱(chēng)為XML4C。
2. Xerces
Xerces是Apache 軟件基金會(huì)(Apache Software Foundation)的XML項(xiàng)目的一部分,它分別使用Java、C++和Perl編寫(xiě)了XML的分析器,也支持有效性檢查。使用Java編寫(xiě)的XML分析器被稱(chēng)為Xerces-J。使用C++編寫(xiě)的XML分析器被稱(chēng)為Xerces-C或Xerces-C++。
Xerces的前身是 IBM 的XML項(xiàng)目,其中XML4C 和 XML4J 是兩個(gè)并列的項(xiàng)目,而 XML4J 是Xerces-J的前身。IBM 將這兩個(gè)項(xiàng)目的源代碼讓與 Apache 軟件基金會(huì),Apache 軟件基金會(huì)將其分別改名為 Xerces-C++ 和 Xerces-J。這兩個(gè)項(xiàng)目是 Apache XML 項(xiàng)目組的核心項(xiàng)目。
Xerces-J 2.0以后的版本也被稱(chēng)為Xerces2-J。
3. Oracle的XML Parser
Oracle的XML分析器同樣是使用Java編寫(xiě),它支持通過(guò)SAX或DOM進(jìn)行XML文檔的語(yǔ)法分析,可以選擇是否對(duì)文檔的有效性進(jìn)行檢查。Oracle 在用于 Java、C、C++ 和 PL/SQL 的XML開(kāi)發(fā)者工具箱(XML Developer's Kits,XDK),中提供了 XML 分析器。每個(gè)分析器都是獨(dú)立的 XML 組件,這些組件分析 XML 文檔(或獨(dú)立的 DTD),以便應(yīng)用程序能夠?qū)ζ溥M(jìn)行處理。分析器支持 DOM(文檔對(duì)象模型)和 SAX(XML 的簡(jiǎn)單 API)接口、XML 命名空間、驗(yàn)證和非驗(yàn)證模式以及 XSL 轉(zhuǎn)換。在所有 Oracle 平臺(tái)上都可以獲得這些分析器。
4. Microsoft的MSXML
微軟XML分析器已經(jīng)內(nèi)嵌入IE4和IE5及以上版本,它的發(fā)布實(shí)際上早于XML1.0版本的最終頒布。MSXML支持一般的語(yǔ)法檢查,但同時(shí)也提供有效性檢查供選擇,它利用JAVA將一個(gè)XML文檔中的數(shù)據(jù)組織為樹(shù)型結(jié)構(gòu)。MSXML的最新版本為MSXML 4.0 Service Pack 2 (Microsoft XML Core Services)?! ?.expat
expat是James Clark實(shí)驗(yàn)室的開(kāi)發(fā)項(xiàng)目,用C寫(xiě)成,目前正嘗試用于Netscape Nevigator 5和Perl中,以便在Netscape的下一個(gè)版本中對(duì)XML提供支持。
5. JDOM
JDOM是一個(gè)開(kāi)源項(xiàng)目,它基于樹(shù)型結(jié)構(gòu),利用純Java的技術(shù)對(duì)XML文檔實(shí)現(xiàn)解析、生成、序列化以及多種操作。
JDOM 直接為Java編程服務(wù)。它利用更為強(qiáng)有力的Java語(yǔ)言的諸多特性(方法重載、集合概念以及映射),把SAX和DOM的功能有效地結(jié)合起來(lái)。在使用設(shè)計(jì)上盡可能地隱藏原來(lái)使用XML過(guò)程中的復(fù)雜性。利用JDOM處理XML文檔將是一件輕松、簡(jiǎn)單的事。
JDOM 在2000年由Brett McLaughlin和Jason Hunter發(fā)布,以彌補(bǔ)DOM及SAX在實(shí)際應(yīng)用當(dāng)中的不足之處。這些不足之處主要在于SAX沒(méi)有文檔修改、隨機(jī)訪(fǎng)問(wèn)以及輸出的功能,而對(duì)于DOM來(lái)說(shuō),Java程序員在使用時(shí)來(lái)用起來(lái)總覺(jué)得不太方便。DOM的缺點(diǎn)主要是來(lái)自于DOM是一個(gè)接口定義語(yǔ)言(IDL),它的任務(wù)是在不同語(yǔ)言實(shí)現(xiàn)中的一個(gè)最低的通用標(biāo)準(zhǔn),并不是為Java特別設(shè)計(jì)的。
6. DOM4J
DOM4J是dom4j.org出品的一個(gè)開(kāi)源XML解析包,它的網(wǎng)站中這樣定義:Dom4j是一個(gè)易用的、開(kāi)源的庫(kù),用于XML,XPath和XSLT。它應(yīng)用于Java平臺(tái),采用了Java集合框架并完全支持DOM,SAX和JAXP。
雖然DOM4J代表了完全獨(dú)立的開(kāi)發(fā)結(jié)果,但最初,它是JDOM的一種智能分支。它合并了許多超出基本XML文檔表示的功能,包括集成對(duì)XPath支持、XML Schema 支持以及用于大文檔或流化文檔的基于事件的處理。它還提供了構(gòu)建文檔表示的選項(xiàng),它通過(guò)DOM4J API和標(biāo)準(zhǔn)DOM接口具有并行訪(fǎng)問(wèn)功能。
為支持所有這些功能,DOM4J使用接口和抽象基本類(lèi)方法。DOM4J大量使用了API中的collections 類(lèi),但是在許多情況下,它還提供一些替代方法以允許更好的性能或更直接的編碼方法。直接好處是,雖然DOM4J付出了更復(fù)雜的API的代價(jià),但是它提供了比JDOM大得多的靈活性。
7. 其他XML分析器
除了前面講到的種種支持有效性檢查的分析器外,不少公司還開(kāi)發(fā)了“中級(jí)版本”。這些分析器雖然并不支持有效性分析,但因?qū)?ldquo;格式良好的”種種規(guī)則的檢查充分而富有特色,也是不錯(cuò)的分析器。
#p#
五. 圖形應(yīng)用工具
1.IBM SVGViewer
IBM公司alphaworks開(kāi)發(fā),該軟件的主要功能有:基本圖形、路徑(Path)、圖形勾邊(Stroke)、圖形填充(fill)、文字字體字號(hào)、字的輪廓填充、圖象、Path裁剪、鏈接、對(duì)象成組。
該軟件在運(yùn)行時(shí)要安裝JAVA2.0以上的運(yùn)行環(huán)境和IBM的XML4J XML分析器。
2.CSIRO SVG Viewer
由CSIRO開(kāi)發(fā),對(duì)圖形的支持較好,對(duì)SVG的支持功能有基本圖形、路徑(Path)、圖形勾邊(Stroke)、圖形填充(fill)、文字的字體字號(hào)、圖象、Path裁剪、鏈接、對(duì)象成組、嵌入JavaScript。
3.支持SVG的其他工具
Corel公司的CorelDraw9.0配備了SVG的過(guò)濾器,可生成含有SVG的網(wǎng)頁(yè)。
Adobe Illustrator9.0也支持SVG。
Adobe公司開(kāi)發(fā)出兩大主流瀏覽器IE和Netscape的SVG插件。
#p#
六. WAP應(yīng)用工具
1. UP.SDK for WML
由Phone.com提供的,支持WML1.1。UP.SDK包含有文檔說(shuō)明、工具和編碼樣例,幫助開(kāi)發(fā)者在Phone.com 的UP.Link 平臺(tái)上開(kāi)發(fā)WAP應(yīng)用程序。
在該開(kāi)發(fā)包中還有一個(gè)UP模擬器,可以模擬手持設(shè)備上網(wǎng)。
該開(kāi)發(fā)包的運(yùn)行平臺(tái)是 Windows 9598及Windows NT 4.0。
2.Nokia WAP開(kāi)發(fā)包
由Nokia提供的WML開(kāi)發(fā)包,由兩部分組成, WML編輯器和Nokia手機(jī)的模擬器,可以邊調(diào)試邊顯示。
軟件的運(yùn)行環(huán)境是JAVA,對(duì)中文有所支持。
3.Wappage
由Wapmine.com公司開(kāi)發(fā),是一個(gè)交互式的所見(jiàn)即所得WML編輯軟件。支持項(xiàng)目管理,并有多個(gè)視窗方便用戶(hù)編輯。用戶(hù)不需要知道詳細(xì)的WML標(biāo)記就可以進(jìn)行操作,也允許直接修改WML代碼。對(duì)于Card的管理也用樹(shù)形結(jié)構(gòu)表示。
該軟件的運(yùn)行平臺(tái)是Windows9598NT。
#p#
七. 電子出版工具
1. Microsoft Reader
Microsoft開(kāi)發(fā)出的一種專(zhuān)門(mén)的eBook閱讀軟件Microsoft Reader,支持OEB1.0。
Reader的最大特色就是首次使用了Microsoft對(duì)于字符顯示的研究新成果ClearType,它是一種能使文字在顯示器上的顯示效果象印在紙上一樣平滑清晰的字符技術(shù)。
2.ReaderWorks standard
ReaderWorks.com推出的支持Microsoft Reader的軟件,它可以生成Reader可讀的文件格式,可將HTML、TXT等格式文件轉(zhuǎn)換為Reader格式,讓用戶(hù)生成自己的eBook。
附言:以上就是筆者為你匯總的現(xiàn)有的各種XML實(shí)用工具,如有遺漏或者最新版本,還望補(bǔ)充!
【編輯推薦】




















