複製鏈接
請複製以下鏈接發送給好友

可擴展標記語言

鎖定
可擴展標記語言 (Extensible Markup Language, XML) ,標準通用標記語言的子集,可以用來標記數據、定義數據類型,是一種允許用户對自己的標記語言進行定義的源語言。 XML是標準通用標記語言 可擴展性良好,內容與形式分離,遵循嚴格的語法要求,保值性良好等優點, [1]  [7] 
在電子計算機中,標記指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種的信息比如文章等。它可以用來標記數據、定義數據類型,是一種允許用户對自己的標記語言進行定義的源語言。 它非常適合萬維網傳輸,提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。是Internet環境中跨平台的、依賴於內容的技術,也是當今處理分佈式結構信息的有效工具。早在1998年,W3C就發佈了XML1.0規範,使用它來簡化Internet的文檔信息傳輸。 [2] 
中文名
可擴展標記語言
外文名
Extensible Markup Language
所屬學科
計算機科學
類    型
標記語言

可擴展標記語言背景

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

可擴展標記語言原理

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

可擴展標記語言發展

XML有兩個先驅:SGML和HTML,這兩個語言都是非常成功的標記語言,但是都有一些與生俱來的缺陷。XML正是為了解決它們的不足而誕生的。 [4] 
隨着Web應用的不斷髮展,HTML的侷限性也越來越明顯地顯現了出來,如HTML無法描述數據、可讀性差、搜索時間長等。人們又把目光轉向SGML,再次改造SGML使之適應現在的網絡需求。隨着先輩的努力,1998年2月10日,W3C(World Wide Web Consortium,萬維網聯盟)公佈XML 1.0標準,XML誕生了。 [4] 
XML最初的設計目的是為了EDI(Electronic Data Interchange,電子數據交換),確切地説是為EDI提供一個標準數據格式。 [4] 
當前的一些網站內容建設者們已經開始開發各種各樣的XML擴展,比如數學標記語言MathML、化學標記語言CML等。此外,一些著名的IT公司,如OracleIBM以及微軟等都積極地投入人力與財力研發XML相關軟件與服務支持,這無疑確定了XML在IT產業的重要地位。 [4] 

可擴展標記語言SGML

早在Web未發明之前,SGML(Standard Generalized Markup Language,標準通用標記語言)就已存在,正如它的名稱所言,SGML是國際上定義電子文件結構和內容描述的標準。SGML具有非常複雜的文檔結構,主要用於大量高度結構化數據的訪問和其他各種工業領域,在分類和索引數據中非常有用。 [4] 
雖然SGML的功能很強大,但是它不適用於Web數據描述,而且SGML軟件的價格非常昂貴;另外,SGML十分龐大,既不容易學,又不容易使用,在計算機上實現也十分困難:不僅如此,幾個主要的瀏覽器廠商都明確拒絕支持SGML,這無疑是SGML在網上傳播遇到的最大障礙。鑑於這些因素,Web的發明者——歐洲核子物理研究中心的研究人員,根據當時(1989年)的計算機技術,發明並推出了HTML。 [4] 

可擴展標記語言HTML

1989年,HTML誕生,它拋棄了SGML複雜龐大的缺點,繼承了SGML的很多優點。HTML最大的特點是簡單性和跨平台性。 [4] 
HTML是一種界面技術,它只使用了SGML中很少的一部分標記,例如HTML 4.0中只定義了70餘種標記。為了便於在計算機上實現,HTML規定的標記是固定的,即HTML語法是不可擴展的。HTML這種固定的語法使它易學易用,在計算機上開發HTML的瀏覽器也十分容易。正是由於HTML的簡單性,使得基於HTML的Web應用得到了極大的發展。 [4] 

可擴展標記語言特徵

