DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML入門之11問答
XML入門之11問答
編輯:XML詳解     
 1.什麼是XML?
XML 開發者們會告訴你,事實上XML並不是一種語言,而是一種用來定義其它語言的系統。可能你已經聽過,或許甚至自己嘗試過一些這樣的語言??比如微軟為推(push)技術所推出的頻道定義格式(Channel Definition Format)。
W3C是互連網上一些公用標准的開發者,他推出了一系列和XML相關的標准和草案。他們把XML描敘成“一種用來表達結構化數據的通用語法”。所謂結構化數據是指被標簽(tags)定義了其內容,意義和用法的數據。例如,在HTML的定義中,<H1>標簽所定義的文本,將會用一種特定的字體和大小所顯示出來。一個XML標簽會明確的確定一種信息: <AUTHOR>標簽可能表示的是文檔的作者,而<PRICE>則可能包含了產品的價格。與Html中標簽所不同的是:XML標簽的含義是自定義的,如果你願意,可以用<PRICE>來表示作者信息,而用<AUTHOR>來表示產品價格。雖然這看起來會很別扭,但絕對是正確的。
通過分離結構和數據,一份XML文檔能夠一經寫出,就能應用在多種不同的用途:在計算機屏幕上顯示出來,或者顯示在手機屏幕上,又或者被轉到為盲人設計的語音設備上,等等,諸多功用,不一而足。它幾乎能夠工作在任何可能的通訊設備上。這時候,一個XML文檔的作用,已經遠遠超出了當初你所以為的那樣,僅僅是用來顯示內容的簡單文檔了。這樣,XML就能夠在除了互連網的其它地方也能夠一展身手。
在一些大型的文檔制作商中,SGML是他們用了很多年的語言,但是它實在是太復雜了,僅僅是定義就有400多頁。XML的出現也為他們創造了一些契機。事實上XML是SGML的一個精簡了的子集,SGML的大部分工作都可以由XML來完成,而XML比起SGML來卻是簡單了許多。
當然,平台無關的XML最初是為Web所設計的,它也將在在Web上產生最大的影響。
DOM(Domument Object Model)是一個編程接口,他定義了在一個文檔中如何進行數據存取的機制。XML能夠為Web所做的,很大程度上取決於它是如何同DOM(文檔對象模型)進行交互。
使用DOM,程序員可以用一種標准的方法來動態的操作文檔的內容和相關的一些屬性。換句話說,程序員可以讓在一個浏覽器的文檔對象樹中的一段內容進行一些特定的動作。例如:當把鼠標移到一小段文字上面時,它會改變顏色。網景的Navigator和微軟 Internet EXPlorer都定義了個不相容的DOM,但是這兩個公司都宣布在他們下一個版本的浏覽器中會支持W3C的標准DOM。這會給程序員帶來很多的方便。
2.為什麼XML很重要?
在Web上一條很重要的原則是:內容是一個網站最為首要的東西。但不幸的是,內容總是同如何將他們顯示出來這個方面聯系在一起的。你在浏覽網頁的時候,有多少次看到一個小小的標簽,上面寫著“最好在800*600解析度下浏覽本網站”呢?數不勝數吧!
XML將有助於解決這個問題。因為在XML中,網站建設者不再是指定在網頁的什麼地方顯示什麼東西,他們需要做的是定義好一個文檔的結構。例如,你需要定義的是文檔的標題,作者,一系列相關鏈接等等。任何裝備有XML 浏覽器的設備??一個掌上電腦,或這是電視機頂盒,或者是一個高性能的工作站等等??就能夠把XML文檔的內容根據各個設備的顯示特性顯示出來。
或許XML最強的特性,在於其內在的可擴展性。任何的公司和組織都能夠擴展XML 來實現新的應用。現在在乎聯網上幾乎每天都有關於XML的應用方案的提出。一些基於XML的語言已經開始被使用,像微軟的頻道定義格式??還有一些正在被開發之中,包括Resource Definition Format(資源定義格式)和Open Software Description(開放式軟件描敘)等等。
XML還很有可能成為數據和文檔交換機制的標准。例如,可以用XML來實現在Internet上不同數據庫之間的信息交換。
到現在為止,要准確的說明XML的公用似乎還為時過早。但是它所帶來的可能性是無限的,或許這就是為什麼XML能夠在其初期就能夠如此引人關注的原因吧。
3. SGML,Html和XML的關系是怎樣的?
SGML,標准通用標記語言(Standard Generalized Markup Language)最早是用來再字處理程序中描敘數據用的。像RTF(富文本)文件,Word的DOC文件等等,都可以看成是應用SGML的例子。如果你用記事本打開一個RTF文件,就可以看到同HTML相近的一些東西,那就是RTF的源數據描敘,也是通過SGML定義的。SGML從誕生到現在已經有上10年的時間了,可以說已經發展的十分成熟。XML和HTML都可以算的上是SGML的徒子徒孫了,他們都是從SGML發展而來的文檔格式描敘語言。因此他們都有一些共通的特性,比如相近的語法,都使用尖括號標簽等等。但是准確的說來,Html是SGML的一個應用,而XML是SGML的一個精簡子集。
這其間的差別是本質上的。簡單的說來,HTML不能夠用來定義(或者說衍生)一個新的應用,而XML卻能夠做到。例如,資源描敘格式和頻道定義格式就是由XML定義出來的新的應用。理論上講,甚至可以用XML來重新改寫Html。對於它們之間的關系,W3C給出了一個圖例(見圖),生動的說明了這一點。
XML事實上是與SGML相兼容的??XML文檔能夠被任何的SGML編輯和浏覽器所解析。但是,XML比SGML要簡單的多,並且他是特別的為傳輸帶寬有限的Internet所設計的。Tim Bray是XML標准的編制人員之一,根據他的說法,XML就是要繼承SGML的優點,但去處SGML的復雜性,並使之能夠在網上很好的工作。
HTML,SGML,和XML都將在一定時間內守住自己的崗位,暫時不會有哪一種會被其他的所淘汰。HTML仍然是網上發布信息的最為快捷的方式。如果要發布的數據有長期的應用價值並且需要一些結構化的內容,網站建設者應該考慮轉而使用XML。和Html與XML不同,SGML將不會在網上得到廣泛的贊同,因為它並不是為網上傳輸而特別設計的。但對於高端的應用,那些高度結構化的文檔應用,SGML仍將發揮起作用。
4.XML是如何被實現的?
XML能夠被應用到許多不同的方面。其中之一是用來在人和機器之間交換信息,比如把信息從一個網站服務器解釋了在傳遞給用戶浏覽器共用戶浏覽。在有就是在不同的機器,不同的系統,不同的應用程序之間進行數據交換。
在上面的兩種應用中,你可能都需要一種三層模式各構架:一個數據庫服務器是一層,用來存貯數據。一個作為中間層的服務器,用來對數據進行適當的解釋和表達,然後就是客戶端,數據被顯示出來,並能夠做進一步的應用。數據庫服務器能夠從多個數據源接收信息,或許它們已經是作為XML格式存在了的。中間層能夠把所有的數據整合起來,然後發送到客戶端去。
現在,很多的Web網頁就是這樣被生成的。並且,一個構造的比較好的XML文檔,能夠允許客戶端程序修改文檔的外端來顯示在不同的媒介中,比如在打印機中打印出來。
5.什麼是DTD?
一個文檔類型定義(Document Type Definition)是一套標簽的語法定義。它告訴你在一個XML文檔中你能夠使用那些標簽,標簽出現的順序以及能夠使用那些屬性等等。DTD最先是在SGML中工作的,在XML中也引入了DTD,但它不是構成一個XML文檔所必需的。而且,它通常也並不與XML一起出現在一個文檔中(當然也可以在一起),而是在一個單獨的DTD文件中,這樣,一個單獨的DTD就可以被多個XML文件所引用了。
因為XML本身並不是一個語言,而是用來定義其他語言的標准方法,因此他並沒有一個像Html那用的通用的DTD。因而,每個想用XML的公司和個人,都可以定義其合適的DTD,來滿足不同的要求。
關於DTD也有很多的爭論。一些人認為它為很重要,是最為實質性的東西。一些人為它限制了創造性,還有一些人認為它很有用,但還不是足夠的好。微軟試圖用他的XML-Data來結束這些爭論,但批評家們認為應該從DTD的本質定義上對其進行改進。
微軟的schema包括微軟在內的一些公司,針對DTD的一些問題提出了一個DTD的代替方案,稱為schema,並且已經作為XML-Data提交給W3C。和DTD相似,一個schema提供了關於文檔的一些規則,並給出了能夠使用的標簽,屬性以及標簽之間的屬性,等等。
但與DTD所不同的是,schema能夠用來定義數據類型。例如,如果在DTD中定義了一個名為<PRICE>的標簽,此時包含在標簽中的內容可以是數字或者字符串。但是如果使用schema,就可以強制其中輸入的內容只能是數字,而不能夠輸入其他類型的數據。
這種方法顯然是有效的,特別是在不同的應用程序,對象或者數據庫之間交換數據的時候。唯一的問題就是:schema能否成為DTD標准的一部分,或著僅僅是一個獨立的XML的擴展。
6.什麼是well-formed和valid文檔?
在本質上存在著兩種類型的XML文檔:well-formed(結構良好的)和 valid(有效的)。一個結構良好的XML文檔遵從XML語法的一般規則。這個規則說起來要比HTML和SGML都要嚴格的多。Html的語法規則有很大的隨意性,經常可以有一些省略和不規范的寫法存在。但XML文檔卻不能夠這樣,必須嚴格的以XML的語法規則來撰寫XML文檔。下面給出了well-formed的XML應該遵守的幾條規則:
1. XML文件的第一列必須是XML的文檔申明;
2. XML文件中只能有一個根節點。
3. 開始標簽與結束標簽必須稱對出現。
4. 空的標簽必須要有“/”符號。
5. 首有的標簽不能夠交叉出現,必須滿足巢狀的結構。
6. 英文的大小寫是有區別的。
7. 屬性指必須用雙引號包圍起來。
8. 特殊字符有特殊的表達方法,包括“&”,“<”,“>”,“"”,“'”這五個字符。
一個有效的XML文檔要比結構良好的XML文檔要求更為嚴格一些。它除了要滿足所有上面列出的八條規則外,還必須遵守一個DTD文檔的定義。前面說過,DTD對於一個XML不是必須的,但對於一個有效的XML文檔來說,必須有一個對應的DTD定義存在。
確認XML文檔的有效性,很大程度上是那些出版和撰寫工具所要考慮的問題。對於一般的XML浏覽器而言,要顯示出XML的內容,只需要是滿足well-formed的定義就可以了。
7.浏覽器是如何解讀XML文檔的?
用來解讀XML的工具一般的被稱為XML分析器(parser),不過它正式的名稱應該是XML處理器(processor)。XML為那些用來撰寫,出版,搜索,或者顯示的應用程序傳遞數據。XML並沒有提供一套API(應用程序接口)來控制其行為,他只是簡單的把解析後的XML文檔傳遞給應用程序。當然,前面已經說過,對於不滿足well-formed條件的XML文檔,XML是不會進行解析的。網景和微軟都已經在其最新版本的浏覽器中內置了XML解析器。這樣,當XML被傳遞到客戶端浏覽器時,首先經過解析器的解析,然後才傳遞給浏覽器把內容顯示出來。
8,RDF,CDF和XML之間有什麼關系?
如果XML有能力說出某種語言,那麼XML應用程序就可以看成被說出的那種具體的語言。RDF(Resource Description Format)就是那樣的一種XML應用。它也是一種語言,只不過是遵守XML的語法,由XML衍生出來的。
RDF是用來描序和存取數據的一種方法。這意味著RDF是關於數據的數據,或者稱為元數據(metadata)。在WEB上,這種元數據可以被用來建立標准的網站地圖,得到更為精確的搜索結果,以及網站主體的分級描序。
RDF還能夠用來創建智能書簽,當書簽所引用的網頁地址發生改變的時候,書簽本身也能夠自動的改變。這對於那些內容經常更新的網站來說尤為有用。對於網站的建設者而言,使用metadata是一件很簡單但能夠收效頗大的事情。
同樣的,CDF也是有XML發展而來的。CDF(Channel Definition Format)是由微軟提出並大力倡導的。通過它的XML解析器,Internet Explorer 4.0能夠讀懂CDF文件並更具其內容進行相關的網頁提取操作。這也就是所謂的“推”技術。網景也有相應的“推”技術,但在語法構成上與微軟的CDF並不相同。
9,風格頁和XML的關系是什麼?
因為XML把內容和表現形式分開來了,所以網站設計者們需要一種新的方法來控制版面的和外觀的顯示。風格頁這時候挺身而出了。到現在,共有三種不同的風格頁能夠和XML一起工作,它們是:
1. Cascading Style Sheets (CSS)。
2. Extensible Style Language (XSL)。
3.Document Style Semantics and Specification Language (DSSSL)。
XML對於現在的CSS標准支持的很好,CSS也能夠完成大部分基本的風格和外形的設定。但是CSS並不能夠滿足一些高端的應用。這時候或許更多的要求助於DSSSL,這項ISO標准。它曾經和XML的先輩SGML合作得很好,現在對付XML當然不會有什麼問題??唯一的問題是:她太復雜了,而且大多數是為了出版業而設計的,並沒有太多地考慮網上傳輸的特殊性。
於是,剩下的就是XSL了,它基本上就是專為XML所設計的。現在XSL正作為W3C的一項議案有待於通過討論,所以現在只有在IE5中得到了支持,其他浏覽器都還不認識XSL。XSL給網頁設計者和用戶以更大的彈性,它很多的特性在HTML中根本是無法想象的。例如:Html的<H2> 標簽在所有的浏覽器中顯示都是一成不變的,但在XSL中,社記者能夠指定任意的頁面元素按他們的想法顯示出來。而用戶也可以通過個人的設定來決定<H2>到底該如何顯示。 XSL是被設計成可以和一些腳本語言比如Javascript協同工作的。你甚至可以寫這樣的腳本:“if 某個XML元素的某個屬性值=10 then 讓它顯示成綠色,else 讓它顯示成藍色”,等等。和XSL在一起,XML顯得無所不能。
10.XML對於超鏈接有那些改進?
XML對Html的超鏈接做了一些改進,增加了一些特性,包括能夠建立“智能”鏈接,可以省去不少手工編寫JavsScript的麻煩。在XML中,鏈接是作為一個對象出現的,可以向操作任何的其它對象那樣,對超鏈接進行方便的操作。
原來的關於鏈接的的標准??XLL,XML鏈接語言(XML Linking Language)現在被分為兩種新的標准:Xpointer和XLink.
Xpointer:在Html中,可以通過書簽鏈接到一個頁面的任何地方。通過Xpointer你將能夠“尋址到(address to)”(而不是“鏈接到(link to)”)其他頁面的任何一部分的內容。顯然的,這對於在文檔引用方面是非常有用的。
Xlink:當用戶點擊了Html中的一個超鏈接後,當前的網頁被一個新的網頁所替代。Xlink能夠讓web開發者為鏈接這個對象添加一些動作(behaviors)。例如:在現在你必須用JavaScript來實現把鏈接的網頁在一個新的窗口中顯示出來,但Xlink通過給鏈接對象添加了一些行為,實現彈出窗口容易到只是簡單的調用對象的方法而已。其他的一些有用的應用,像彈出的警告對話框,需要用戶做出確認的對話框等等,通過Xlink的對象機制都可以很容易地實現。但現在,我們還都必須求助於腳本編程采能夠解決。
對於一系列相關的鏈接,XML能夠讓web開發者創建擴展鏈接(Extended Links)來方便的實現像www.webring.com這樣的網站或網頁,把一些相同主題的網頁自動的鏈接在一起。現在實現這個功能需要使用到CGI腳本,但是擴展鏈接將提供標准的方法來建立資源之間的關聯。
現在還有一些問題需要得到進一步的討論,特別是在“行為”機制方面還有一些工作要作。但這並不妨礙在不久的將來,Xpinter和Xlink作為新的標准被廣泛使用。
11.XML的國際化問題
XML的出現,使得網站的國際化變得空前的容易。和Java一樣,XML也是使用的Unicode(ISO 10646)作為其編碼標准,這是的網站建設者們能夠很容易的寫出各國的文字和符號,而不必過多的擔心亂碼的問題。Unicode 包括了所有的ASCII字符,以及簡體中文,繁體中文,日文,韓文,希臘文等等。在XML中甚至可以允許有混合的編碼出現,例如,一個顯示中文的網頁可以引用一個德文的單詞,而不必擔心出現亂碼。
開發者不需要專門為了Unicode而在去學習什麼新的東西,網頁一經寫好後,在客戶端的浏覽器中顯示時,浏覽器會自動的使用合適的字符集把網頁顯示出來。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved