簡介,發展歷史,SGML,HTML,XML的產生,特徵,格式,XML與HTML區別,標準體系框架,元語言標準( Meta-Language),基礎標準( Foundation Standards),套用標準( Application Standards),
簡介
XML的簡單易於在任何應用程式中讀/寫數據,這使XML很快成為數據交換的唯一公共語言,雖然不同的套用軟體也支持其他的數據交換格式,但不久之後它們都將支持XML,那就意味著程式可以更容易的與Windows、Mac OS、Linux以及其他平台下產生的信息結合,然後可以很容易載入XML數據到程式中並分析它,並以XML格式輸出結果。
發展歷史
XML有兩個先驅:SGML和HTML,這兩個語言都是非常成功的標記語言,但是都有一些與生俱來的缺陷。XML正是為了解決它們的不足而誕生的。
SGML
早在Web未發明之前,SGML(Standard Generalized Markup Language,標準通用標記語言)就已存在,正如它的名稱所言,SGML是國際上定義電子檔案結構和內容描述的標準。SGML具有非常複雜的文檔結構,主要用於大量高度結構化數據的訪問和其他各種工業領域,在分類和索引數據中非常有用。
雖然SGML的功能很強大,但是它不適用於Web數據描述,而且SGML軟體的價格非常昂貴;另外,SGML十分龐大,既不容易學,又不容易使用,在計算機上實現也十分困難:不僅如此,幾個主要的瀏覽器廠商都明確拒絕支持SGML,這無疑是SGML在網上傳播遇到的最大障礙。鑒於這些因素,Web的發明者——歐洲核子物理研究中心的研究人員,根據當時(1989年)的
計算機技術,發明並推出了HTML。
HTML
1989年,HTML誕生,它拋棄了SGML複雜龐大的缺點,繼承了
SGML的很多優點。HTML最大的特點是簡單性和跨平台性。
HTML是一種界面技術,它只使用了SGML中很少的一部分標記,例如HTML 4.0中只定義了70餘種標記。為了便於在計算機上實現,HTML規定的標記是固定的,即HTML語法是不可擴展的。HTML這種固定的語法使它易學易用,在計算機上開發HTML的瀏覽器也十分容易。正是由於HTML的簡單性,使得基於HTML的Web套用得到了極大的發展。
XML的產生
隨著Web套用的不斷發展,HTML的局限性也越來越明顯地顯現了出來,如HTML無法描述數據、可讀性差、搜尋時間長等。人們又把目光轉向SGML,再次改造SGML使之適應現在的網路需求。隨著先輩的努力,1998年2月10日,W3C(World Wide Web Consortium,全球資訊網聯盟)公布XML 1.0標準,XML誕生了。
XML最初的設計目的是為了EDI(Electronic Data Interchange,電子數據交換),確切地說是為EDI提供一個標準數據格式。
當前的一些網站內容建設者們已經開始開發各種各樣的XML擴展,比如數學標記語言MathML、化學標記語言CML等。此外,一些著名的IT公司,如
Oracle、
IBM以及微軟等都積極地投入人力與財力研發XML相關軟體與服務支持,這無疑確定了XML在IT產業的重要地位。
特徵
XML具有以下特點:
(1) XML可以從HTML中分離數據。即能夠在HTML檔案之外將數據存儲在XML文檔中,這樣可以使開發者集中精力使用HTML做好數據的顯示和布局,並確保數據改動時不會導致HTML檔案也需要改動,從而方便維護頁面。XML也能夠將數據以“
數據島”的形式存儲在HTML頁面中,開發者依然可以把精力集中到使用HTML格式化和顯示數據上。
(2) XML可用於交換數據。基於XML可以在不兼容的系統之間交換數據,計算機系統和資料庫系統所存儲的數據有多種形式,對於開發者來說,最耗時間的工作就是在遍布網路的系統之間交換數據。把數據轉換為XML格式存儲將大大減少交換數據時的複雜性,還可以使這些數據能被不同的程式讀取。
(3) XML可套用於B2B中。例如在網路中交換金融信息, 目前XML正成為遍布網路的商業系統之間交換信息所使用的主要語言,許多與B2B有關的完全基於XML的應用程式正在開發中。
(4)利用XML可以共享數據。XML數據以純文本格式存儲,這使得XML更易讀、更便於記錄、更便於調試,使不同系統、不同程式之間的數據共享變得更加簡單。
(5) XML可以充分利用數據。XML是與軟體、硬體和應用程式無關的,數據可以被更多的用戶、設備所利用,而不僅僅限於基於HTML標準的瀏覽器。其他客戶端和應用程式可以把XML文檔作為數據源來處理,就像運算元據庫一樣,XML的數據可以被各種各樣的“閱讀器”處理。
(6) XML可以用於創建新的語言。比如,WAP和WML語言都是由XML發展來的。WML(Wireless Markup Language,無線標記語言)是用於標識運行於手持設備上(比如手機)的Intemet程式的工具,它就採用了XML的標準。
總之,XML使用一個簡單而又靈活的標準格式,為基於Web的套用提供了一個描述數據和交換數據的有效手段。但是,XML並非是用來取代HTML的。HTML著重如何描述將檔案顯示在瀏覽器中,而XML與SGML相近,它著重描述如何將數據以結構化方式表示。
格式
XML檔案格式是純文本格式,在許多方面類似於HTML,XML由XML元素組成,每個XML元素包括一個開始標記(<title>),一個結束標記(</title>)以及兩個標記之間的內容,例如,可以將XML元素標記為價格、訂單編號或名稱。標記是對文檔存儲格式和邏輯結構的描述。在形式上,標記中可能包括注釋、引用、字元數據段、起始標記、結束標記、空元素、文檔類型聲明( DTD)和序言。
具體規則如下:
1、必須有聲明語句。
XML聲明是XML文檔的第一句,其格式如下:
<?xml version="1.0" encoding="utf-8"?>
2、注意大小寫
在XML文檔中,大小寫是有區別的。“<P>”和“<p>”是不同的標記。注意在寫元素時,前後標記的大小寫要保持一致。最好養成一種習慣,或者全部大寫,或者全部小寫,或者大寫第一個字母,這樣可以減少因為大小寫不匹配而產生的文檔錯誤。
3、XML文檔有且只有一個根元素
良好格式的XML文檔必須有一個根元素,就是緊接著聲明後面建立的第一個元素,其他元素都是這個根元素的子元素,根元素完全包括文檔中其他所有的元素。根元素的起始標記要放在所有其他元素的起始標記之前;根元素的結束標記要放在所有其他元素的結束標記之後。
4、屬性值使用引號
在HTML代碼裡面,屬性值可以加引號,也可以不加。但是XML規定,所有屬性值必須加引號(可以是單引號,也可以是雙引號,建議使用雙引號),否則將被視為錯誤。
5、所有的標記必須有相應的結束標記
在HTML中,標記可以不成對出現,而在XML中,所有標記必須成對出現,有一個開始標記,就必須有一個結束標記,否則將被視為錯誤。
6、所有的空標記也必須被關閉
空標記是指標記對之間沒有內容的標記,比如“<img>”等標記。在XML中,規定所有的標記必須有結束標記。
示例:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="osg.AndroidExample" android:installLocation="preferExternal" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk> <uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requierements (2.0) --> <uses-permission android:name="android.permission.INTERNET"/> <application android:label="@string/app_name" android:icon="@drawable/osg"> <activity android:name=".osgViewer" android:label="@string/app_name" android:screenOrientation="landscape"> <!-- Force screen to landscape --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
XML與HTML區別
(1)可擴展性方面:HTML不允許用戶自行定義他們自己的標識或屬性,而在XML中,用戶能夠根據需要自行定義新的標識及屬性名,以便更好地從語義上修飾數據。
(2)結構性方面:HTML不支持深層的結構描述,XML的檔案結構嵌套可以複雜到任意程度,能表示面向對象的等級層次。
(3)可校驗性方面:HTML沒有提供規範檔案以支持套用軟體對HTML檔案進行結構校驗,而XML檔案可以包括一個語法描述,使應用程式可以對此檔案進行結構校驗。
標準體系框架
雖然XML標準本身簡單,但與XML相關的標準卻種類繁多,W3C制定的相關標準就有二十多個,採用XML制定的重要的電子商務標準就有十多個。這一方面說明XML確實是一種非常實用的結構化通用標記語言,並且已經得到廣泛套用;另一方面,這又為了解這些標準帶來一定的困難,除了標準種類繁多外,標準之間通常還互相引用,特別是套用標準,它們的制定不僅僅使用的是XML標準本身,還常常用到了其他很多標準。XML標準的體系與SGML標準的體系非常相似,XML相關標準也可分為元語言標準、基礎標準、套用標準三個層次。
元語言標準( Meta-Language)
描述的是用來描述標準的元語言。在XML標準體系中就是XML標準,是整個體系的核心,其他XML相關標準都是用它制定的或為其服務的。
基礎標準( Foundation Standards)
這一層次的標準是為XML的進一步實用化制定的標準,規定了採用XML制定標準時的一些公用特徵、方法或規則。如 XML Schema描述了更加嚴格地定義XML文檔的方法,以便可以更自動化處理XML文檔;XMLNamespace用於保證 XML DTD中名字的一致性,以便不同的DTD中的名字在需要時可以合併到一個文檔中;XSL是描述XML文檔樣式與轉換的一種語言;XLink用來描述XML文檔中的超連結;XPointer描述了定位到XML文檔結構內部的方法;DOM定義了與平台和語言無關的接口,以便程式和腳本動態訪問和修改文檔內容、結構及樣式等。
套用標準( Application Standards)
XML已開始被廣泛接受,大量的套用標準,特別是針對網際網路的套用標準,紛紛採用XML進行制定。有人甚至認為,XML標準是網際網路時代的ASCII標準。在這網際網路時代,幾乎所有的行業領域都與網際網路有關。而它們旦與網際網路發生關係,都必然要有其行業標準,而這些標準往往採用XML來制定。