曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
成的產品,以便程序員可將其結合到自己的程序中。這些產品用戶界面(如果有的話)較差。這類分析程序包括IBM 的
alphaWorks’XML for Java、Microsoft 和DataChannel 的XJParser 和Silfide 的SXP。
XML for Java:http://www.alphaworks.ibm.com/ tech/xml
XJParser:http://www.datachannel.com/xml_resources/
SXP:http://www.loria.fr/projets/XSilfide/EN/sxp/
一些庫文件也包括在命令行上運行的獨立的分析程序。這些程序讀取XML 文件并報告發現的錯誤,但不加以顯示。例如,
XJParse 是一個Java 程序,包括在IBM 的Samples. XJParse 軟件包中的XML for Java 1.1.16 類庫中。要運行這一程序,
必須首先將XML for Java 的jar 文件添加到Java 類庫的路徑上。然后就可以打開DOS 窗口或外殼程序提示符,向XJParse
程序傳送要檢查合法性的文檔的本地文件名或遠程URL,以便對文檔進行檢查,如下所示:
C:\xml4j>java samples.XJParse.XJParse -d D:\XML\08\invalid.xml
本書寫作時,IBM 的alphaWorks 推出了XML for Java 的2.0.6 版本。在這一版本下,啟動的只是XJParse
而非Samples. XJParse 。但是,1.1.16 版本提供了更多的用于獨立檢查的功能。
您可以使用URL 代替文件名,如下所示:
C:\xml4j>java samples.XJParse.XJParse -d
http://metalab.unc.edu/books/bible/examples/08/invalid.xml
在任一情況下,XJParse 將列出發現的錯誤后跟樹狀結構的文檔作為反應。例如:
D:\XML\07\invalid.xml: 6? 4: Document root element, "foo", must
XML 實用大全
第 186 頁
match DOCTYPE root , "GREETING".
D:\XML\07\invalid.xml: 8, 6: Element "<foo>"is not valid in
this context.
<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/css" href="greeting.css"?>
<!DOCTYPE GREETING [
<!ELEMENT GREETING (#PCDATA)>
]>
<foo>
Hello XML!
</foo>
這個輸出不是特別吸引人。但是,像XJParse 這樣的合法性檢查程序的目的不是顯示XML 文件。相反,分析程序的任務是把
文檔分成為樹狀結構并把樹的結點傳送給顯示數據的程序。這個程序可能是Netscape Navigator 或 Internet Explorer 等
Web 瀏覽器。也可能是一個數據庫。甚至可能是自己寫成的定制程序。使用XJParse 或其他命令行合法性分析程序來驗證是
否編寫了其他程序可以處理的良好的XML。實質上這是一種校對或質量保證階段而不是最后的輸出。
因為XML for Java 和多數合法性分析程序是用Java 寫成的,它們也就具有跨平臺的Java 程序的所有缺點。首先,在能夠
運行分析程序之前必須安裝Java 開發工具(JDK)或Java 運行環境。其次,需要將XML for Java 的jar 文件添加到類路徑
上。這兩項工作都不是太簡單。它們都不是為非程序員的最終用戶設計的。這些工具有點設計欠佳,使用不便。
如果正在為瀏覽器編寫文檔,驗證文檔的最簡易方法是把文檔裝入瀏覽器看一看報告出什么錯誤。但是并不是所有的瀏覽器
都對文檔進行合法性檢查,某些瀏覽器僅接受結構完整的文檔,而不管其合法性如何。Internet Explorer 5.0β2 版對文
檔進行合法性檢查,但正式發行版都不進行了。
如果將文檔裝入Web 服務器且無需特別保密,基于Web 的合法性檢查程序是一種替代方法。這些分析程序只需要以簡單的形
式輸入文檔的URL。它們明顯的優點是不需要面對Java 運行軟件、類路徑和環境變量等麻煩。
圖8-3 顯示的是Richard Tobin 的基于RXP 的以Web 為宿主的XML 結構完整性和合法性檢查程序。可以在
http://www.cogsci.ed.ac.uk/%7Erichard/xml-check.html 處找到此程序。圖8-4 顯示的是使用這一程序檢查清單8-3 顯
示出的錯誤結果。
XML 實用大全
第 187 頁
圖8-3 Richard Tobin 的基于RXP 的以Web 為宿主的XML 結構完整性和合法性檢查程序
圖8-4 Richard Tobin 的XML 合法性檢查程序報告的清單8-3 中的錯誤
布朗大學的Scholarly Technology Group 在http://www.stg.brown.edu/
service/xmlvalid/處提供了一種檢查程序。這一程序以允許從本地計算機上載文件而不必把文件裝入公共服務器而著稱。
如圖8-5 所示,圖8-6 顯示了用這一程序檢查清單8-3 的結果。
XML 實用大全
第 188 頁
圖8-5 布朗大學的Scholarly Technology Group 的以Web 為宿主的XML 合法性檢查程序
圖8-6 布朗大學的Scholarly Technology Group 的合法性檢查程序報告的清單8-3 中的錯誤
XML 實用大全
第 189 頁
8.4 列出元素
要為一個文檔創建適當的DTD 的第一步是了解用DTD 中定義的元素編碼的信息結構。有時候信息就像通訊地址列表一樣。有
時則具有相對自由的形式,如說明短文或雜志文章。
讓我們以已經相對結構化的文檔為例,回到第4 章所示的棒球統計示例中。在那份文檔上加一個DTD,就使我們能把以前只
有通過約定才能遵守的約束條件付諸實施。例如,我們可以要求SEASON 元素包含正好兩個LEAGUE 子元素,每個TEAM 有
TEAM_CITY 和TEAM_NAME 子元素,并且TEAM_CITY 總在TEAM_NAME 之前。
回想起來,完整的棒球統計文檔包含下面一些元素:
SEASON RBI
YEAR STEALS
LEAGUE CAUGHT-STEALING
LEAGUE-NAME SACRIFICE_ HITS
DIVISION SACRIFICE_FLIES
DIVISION_NAME ERRORS
TEAM WALKS
TEAM_CITY STRUCK_OUT
TEAM_NAME HIT_BY_PITCH
PLAYER COMPLETE_GAMES
SURNAME SHUT_OUTS
GIVEN_NAME ERA
POSITION INNINGS
GAMES HOME_RUNS
GAMES_STARTED RUNS
AT_BATS EARNED_RUNS
RUNS HIT_BATTER
HITS WILD_PITCHES
DOUBLES BALK
XML 實用大全
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(59)