主頁(yè) > 知識(shí)庫(kù) > XML簡(jiǎn)易教程之一

XML簡(jiǎn)易教程之一

熱門(mén)標(biāo)簽:銀行業(yè)務(wù) 服務(wù)器配置 美圖手機(jī) 智能手機(jī) 檢查注冊(cè)表項(xiàng) 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) 網(wǎng)站文章發(fā)布

在Intel的早期,Andy Grove遇到一個(gè)雇員 - 他
建議公司在芯片的基礎(chǔ)上開(kāi)發(fā)個(gè)人計(jì)算機(jī)。Andy
Grove疑問(wèn)道“個(gè)人計(jì)算機(jī)能做什么呢?”,這個(gè)
雇員舉例說(shuō),它可以存儲(chǔ)處方。Grove考慮到整個(gè)
研究、開(kāi)發(fā)和市場(chǎng)費(fèi)用要數(shù)百萬(wàn)美圓,最終決定
以為紅綠燈提供芯片作為開(kāi)始。
每個(gè)人都是事后諸葛亮。Andy Grove,不管你怎樣看他,被普遍
認(rèn)為是一個(gè)非常聰明的人 - 能夠做出發(fā)展公司的重大決定。但
是在七十年代,不可能強(qiáng)求他預(yù)見(jiàn)到個(gè)人計(jì)算機(jī)的潛力。如果
他當(dāng)時(shí)見(jiàn)過(guò)Excel、Quark、Photoshop、Oracle或者網(wǎng)絡(luò),他就會(huì)
理解把強(qiáng)大的處理器放在桌面上會(huì)允許軟件做任何事。

但是如果沒(méi)親眼見(jiàn)過(guò),誰(shuí)能想到呢。在用打字機(jī)、加法機(jī)和鉛
筆作為計(jì)算的工具的時(shí)代,你能解釋PC和它的用途嗎?

這個(gè)例子可以用在解釋擴(kuò)展標(biāo)記語(yǔ)言(XML - eXtensible Markup
Language)上。現(xiàn)在還沒(méi)有和它相似的東西,所以很難做出比
較。你可能聽(tīng)說(shuō)過(guò)XML是HTML的替代物或XML與HTML相似,可以
定義自己的標(biāo)記符。這兩種說(shuō)法都不全對(duì),就象說(shuō)PC是存儲(chǔ)處
方的機(jī)器一樣。

我媽媽是一個(gè)訓(xùn)練有素的廚師,如果我用她的配方,我的家庭
會(huì)省下很大一筆錢(qián)。

我以簡(jiǎn)單的開(kāi)始。因此我打開(kāi)文本編輯器,開(kāi)始寫(xiě)一些HTML
代碼:

HTML>

H1 ALIGN=CENTER>Recipe/H1>

FONT FACE size=2>Chocolate Chip Bars/FONT>

在寫(xiě)完上面幾行后,我想接著寫(xiě)我媽媽 的精妙菜譜。那么怎么
做呢?一份老式的Web頁(yè)面。接下來(lái)呢?把我的頁(yè)面的URL送給
對(duì)這個(gè)菜譜感興趣的人們,然后讓他們剝掉其中的P>和FONT
FACE size=2>嗎?這得花些時(shí)間,我想得到實(shí)際的內(nèi)容。

看看下面可能的XML標(biāo)記:

author>Carol Schmidt/author>

recipe_name>Chocolate Chip Bars/recipe_name>

在XML中,標(biāo)記符可以最好地描述內(nèi)容。以這種方式,我可以肯
定任何查找出現(xiàn)在recipe_name>標(biāo)記符中的“Chocolate Chip”
的人都可以得到媽媽_的菜譜。進(jìn)一步說(shuō),如果我的信息被象這
樣的標(biāo)記符(有意義的標(biāo)記符)包圍 - 我可以告訴其它程序如
何使用它們。我還可以通過(guò)編碼把recipe_name>標(biāo)記符中的內(nèi)
容放入數(shù)據(jù)庫(kù)的某個(gè)域中,然后把它輸出到一本書(shū)的硬拷貝中。
還有,我可以用一個(gè)支持XML的字處理器使網(wǎng)頁(yè)的出版輕而易舉。

