大家好,小樂又來了,好久不見!這次接着上次可擴展標記語言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 是會被解析器解析的文本。這些文本將被解析器檢查實體以及標記。
文本中的標籤會被當作標記來處理,而實體會被展開。
不過,被解析的字符數據不應當包含任何 &、< 或者 > 字符;需要使用 &、< 以及 >
的內置實體來分別替換它們。