XML簡易教程之一

2021-03-31 08:56:58 字數 2908 閱讀 2229

在intel的早期,andy grove遇到乙個雇員 - 他

建議公司在晶元的基礎上開發個人計算機。andy

grove疑問道「個人計算機能做什麼呢?」,這個

雇員舉例說,它可以儲存處方。grove考慮到整個

研究、開發和市場費用要數百萬美圓,最終決定

以為紅綠燈提供晶元作為開始。

每個人都是事後諸葛亮。andy grove,不管你怎樣看他,被普遍

認為是乙個非常聰明的人 - 能夠做出發展公司的重大決定。但

是在七十年代,不可能強求他預見到個人計算機的潛力。如果

他當時見過excel、quark、photoshop、oracle或者網路,他就會

理解把強大的處理器放在桌面上會允許軟體

做任何事。

但是如果沒親眼見過,誰能想到呢。在用打字機、加法機和鉛

筆作為計算的工具的時代,你能解釋pc和它的用途嗎?

這個例子可以用在解釋擴充套件標記語言(xml - extensible markup

language)上。現在還沒有和它相似的東西,所以很難做出比

較。你可能聽說過xml是html的替代物或xml與html相似,可以

定義自己的標記符。這兩種說法都不全對,就象說pc是儲存處

方的機器一樣。

我媽媽是乙個訓練有素的廚師,如果我用她的配方,我的家庭

會省下很大一筆錢。

chocolate chip bars

在寫完上面幾行後,我想接著寫我媽媽 的精妙菜譜。那麼怎麼

做呢?乙份老式的web頁面。接下來呢?把我的頁面的url送給

對這個菜譜感興趣的人們,然後讓他們剝掉其中的和嗎?這得花些時間,我想得到實際的內容。

看看下面可能的xml標記:

carol schmidt

chocolate chip bars

在xml中,標記符可以最好地描述內容。以這種方式,我可以肯

定任何查詢出現在標記符中的「chocolate chip」

的人都可以得到媽媽_的菜譜。進一步說,如果我的資訊被象這

樣的標記符(有意義的標記符)包圍 - 我可以告訴其它程式如

何使用它們。我還可以通過編碼把標記符中的內

容放入資料庫

的某個域中,然後把它輸出到一本書的硬拷貝中。

還有,我可以用乙個支援xml的字處理器使網頁的出版輕而易舉。

這就是xml的本質:使標記對人和機器都可讀。但是在實現這個

目標之前,應該理解用xml編碼所涉及的東西。

文件要組織良好

乙個xml檔案必須滿足兩點:組織良好和有效。我們以乙個組

織良好的文件開始。

我發明了一些描述菜譜的標記符,並把它們組織成一種合理

和可讀的方式。它可能不是最好的標記,但是在下面的例子

中工作得很好。

<?xml version="1.0"?>

carol schmidt

chocolate chip bars

dinner

dessert

2/3 c butter

2 c brown sugar

1 tsp vanilla

1 3/4 c unsifted all-purpose flour

1 1/2 tsp baking powder

1/2 tsp salt

3 eggs

1/2 c chopped nuts

2 cups (12-oz pkg.) semi-sweet choc. chips

preheat oven to 350 degrees. melt butter;

***bine with brown sugar and vanilla in large mixing bowl.

set aside to cool. ***bine 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.

這就是乙份可以接受的xml文件 - 告訴你xml是什麼:把資料

以一種有實際意義的方式進行組織。

雖然這些標記符看起來有點象html,但是有很大的區別:檔案

中沒有指出資料如何表示的資訊。版面指令,當我們準備好時,

就會從其它地方出現。這和把位址簿的資訊放在資料庫

的字段和記錄中而不是放在字處理器產生的清單中的道理一樣。資料

庫可以讓你把位址簿中的資訊合成到標籤、信封、信件或其它

任何想要的載體上面。最後,就是把這份菜譜檔案合成到一種

表現語言中,如html或css。

前面說過,xml文件必須組織良好。這意味著檔案必須滿足以下

三項基本規則:

文件以xml定義<?xml version="1.0"?>開始。

有乙個包含所有其它內容的根元素,如上面例子中的

和標記符。

所有元素必須合理地巢狀,不允許交叉巢狀。

上面的例子中,幾個元素被合理地巢狀和

標記符中。但是下面的標記卻有嚴重的問題:

chocolate chips

於是"chocolate chips"沒有被包含在ingredients清單中。因此

這份文件就沒有組織好。這在html中可能不算什麼,因為瀏覽器

已經被設計成可以處理這種問題。

但是在xml中卻是致命的 - 應用程式將拒絕處理沒有組織好的

檔案。我們現在知道組織良好非常重要,但是還不止這些 。           

套接字學習教程之一

1 概述 bsd 套接字 socket 將程序間通訊推到乙個新的水平。彼此通訊的程序可不再必須執行在同一計算機上。它們仍然還能夠執行在同一計算機上,但不再必須那樣。不僅這些程序不必執行在同一計算機上,它們也不必執行在同一種作業系統上。有了 bsd 套接字,你的 freebsd 軟體能夠與執行在 ma...

套接字學習教程之一

1 概述 bsd 套接字 socket 將程序間通訊推到乙個新的水平。彼此通訊的程序可不再必須執行在同一計算機上。它們仍然還能夠執行在同一計算機上,但不再必須那樣。不僅這些程序不必執行在同一計算機上,它們也不必執行在同一種作業系統上。有了 bsd 套接字,你的 freebsd 軟體能夠與執行在 ma...

hexo github教程之一 搭建hexo部落格

本人幾年前就想搭建乙個屬於自己的部落格,剛好前段時間看見很多大神都用hexo搭建自己的個人部落格,於是乎自己也動手折騰了一番,搞了兩天終於弄出乙個還過得去的部落格。廢話不多說,下面開始動手!2 安裝node.js1 滑鼠右鍵任意地方,選擇git bash 使用以下命令安裝hexo ps 以下命令中的...