XML具有以下特點: [4] 
  1. XML可以從HTML中分離數據。即能夠在HTML文件之外將數據存儲在XML文檔中,這樣可以使開發者集中精力使用HTML做好數據的顯示和佈局,並確保數據改動時不會導致HTML文件也需要改動,從而方便維護頁面。XML也能夠將數據以“數據島”的形式存儲在HTML頁面中,開發者依然可以把精力集中到使用HTML格式化和顯示數據上。 [4] 
  2. XML可用於交換數據。基於XML可以在不兼容的系統之間交換數據,計算機系統和數據庫系統所存儲的數據有多種形式,對於開發者來説,最耗時間的工作就是在遍佈網絡的系統之間交換數據。把數據轉換為XML格式存儲將大大減少交換數據時的複雜性,還可以使這些數據能被不同的程序讀取。 [4] 
  3. XML可應用於B2B中。例如在網絡中交換金融信息, 目前XML正成為遍佈網絡的商業系統之間交換信息所使用的主要語言,許多與B2B有關的完全基於XML的應用程序正在開發中。 [4] 
  4. 利用XML可以共享數據。XML數據以純文本格式存儲,這使得XML更易讀、更便於記錄、更便於調試,使不同系統、不同程序之間的數據共享變得更加簡單。 [4] 
  5. XML可以充分利用數據。XML是與軟件、硬件和應用程序無關的,數據可以被更多的用户、設備所利用,而不僅僅限於基於HTML標準的瀏覽器。其他客户端和應用程序可以把XML文檔作為數據源來處理,就像操作數據庫一樣,XML的數據可以被各種各樣的“閲讀器”處理。 [4] 
  6. XML可以用於創建新的語言。比如,WAP和WML語言都是由XML發展來的。WML(Wireless Markup Language,無線標記語言)是用於標識運行於手持設備上(比如手機)的Internet程序的工具,它就採用了XML的標準。 [4] 
總之,XML使用一個簡單而又靈活的標準格式,為基於Web的應用提供了一個描述數據和交換數據的有效手段。但是,XML並非是用來取代HTML的。HTML着重如何描述將文件顯示在瀏覽器中,而XML與SGML相近,它着重描述如何將數據以結構化方式表示。 [4] 

可擴展標記語言規範

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

可擴展標記語言標準

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

可擴展標記語言元語言標準

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

可擴展標記語言基礎標準

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

可擴展標記語言應用標準

XML已開始被廣泛接受,大量的應用標準,特別是針對因特網的應用標準,紛紛採用XML進行制定。有人甚至認為,XML標準是因特網時代的ASCII標準。在這因特網時代,幾乎所有的行業領域都與因特網有關。而它們一旦與因特網發生關係,都必然要有其行業標準,而這些標準往往採用XML來制定。 [6] 
參考資料
  • 1.    李曉軍主編.城市地下空間信息化技術指南:同濟大學出版社,2016.04:第3頁
  • 2.    胡志坤,鄧鵬程,熊曄著.變電站物聯網與狀態監測技術:中南大學出版社,2014.07:第40頁
  • 3.    李天祥編.ANDROID物聯網開發細緻入門與最佳實踐:中國鐵道出版社,2016.06:第79頁
  • 4.    青島英谷教育科技股份有限公司編著.Web編程基礎:西安電子科技大學出版社,2016.01:第189頁
  • 5.    袁滿,吳曉宇,黃剛,張巖,杜睿山編著.移動計算(修訂版):哈爾濱工業大學出版社,2015.08:第227頁
  • 6.    李海生著.知識管理技術與應用:北京郵電大學出版社,2012.04:第27頁
  • 7.    王莉. XML語言在網頁中的應用[J]. 電子技術與軟件工程, 2015(5):1.
  • 8.    劉文, 甘志春, 李文,等. 基於XML和JSON的格式化網絡參數文件研究[J]. 計算機與網絡, 2013(24):4.
  • 9.    XML Introduction  .w3schools.2020-01-05[引用日期2023-03-19]
  • 10.    XHTML - MDN Web 文檔術語表:Web 相關術語的定義 | MDN  .mozilla官網[引用日期2023-04-12]
  • 11.    吳恆山,熊波.可擴展標記語言XML的產生與應用技術[J].計算機工程與應用,2001,37(14):62-64
展開全部 收起