曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
協(xié)議和軟件更為協(xié)調(diào),從而簡(jiǎn)化了數(shù)據(jù)處理和傳輸。作為一個(gè)不錯(cuò)的S G M L子集, X M L還保持
了對(duì)現(xiàn)有的面向S G M L的系統(tǒng)的向下兼容性,這樣,用X M L標(biāo)記過的數(shù)據(jù)就仍然可以在這些系
統(tǒng)中使用,為基于S G M L的行業(yè)節(jié)省了大筆的改造費(fèi)用,同時(shí),與We b的結(jié)合也使得它們更便于
被訪問。
1998年2月,XML 1.0成為了W3C的推薦標(biāo)準(zhǔn)。包括Extended Backus-Naur Form (EBNF) 中語法
標(biāo)識(shí)在內(nèi)的這個(gè)正式的規(guī)范可以很容易地從W 3 C的We b站點(diǎn)(h t t p : / / w w w. w 3 c . o rg / T R / R E C - x m l)上
得到;此外,X M L規(guī)范的制定者之一Tim Bray還在h t t p : / / w w w. x m l . c o m / a x m l / t e s t a x m l . h t m上提供了
一個(gè)有著非常不錯(cuò)的注解的版本。
在http://www.ucc.ie/xml/上,由Peter Flynn等人代表W3C的XML研究組維護(hù)的一個(gè)XML 1.0
FAQ還提供了到其他與XML相關(guān)的主題的鏈接。
X M L是一種界定文本數(shù)據(jù)的簡(jiǎn)便而標(biāo)準(zhǔn)的方法。它曾經(jīng)被人稱作“ We b上的A S C I I碼”。就
好像你可以使用自己喜愛的編程語言來創(chuàng)建任何一種數(shù)據(jù)結(jié)構(gòu),然后同其他人在其他計(jì)算平臺(tái)
上使用的其他語言來共享一樣。X M L的標(biāo)記用來說明你所描述的概念,而屬性則用來控制它們
的結(jié)構(gòu)。所以,你可以定義自己所設(shè)計(jì)出的語法并同其他人共享。
下面讓我們來看一個(gè)簡(jiǎn)單的例子:
程序清單1 - 2
我們不必過多地?fù)?dān)心語法的特殊性,下面你會(huì)看到這種機(jī)制的強(qiáng)大所在—只要簡(jiǎn)單地添
加標(biāo)記就可以描述它們所封裝的信息。
X M L的數(shù)據(jù)描述機(jī)制意味著它將成為一種在I n t e r n e t上共享信息的強(qiáng)大途徑,因?yàn)椋?br />
• 它是開放的;X M L能夠在不同的用戶和程序之間交換數(shù)據(jù),而不論其平臺(tái)如何。
• 它的自描述的特性使其對(duì)于B 2 B和企業(yè)內(nèi)部網(wǎng)解決方案來說是一種有效的選擇。
• 無需事先協(xié)調(diào),我們就可以在程序之間共享數(shù)據(jù)。后面我們將看到, X M L的機(jī)制使我們能
夠找出一類X M L文檔的結(jié)構(gòu)。
為了使用X M L 文檔, W 3 C 為X M L標(biāo)準(zhǔn)化了一套應(yīng)用程序編程接口( A p p l i c a t i o n
Programming Interface, API),這樣我們就可以輕松地編制讀寫X M L的程序,同時(shí),開發(fā)者團(tuán)體
第1章XML 簡(jiǎn)介使用3 下載
還設(shè)計(jì)了一套特殊的,免費(fèi)贈(zèng)送的,基于事件的替代A P I。此外, X M L在設(shè)計(jì)時(shí)已準(zhǔn)備支持非
歐洲語言和進(jìn)行國(guó)際化。同HTML 4.01一樣,X M L基于的是在ISO/IEC 10646字符集標(biāo)準(zhǔn)(等同
于現(xiàn)在著名的U n i c o d e標(biāo)準(zhǔn),h t t p : / / w w w. u n i c o d e . o rg)中定義的通用字符集( Universal Character
S e t,U C S)。可以說,所有促使H T M L得以流行的特性都出現(xiàn)在了X M L當(dāng)中。
但是, X M L并非H T M L的直接替代品。在仔細(xì)閱讀了X M L推薦標(biāo)準(zhǔn)( W W W協(xié)會(huì)的對(duì)等標(biāo)
準(zhǔn))中的每一個(gè)字之后,我們并沒有發(fā)現(xiàn)任何與可視化表現(xiàn)形式有關(guān)的內(nèi)容。與注重?cái)?shù)據(jù)及其
表達(dá)方式的H T M L不同,X M L只關(guān)心數(shù)據(jù)本身。
雖然X M L本身是數(shù)據(jù),但X M L的研究者并沒有忘記如何表達(dá)的問題。與依靠擴(kuò)充代碼部分
的傳統(tǒng)數(shù)據(jù)表示方法不同, X M L樣式的表現(xiàn)技術(shù)是由數(shù)據(jù)驅(qū)動(dòng)的。從最簡(jiǎn)單的到極端復(fù)雜的,
無所不能。但是,不論采用什么技術(shù), X M L的樣式化都是通過另一個(gè)被稱作樣式單的文檔來實(shí)
現(xiàn)的。在其中,設(shè)計(jì)者會(huì)格式化樣式和決定何時(shí)應(yīng)用樣式的規(guī)則。然后,這個(gè)樣式單又可以用
于其他多個(gè)文檔中,以產(chǎn)生類似的效果。
樣式和規(guī)則在顯示時(shí)會(huì)應(yīng)用到X M L的數(shù)據(jù)上,它們甚至可以轉(zhuǎn)換為H T M L—或者其他什
么數(shù)據(jù)格式。本書的一條主線就是研究如何可視化地表示X M L標(biāo)記出的數(shù)據(jù)。在H T M L中實(shí)現(xiàn)
樣式的特性可以說易如反掌,但老實(shí)說X M L在這方面并不擅長(zhǎng)。
最后,不管We b上把X M L吹得多么神乎其神,但它并不能把之前的難題一掃而光。它能夠
使編程者輕松自如地完成許多有趣的事情,但X M L并不是編程語言,也不是基于對(duì)象的平臺(tái),
更不是操作系統(tǒng)。它只是一種能夠思考、交換和表示數(shù)據(jù)的,獨(dú)立于平臺(tái)的,強(qiáng)大而精巧的技
術(shù)。
現(xiàn)在,我們已經(jīng)對(duì)X M L略知一二,下面讓我們來看一看它是如何應(yīng)用到We b的體系結(jié)構(gòu)當(dāng)
中的。
1.3 Web體系結(jié)構(gòu):過去與未來
第一代We b應(yīng)用程序繼承了傳統(tǒng)的客戶機(jī)-服務(wù)器模式的軟件體系結(jié)構(gòu)。其中某些將關(guān)系型
數(shù)據(jù)庫(kù)作為第三層使用,但所有各層由專用的、固定的方法進(jìn)行控制。頗具諷刺意義的是,這
與We b的精髓是背道而馳的—由簡(jiǎn)單的協(xié)議控制的松散的、開放的資源集合。與此相反,
X M L則出色地實(shí)現(xiàn)了這一目標(biāo)。它為編程者提供的工具能夠構(gòu)建真正的、由開放標(biāo)準(zhǔn)和自描述
數(shù)據(jù)控制的多層分布式系統(tǒng)。讓我們比較一下傳統(tǒng)We b體系結(jié)構(gòu)與X M L驅(qū)動(dòng)下的We b體系結(jié)構(gòu)。
1.3.1 傳統(tǒng)Web體系結(jié)構(gòu)
首先,讓我們了解一下We b應(yīng)用程序的體系結(jié)構(gòu)(參見圖1 - 1)。客戶端程序是一個(gè)瀏覽器,
它充當(dāng)著瀏覽者的代理的角色。瀏覽器將對(duì)頁面的請(qǐng)求發(fā)送給H T T P服務(wù)器。這個(gè)請(qǐng)求會(huì)跟隨著
一系列的參數(shù)名稱和值。這些可能是被添加在頁面U R L的后面(HTTP GET),也可能是單獨(dú)發(fā)
送(HTTP POST)(要了解關(guān)于H T T P的詳細(xì)內(nèi)容,請(qǐng)?jiān)L問h t t p : / / w w w. w 3 . o rg / P r o t o c o l s /)。參數(shù)
及其名稱是由應(yīng)用程序決定的,而且必須為客戶端所知曉,要做到這一點(diǎn),就需要把它們放置
到發(fā)出請(qǐng)求的頁面中。隨后,服務(wù)器應(yīng)用程序的開發(fā)者也必須創(chuàng)建客戶端頁面。任何希望利用
服務(wù)器的人員都必須使用客戶端頁面,或者在客戶端頁面顛倒設(shè)計(jì)請(qǐng)求的結(jié)構(gòu)。但是,只要服
4使用XML 高級(jí)編程
下載
務(wù)器改變請(qǐng)求的結(jié)構(gòu),這類顛倒設(shè)計(jì)就不再起作用。
在這種前提下,服務(wù)器會(huì)通過C G I腳本或A S P代碼來動(dòng)態(tài)生成H T M L以滿足這類請(qǐng)求。這類
腳本可能使用一套數(shù)據(jù)庫(kù),或者進(jìn)行自身的一些處理。很少(如果有的話)有多個(gè)H T T P服務(wù)器
協(xié)作完成一個(gè)請(qǐng)求。
當(dāng)然,這種結(jié)構(gòu)足以正常的工作,但它確實(shí)有一些重要的限制:
中國(guó)航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(2)