你好,XML——有關XML的基本規範和語法

XML是什麼

Extensible Markup Language 可擴展標記語言
是一種元語言

爲什麼要XML?

  • 設計與特定領域有關的標記語言
  • 自描述數據
  • 應用間交換數據
  • 結構化和集成的數據

XML是用來描述數據的,重點是“數據是什麼”

XML優點

  • 數據與格式分離,共享數據,讀取方便
  • 自由的,可擴展的
  • 面向對象的特性,XML的文件是以樹狀方式存儲,有屬性

XML缺陷

  • 搜索的效率極高,但是插入和修改效率低

XML應用廣泛

  • 設計標記語言、數據交換、數據共享、存儲數據、WEB應……

XML文件的邏輯結構——用XML聲明作爲開頭

<?xml version="1.0" encoding="GB2312" standalone="no" ?>
三個屬性
  1. version屬性
    在一個XML的處理指示中必須包括version屬性指明所採用的XML的版本號,而且,它必須在屬性列表中排在第一位。當前的XML的最新版本是1.0.
  2. encoding屬性 (可選)
    所有的XML語法分析器都要支持8位和16位的編碼標準。
    幾個常見的編碼:簡體中文碼 (GB2312, gbk)、繁體中文碼(BIG5)、全球通用字符(UTF-8)
  3. standalone屬性 (可選)
    這個屬性表明該XML文件是否和一個獨立的標記聲明文件配套使用。因此,如果該屬性置爲”yes",說明不需要另外一個配套的DTD文件或者XSL文件。相反,如果這個屬性置爲”no",則有可能有這樣的文件。

什麼是“形式良好的”XML文件

嚴格要求嵌套、配對,只有一個根元素

XML文件的邏輯結構

  • 用XML聲明作爲開頭
  • 處理指示
  • XML文件的精髓
    XML元素
    字符數據
    標記
  • CDATA
  • 註釋
XML文件的邏輯結構——元素
  • 元素的形式:< 標記>數據內容</標記>
  • 元素中還可以再嵌套別的元素
  • 所有的XML文件都至少包含-一個形式良好的根元素。根元素,又稱爲文件標記,緊跟在XML聲明之後,如果該XML文件中還內嵌了DTD,則這個根標記緊跟在DTD之後。根標記必須是一個非空的標記,其中包含了整個文件的數據內容。
  • XML中開始和結束標記之間的文字稱作“字符數據”,而把標記內的標示文字稱作“標記”
XML文件的邏輯結構——字符數據
  • 一對標記之間出現的字符數據可以是任何合法的字符

  • 爲了避免把字符數據和標記中需要用到的一些特殊符號相混淆,XML還提供了一些有用的實體引用

    當在字符數據中需要使用這些特殊符號時,我們採用它的實體引用來代替。

>   &gt;
<   &lt;
&   &amp;
"   &quot;
'   &apos;
  • 在“示例”這個標記中出現文本:“<姓名>張三</姓名>”
<示例> &lt;姓名&gt;張三&lt;/姓名&gt; </示例>
  • <STATEMENT VALUE = "She said, “Don’t go there!””>寫爲:
<STATEMENT VALUE = "She said, &quot;Don&apos;t go there!&quot;">
XML文件的邏輯結構一一標記

XML的標記和HTML的標記在模樣上大體相同,除了註釋和CDATA部分
以外,所有符號“<" 和符號“>”之間的內容都稱爲標記。其基本形式爲:<標記名(屬性名“屬性取值”)*>

  • 標記必不可少
  • 大小寫有所區分
  • 要有正確的結束標記。
  • 當一對標記之間沒有任何文本內容時,可以不寫結束標記,而在開始標記的最後慣以斜槓“/"來確認。這樣的標記稱爲“空標記”。如: <HR/>
  • 標記要正確嵌套
  • 標記命名要合法
    標記應該以字母、下劃線或冒號開頭,但是中間不能有空格,而且任何標記不能以“xml”起始.另外,最好不要在標記的開頭使用冒號,儘管它是合法的,但可能會帶來混淆。
    在XML1.0標準中允許使用任何長度的標記,不過,現實中的xu處理程序可
    能會要求標記的長度限制在一定範圍內。
  • 有效使用屬性
    標記中可以包含任意多個屬性。在標記中,屬性以名稱/取值對出現,屬性名不能重複,名稱與取值之間用等號“=”分隔,且取值用引號引起來。 如: <商品 類型=“服裝” 顏色=“黃色">
    屬性命名的規範與標記命名規範大體相似,需要注意有效字母、大小寫等一系列問題。不過,在必要的時候,屬性中也可以包含空白符,標點和實體引用。需要特別注意的是,在xml中屬性的取值必須用引號引起來,但在HTML中這一點並不嚴格要求。

==屬性的所有賦值都被看作是字符串。==如: <圓柱體 半徑=“10”高=“13">程序應該能夠把字符串“10”和“13”轉化爲它們所代表的數字.

XML文件的邏輯結構——註釋
  • 在HTML中,註釋是用“<! --”和“–>”引起來的。
    在XML中,註釋的方法完全相同。如:
    <!-- <dd></dd>一個XML的例子-->
  • XML處理器對於註釋中的一-切內容都會視而不見,註釋中出現的標記也一同被忽略。
  • 在XML文件中使用註釋時,同樣要遵守幾個規則
    在註釋文本中不能出現字符串“–”
    不要把註釋文本放在標記之中,否則,它就不是一個“形式良好的”XML文件了。類似地,不要把註釋文本放在實體
    聲明中,也不要放在XML聲明之前。
  • 註釋不能被嵌套。
XML文件的邏輯結構一一處理指示
  • 處理指示是用來給處理XML文件的應用程序提供信息的。
  • 所有的處理指示應該遵循下面的格式:<?處理指示名處理指示信息?>
  • 一個處理指示來指定與這個XML文件配套使用的樣式單的類型及
    文件名:
    <?xml -stylesheet type=" text/xsl" href=' mystyle. xsl"?>
    <!DOCTYPE Resume SYSTEM "03.dtd">
XML文件的邏輯結構——CDATA

在一個特殊的標記CDATA下,所有的標記、實體引用都被忽略,而被XML處理程序一視同仁地當作字符數據看待。
CDATA的形式如下:
<! [CDATA [ 文本內容]]>
CDATA的文本內容中是不能出現字符串“]]>”

<示例>
	&lt;聯繫人&gt;
	&lt;姓名&gt;張三&lt;/姓名&gt;
	&lt; EMAIL &gt ; zhang@aaa. com&lt; /EMAIL&gt;
	&lt; /聯繫人&gt;
</示例>
<示例>
	<! [CDATA[
	<聯繫人>
	<姓名>張三</姓名>
	</聯繫人>
	<EMAIL> zhang@aa. com </EMAIL>
	]] >
</示例>
XML命名空間( namespace)
  • 融衆多元素命名於一體
  • 命名衝突問題的解決
    前綴標識法
    如何聲明命名空間
    什麼是合法名稱
  • 命名空間的使用
    命名空間作用於元素
    命名空間作用於屬性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章