這就是XML的本質(zhì):使標(biāo)記對(duì)人和機(jī)器都可讀。但是在實(shí)現(xiàn)這個(gè)
目標(biāo)之前,應(yīng)該理解用XML編碼所涉及的東西。

文檔要組織良好
一個(gè)XML文件必須滿足兩點(diǎn):組織良好和有效。我們以一個(gè)組
織良好的文檔開(kāi)始。

我發(fā)明了一些描述菜譜的標(biāo)記符,并把它們組織成一種合理
和可讀的方式。它可能不是最好的標(biāo)記,但是在下面的例子
中工作得很好。

?xml version="1.0"?>
list>
recipe>
author>Carol Schmidt/author>
recipe_name>Chocolate Chip Bars/recipe_name>
meal>Dinner
course>Dessert/course>
/meal>
ingredients>
item>2/3 C butter/item>
item>2 C brown sugar/item>
item>1 tsp vanilla/item>
item>1 3/4 C unsifted all-purpose flour/item>
item>1 1/2 tsp baking powder/item>
item>1/2 tsp salt/item>
item>3 eggs/item>
item>1/2 C chopped nuts/item>
item>2 cups (12-oz pkg.) semi-sweet choc. chips/item>
/ingredients>
directions>
Preheat oven to 350 degrees. Melt butter;
combine with brown sugar and vanilla in large mixing bowl.
Set aside to cool. Combine flour, baking powder, and salt;
set aside.Add eggs to cooled sugar mixture; beat well.
Stir in reserved dryingredients, nuts, and chips.
Spread in greased 13-by-9-inch pan.
Bake for 25 to 30 minutes until goldenbrown;
cool. Cut into squares.
/directions>
/recipe>
/list>
這就是一份可以接受的XML文檔 - 告訴你XML是什么:把數(shù)據(jù)
以一種有實(shí)際意義的方式進(jìn)行組織。

雖然這些標(biāo)記符看起來(lái)有點(diǎn)象HTML,但是有很大的區(qū)別:文件
中沒(méi)有指出數(shù)據(jù)如何表示的信息。版面指令,當(dāng)我們準(zhǔn)備好時(shí),
就會(huì)從其它地方出現(xiàn)。這和把地址簿的信息放在數(shù)據(jù)庫(kù)的字段
和記錄中而不是放在字處理器產(chǎn)生的清單中的道理一樣。數(shù)據(jù)
庫(kù)可以讓你把地址簿中的信息合成到標(biāo)簽、信封、信件或其它
任何想要的載體上面。最后,就是把這份菜譜文件合成到一種
表現(xiàn)語(yǔ)言中,如HTML或CSS。

前面說(shuō)過(guò),XML文檔必須組織良好。這意味著文件必須滿足以下
三項(xiàng)基本規(guī)則:

文檔以XML定義?xml version="1.0"?>開(kāi)始。
有一個(gè)包含所有其它內(nèi)容的根元素,如上面例子中的list>
和/list>標(biāo)記符。
所有元素必須合理地嵌套,不允許交叉嵌套。
上面的例子中,幾個(gè)item>元素被合理地嵌套ingredients>和
/ingredients>標(biāo)記符中。但是下面的標(biāo)記卻有嚴(yán)重的問(wèn)題:

ingredients>item>/ingredients>chocolate chips/item>

于是"chocolate chips"沒(méi)有被包含在ingredients清單中。因此
這份文檔就沒(méi)有組織好。這在HTML中可能不算什么,因?yàn)闉g覽器
已經(jīng)被設(shè)計(jì)成可以處理這種問(wèn)題。

但是在XML中卻是致命的 - 應(yīng)用程序?qū)⒕芙^處理沒(méi)有組織好的
文件。

我們現(xiàn)在知道組織良好非常重要,但是還不止這些


 

標(biāo)簽:紅河 沈陽(yáng) 長(zhǎng)治 樂(lè)山 新疆 河南 上海 滄州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XML簡(jiǎn)易教程之一》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266