可擴展標記語言(XML語言)

可擴展標記語言

XML語言一般指本詞條

可擴展標記語言 (Extensible Markup Language, XML) ,標準通用標記語言的子集,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 XML是標準通用標記語言 可擴展性良好,內容與形式分離,遵循嚴格的語法要求,保值性良好等優點,。

在電子計算機中,標記指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種的信息比如文章等。它可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 它非常適合全球資訊網傳輸,提供統一的方法來描述和交換獨立於應用程式或供應商的結構化數據。是Internet環境中跨平台的、依賴於內容的技術,也是當今處理分散式結構信息的有效工具。早在1998年,W3C就發布了XML1.0規範,使用它來簡化Internet的文檔信息傳輸。

基本介紹

背景,原理,發展,SGML,HTML,特徵,規範,標準,元語言標準,基礎標準,套用標準,

背景

1996年7月 W3C在Jon Bosak(SUN公司的網路技術專家)的建議下成立了XML規範制訂小組,其目的是為了將標準通用標記語言SGML(Standard Generic Markup Language)方便地套用於網路,參加規範制訂的是一大批著名公司、學術機構代表和SGML 專家。在他們的共同努力下XML 1.0建議書8經W3C認可於1998年2月10日正式公布於眾。隨即,XML便成為近年來國外許多科研機構、知名資料庫廠商和網路軟體產品開發商的研發熱點,國內對XML的研究方興未艾。
XML是一種獨立於軟體和硬體的工具,用於存儲和傳輸數據。XML代表可擴展標記語言,是一種與HTML非常相似的標記語言,被設計用於存儲和傳輸數據,XML被設計為自描述的, XML是W3C推薦標準。

原理

可擴展標記語言AccessOracleSQL Server等資料庫不同,資料庫提供了更強有力的數據存儲和分析能力,例如:數據索引、排序、查找、相關一致性等,可擴展標記語言僅僅是存儲數據。事實上它與其他數據表現形式最大的不同是:可擴展標記語言極其簡單,這是一個看上去有點瑣細的優點,但正是這點使它與眾不同。
XML的簡單易於在任何應用程式中讀/寫數據,這使XML很快成為數據交換語言(此類語言主要包括XML,JSON等,常用於接口調用,配置檔案,數據存儲等場景),雖然不同的套用軟體也支持其他的數據交換格式,但不久之後它們都將支持XML,那就意味著程式可以更容易的與WindowsMac OSLinux以及其他平台下產生的信息結合,然後可以很容易載入XML數據到程式中並分析它,並以XML格式輸出結果。

發展

XML有兩個先驅:SGMLHTML,這兩個語言都是非常成功的標記語言,但是都有一些與生俱來的缺陷。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公司,如OracleIBM以及微軟等都積極地投入人力與財力研發XML相關軟體與服務支持,這無疑確定了XML在IT產業的重要地位。

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具有以下特點:
  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,無線標記語言)是用於標識運行於手持設備上(比如手機)的Internet程式的工具,它就採用了XML的標準。
總之,XML使用一個簡單而又靈活的標準格式,為基於Web的套用提供了一個描述數據和交換數據的有效手段。但是,XML並非是用來取代HTML的。HTML著重如何描述將檔案顯示在瀏覽器中,而XML與SGML相近,它著重描述如何將數據以結構化方式表示。

規範

XML檔案格式是純文本格式,在許多方面類似於HTML,XML由XML元素組成,每個XML元素包括一個開始標記( ),一個結束標記( )以及兩個標記之間的內容,例如,可以將XML元素標記為價格、訂單編號或名稱。標記是對文檔存儲格式和邏輯結構的描述。在形式上,標記中可能包括注釋、引用、字元數據段、起始標記、結束標記、空元素、文檔類型聲明( DTD)和序言。
具體規則如下:
1、必須有聲明語句。
XML聲明是XML文檔的第一句,其格式如下:
<?xml version="1.0" encoding="utf-8"?>
2、注意大小寫
在XML文檔中,大小寫是有區別的。“A”和“a”是不同的標記。注意在寫元素時,前後標記的大小寫要保持一致。最好養成一種習慣,或者全部大寫,或者全部小寫,或者大寫第一個字母,這樣可以減少因為大小寫不匹配而產生的文檔錯誤。
3、XML文檔有且只有一個根元素
良好格式的XML文檔必須有一個根元素,就是緊接著聲明後面建立的第一個元素,其他元素都是這個根元素的子元素,根元素完全包括文檔中其他所有的元素。根元素的起始標記要放在所有其他元素的起始標記之前;根元素的結束標記要放在所有其他元素的結束標記之後。
4、屬性值使用引號
在HTML代碼裡面,屬性值可以加引號,也可以不加。但是XML規定,所有屬性值必須加引號(可以是單引號,也可以是雙引號,建議使用雙引號),否則將被視為錯誤。
5、所有的標記必須有相應的結束標記
在HTML中,標記可以不成對出現,而在XML中,所有標記必須成對出現,有一個開始標記,就必須有一個結束標記,否則將被視為錯誤。
6、所有的空標記也必須被關閉
空標記是指標記對之間沒有內容的標記,比如“”等標記。在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檔案可以包括一個語法描述,使應用程式可以對此檔案進行結構校驗。
(4)可以通過將html檔案轉換為符合xml標準的xhtml檔案,實現html標準和xml標準的結合。

標準

雖然XML標準本身簡單,但與XML相關的標準卻種類繁多,W3C制定的相關標準就有二十多個,採用XML制定的重要的電子商務標準就有十多個。這一方面說明XML確實是一種非常實用的結構化通用標記語言,並且已經得到廣泛套用;另一方面,這又為了解這些標準帶來一定的困難,除了標準種類繁多外,標準之間通常還互相引用,特別是套用標準,它們的制定不僅僅使用的是XML標準本身,還常常用到了其他很多標準。XML標準的體系與SGML標準的體系非常相似,XML相關標準也可分為元語言標準、基礎標準、套用標準三個層次。

元語言標準

描述的是用來描述標準的元語言。在XML標準體系中就是XML標準,是整個體系的核心,其他XML相關標準都是用它制定的或為其服務的。

基礎標準

這一層次的標準是為XML的進一步實用化制定的標準,規定了採用XML制定標準時的一些公用特徵、方法或規則。如 XML Schema描述了更加嚴格地定義XML文檔的方法,以便可以更自動化處理XML文檔;XMLNamespace用於保證 XML DTD中名字的一致性,以便不同的DTD中的名字在需要時可以合併到一個文檔中;XSL是描述XML文檔樣式與轉換的一種語言;XLink用來描述XML文檔中的超連結;XPointer描述了定位到XML文檔結構內部的方法;DOM定義了與平台和語言無關的接口,以便程式和腳本動態訪問和修改文檔內容、結構及樣式等。

套用標準

XML已開始被廣泛接受,大量的套用標準,特別是針對網際網路的套用標準,紛紛採用XML進行制定。有人甚至認為,XML標準是網際網路時代的ASCII標準。在這網際網路時代,幾乎所有的行業領域都與網際網路有關。而它們一旦與網際網路發生關係,都必然要有其行業標準,而這些標準往往採用XML來制定。

相關詞條

熱門詞條

聯絡我們