




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、前言:看起來都相同,用以比較。l html.html:純使用HTML寫成ll xmltest.xml:XML範(fàn)例資料l xmltest.dtd:XML範(fàn)例DTDl sgmltest.sgml:SGML之範(fàn)例。由於我找不到一個(gè)適當(dāng)?shù)能涹w來測試這份文件,因此它完全是以我對SGML理解下的產(chǎn)物,即使不能保證完全正確,但應(yīng)已足夠用作範(fàn)例。HTML與XML:(由於使用了IE才能看的tag,請用IE開啟)開啟後,應(yīng)該如下:外表上並無差異,但原始碼卻相差甚遠(yuǎn)。以下僅列出table部分之原始碼:html.html:<table border="1"><tr><
2、th>類別</th><th>中文名稱</th><th>英文名稱</th></tr><tr><td>學(xué)校</td><td>國立交通大學(xué)</td><td>NCTU</td></tr><tr><td>組織</td><td>國際自由軟體協(xié)會(huì)</td><td>GNU</td></tr><tr><td>公司</
3、td><td>微軟</td><td>Microsoft</td></tr></table>xmltest.html:<xml id="xmlex" src="xmlex.xml"></xml><table border="1" datasrc="#xmlex"><thead><th>類別</th><th>中文名稱</th><th>英
4、文名稱</th></thead><td><span datafld="category"></span></td><td><span datafld="chinese_name"></span></td><td><span datafld="english_name"></span></td></tr></table>在xmltest.html這
5、個(gè)例子中,所有資料都裝載於xmltest.xml中:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE example_data SYSTEM "xmltest.dtd"><example_data> <data> <category>學(xué)校</category> <chinese_name>國立交通大學(xué)</chinese_name> <english_name>NCTU</eng
6、lish_name> </data> <data> <category>組織</category> <chinese_name>國際自由軟體協(xié)會(huì)</chinese_name> <english_name>GNU</english_name> </data> <data> <category>公司</category> <chinese_name>微軟</chinese_name> <english_name>M
7、icrosoft</english_name> </data></example_data>Point 1:取向不同透過這個(gè)簡單的例子,便能看出兩者的決定性差異:HTML重點(diǎn)在於描述文件的外貌,而XML則著重於描述文件的內(nèi)容。Point 2:內(nèi)容與外觀耦合度由於XML本身僅描述文件的內(nèi)容,各個(gè)元素並未有明確定義,因此XML文件並沒有一定的顯示方式(硬要說一個(gè)公定的方法的話,請直接用IE開啟之,目前常見的瀏覽器通常會(huì)用一樣的方法顯示)。在這裡,我使用了簡單的HTML來顯示XML文件;由於文件內(nèi)容與文件外觀已完全分離了,我也可以選擇Javascript、XSL等
8、不同的方式呈現(xiàn),當(dāng)資料需要更新,直接更新或替換資料便可(例如直接替換掉本例中的xmltest.xml);相對地,HTML已將文件內(nèi)容與外觀綁死在一起,無法做到上述的事情。Point 3:文件內(nèi)容的結(jié)構(gòu)化XML的文件必定是單一樹狀結(jié)構(gòu)的,而HTML文件則完全沒有結(jié)構(gòu),與純文字文件無異。因此XML文件可以做到語意搜尋或依照不同資料需要排序等功能,例如本例的xmltest.xml可針對category屬性進(jìn)行資料抽取等。Point 4:ValidationXML文件擁有一套validation的機(jī)制:DTD(Document Type Definition),只要符合其規(guī)範(fàn)、能夠通過Validati
9、on,各地的使用者便能確保其文件的正確性。本例中我也寫了一個(gè)簡單的DTD(xmltest.dtd)來規(guī)範(fàn)資料格式:<!ELEMENT example_data (data+)><!ELEMENT data (category,chinese_name,english_name)><!ELEMENT category (#PCDATA)><!ELEMENT chinese_name (#PCDATA)><!ELEMENT english_name (#PCDATA)>HTML由於與一般文字文件無異,無法擁有這樣的機(jī)制。Point 5:可
10、擴(kuò)充性XML是一種meta language,用以描述文件的內(nèi)容,因此它除了<? xml ?>、<!DOCTYPE等共有宣告外,並沒有標(biāo)準(zhǔn)tag這種東西。相對地,標(biāo)準(zhǔn)HTML所有tag都是預(yù)先定義的。Point 6:文法嚴(yán)謹(jǐn)性這點(diǎn)我並未在範(fàn)例中呈現(xiàn)。HTML草創(chuàng)初期,由於群雄割據(jù),標(biāo)準(zhǔn)未明,各家瀏覽器紛紛加入自己的獨(dú)門絕招:自家的tag、自家的顯示方式、最嚴(yán)重的莫過於自家的防呆機(jī)制:網(wǎng)頁設(shè)計(jì)者少了closing tag,什麼地方打錯(cuò)了,諸如這些應(yīng)列為錯(cuò)誤的東西,瀏覽器卻幾乎通吃,用自己的一套方法幫網(wǎng)頁設(shè)計(jì)者打圓場,於是HTML便不知不覺中擁有了惡名昭彰的自由度,造成不少混亂。
11、XML的標(biāo)準(zhǔn)中明定:XML文件之文法必須符合規(guī)則,否則該處理該份文件的XML application必須強(qiáng)制中止。XML與SGML:XML實(shí)際上是SGML的一個(gè)subset,因此上述比較亦適用於HTML與SGML之差異,不多贅述。SGML範(fàn)例為資料夾下的sgmlex.sgml,為了閱讀方便起見,我把DTD與本文皆寫在同一份檔案中。以下比較皆於必要時(shí)取出片段sgmlex.sgml本文檔作參照之用,若需要閱覽完整的檔案,請以notepad之類軟體開啟。Point 1:Minimization rulesXML定義中寫道:每個(gè)tag皆必須有一對start tag與end tag。但在SGML中卻不是
12、這麼回事,只要不造成混淆,兩者都可以是optional的。例如: <data> <category>公司 <chinese_name>微軟 <english_name>Microsoft </data>這可以在SGML DTD中加以定義:<!ELEMENT data - (category,chinese_name,english_name)><!ELEMENT category -O (#PCDATA)><!ELEMENT chinese_name -O (#PCDATA)-(note)><
13、!ELEMENT english_name -O (#PCDATA)>-表示必須,O則為非必需。Point 2:結(jié)構(gòu)自由度XML文件必須有單一root node,且結(jié)構(gòu)必須是單一的樹狀結(jié)構(gòu)。但SGML中允許一份文件有多種同步結(jié)構(gòu)(concurrent structure),例如sgmlex.xml中就有structure1與structure2兩種結(jié)構(gòu),方法是在parent node上加入(structure)前綴,如<(structure2)entry>與<(structure1)data>,child node則不須再強(qiáng)調(diào)。這也可以使用多組DTD來加以規(guī)範(fàn):&
14、lt;!DOCTYPE structure1 <!ELEMENT structure1 - (data)+(note)><!ELEMENT data - (category,chinese_name,english_name)><!ELEMENT category -O (#PCDATA)><!ELEMENT chinese_name -O (#PCDATA)-(note)><!ELEMENT english_name -O (#PCDATA)><!ELEMENT note - (#PCDATA)>><!DOC
15、TYPE structure2 <!ELEMENT structure2 - (entry)+><!ELEMENT entry - (#PCDATA)>>structure1之結(jié)構(gòu)雷同於xmltest.dtd(除了<note>,容後解釋),而structure2則純粹把每份資料當(dāng)作一筆entry,而非如structure1般細(xì)分為category,Chinese_name,English_name等。Point 3:Exception ListXML定義中寫道:每個(gè)元素都必須properly nested。也就是說,每個(gè)元素在文件中都會(huì)有其固定層級。但
16、SGML中允許一些特別定義的元素能任意出現(xiàn)在任何位置或禁止出現(xiàn),例如sgmlex.sgml中的<note>:<(structure2)structure1> <note>範(fàn)例資料</note> <(structure2)entry> <(structure1)data> <category>學(xué)校</category> <chinese_name>國立交通大學(xué) <english_name>NCTU <note>這可是所好學(xué)校!</note> </(
17、structure1)data> </(structure2)entry> <(structure2)entry> <(structure1)data> <note>不是黑幫組織</note> <category>組織這個(gè)範(fàn)例中,<note>出現(xiàn)在<structure1>、<English_name>與<data>三種不同的層級中。在DTD中,一個(gè)可出現(xiàn)在某層級以下任意位置的元素表示為<!ELEMENT name +(exception name)>也就是名
18、稱前加上”+”,例如:<!ELEMENT structure1 - (data)+(note)>所以<note>可以出現(xiàn)在structure1以下層級的任何位置。若加上的是”-“,則代表禁止其出現(xiàn),如:<!ELEMENT chinese_name -O (#PCDATA)-(note)>故在此例中,<note>不能出現(xiàn)在<Chinese_name>層級。Point 4:文件內(nèi)容的控制關(guān)於此項(xiàng)我並未在範(fàn)例中呈現(xiàn)。造成這種現(xiàn)象的主要原因在於marked section能力的差異。XML所支援的marked section種類並不多,似乎只有CDATA(被MARK為CDATA的區(qū)域?qū)⒉槐籔arser處理,直接展開。)在SGML中還有l(wèi) INCLUDE:此區(qū)域?qū)⒈话胛募 IGNORE:此區(qū)域?qū)⒈缓雎詌 TEMP:此區(qū)域只是暫時(shí)性的內(nèi)容,未來可視情況需要增刪藉此,SGML文件甚至可以做到”在A區(qū)顯示這部份,在其他地區(qū)則拿掉”這類內(nèi)容控制。例如:<!ENTITY % A “INCLUDE”>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融市場與投資理論考試試卷及答案
- 2025年電氣工程師考試試題及答案
- 2025年基礎(chǔ)護(hù)理技能操作考試試卷及答案
- 2025年全國會(huì)計(jì)從業(yè)資格考試試卷及答案
- 生物醫(yī)藥企業(yè)股東除名與股權(quán)重組專項(xiàng)服務(wù)協(xié)議
- 生物樣本庫建設(shè)與科研合作項(xiàng)目培訓(xùn)合同
- 突發(fā)公共事件危機(jī)公關(guān)應(yīng)急預(yù)案合同
- 婚姻忠誠協(xié)議中“忠誠”界定與婚姻關(guān)系穩(wěn)定協(xié)議書
- 網(wǎng)絡(luò)文學(xué)創(chuàng)作室租賃及作品推廣合作合同
- 網(wǎng)絡(luò)小說有聲改編權(quán)授權(quán)與市場推廣及衍生品授權(quán)合同
- 如何正確選擇和使用運(yùn)動(dòng)護(hù)具
- 武術(shù)禮儀:抱拳禮、手型、步型
- 標(biāo)本溶血或凝血的應(yīng)急預(yù)案
- 部編版六年級語文下冊第五單元《口語交際:辯論》范例《電腦時(shí)代需要不需要練字》
- 《用眼衛(wèi)生》的教學(xué)設(shè)計(jì)
- (完整版)醫(yī)療器械網(wǎng)絡(luò)交易服務(wù)第三方平臺質(zhì)量管理文件
- 中國動(dòng)漫發(fā)展史課件
- 【履職清單】2023新版安全生產(chǎn)責(zé)任體系重點(diǎn)崗位履職清單
- 門式起重機(jī)、架橋機(jī)作業(yè)前安全隱患排查表
- 安全閥在線校驗(yàn)及延期校驗(yàn)
- GB/T 9128.1-2023鋼制管法蘭用金屬環(huán)墊第1部分:PN系列
評論
0/150
提交評論