資料夾下的檔案為這次作業(yè)的簡單范例用以顯示的網(wǎng)頁(h_第1頁
資料夾下的檔案為這次作業(yè)的簡單范例用以顯示的網(wǎng)頁(h_第2頁
資料夾下的檔案為這次作業(yè)的簡單范例用以顯示的網(wǎng)頁(h_第3頁
資料夾下的檔案為這次作業(yè)的簡單范例用以顯示的網(wǎng)頁(h_第4頁
資料夾下的檔案為這次作業(yè)的簡單范例用以顯示的網(wǎng)頁(h_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論