可擴展標記語言XML之二:XML語言格式規範、文檔組成

大家好,小樂又來了,好久不見!這次接着上次可擴展標記語言XML之一:XML概念,作用,示例,繼續講述XML。

圖片描述

一、格式良好的 xml

1、語法規範:

1)、必須有 XML 文檔聲明:

<?xml version="1.0"?> 
<?xml version="1.0" encoding="UTF-8"?> 
<?xml version="1.0" standalone="yes"?> 
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 

說明:
XML standalone 定義了外部定義的 DTD 文件的存在性. standalone element 有效值是 yes 和 no. 如下是一個例子:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE s1 PUBLIC "http://www.ibm.com/example.dtd" "example.dtd"> 
<s1>.........</s1> 

值 no 表示這個 XML 文檔不是獨立的而是依賴於外部所定義的一個 DTD. 值 yes 表

示這個 XML 文檔是自包含的(self-contained).

注意文本文件保存時候默認的編碼格式是ANSI,需用記事本把它手動改爲UTF-8保存。

2)、必須有且僅有一個根元素

3)、嚴格區分大小寫

4)、屬性值用引號(雙引號或單引號) :等號分開的名稱-值對;在一個元素上,相同的屬

性只能出現一次

5)、標記成對;

6)、空標記關閉;

7)、元素正確嵌套。

2、元素命名規則

1)、名稱中可以包含字母、數字或者其他可見字符;

2)、名稱不能以數字開頭;

3)、不能以 XML/xml/Xml…開頭;

4)、名稱中不能含空格;

5)、名稱中不能含冒號(注:冒號留給命名空間使用)

3、實體

實體叫 ENTITY,實體的作用是避免重複輸入。作用相當於宏或者變量。

1)內置的 5 種實體

實體 符號

< <

& &

" "

' '

2)自定義實體

<!DOCTYPE 根元素[ 
<!--實體聲明--> 
<!ENTITY 實體名 "實體內容"> 
]> 
使用已定義的實體:&實體名; 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE sxt[ 
<!--實體聲明--> 
<!ENTITY xm "明明"> 
<!ENTITY gen "保密"> 
]>
<sxt> 
<teacher> 
<name>明明</name> 
<gender>保密</gender> 
</teacher> 
<!--引用實體的方法--> 
<teacher> 
<name>&xm;</name> 
<gender>&gen;</gender> 
</teacher> 
</sxt> 

4、文檔類型聲明

文檔類型定義——DOCTYPE,文檔類型聲明,緊跟 XML 聲明之後,包含所有實體聲明

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE 根元素標記名[ 
<!--實體聲明--> 
]> 

二、XML 文檔組成

1、構成

所有的 XML 文檔(以及 HTML 文檔)均由以下簡單的構建模塊構成:

元素

屬性

實體

PCDATA

CDATA

CDATA 節(character data)

2、CDATA

用於把整段文本解釋爲純字符數據而不是標記的情況。如包含大量的<、>、&、或者"

字符。CDATA 節中的所有字符都會被當做元素字符數據的常量部分,而不是 XML 標記,

可以輸入除]]>外任意字符,不能嵌套。

<![CDATA[ ...... ]]>

3、PCDATA

PCDATA 的意思是被解析的字符數據(parsed character data)。 可把字符數據想象爲 XML 元素的開始標籤與結束標籤之間的文本。

PCDATA 是會被解析器解析的文本。這些文本將被解析器檢查實體以及標記。

文本中的標籤會被當作標記來處理,而實體會被展開。

不過,被解析的字符數據不應當包含任何 &、< 或者 > 字符;需要使用 &、< 以及 >

的內置實體來分別替換它們。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章