XML文檔結構
一,XML文檔結構
XML文檔是由一組使用唯一名稱標識的實體組成。也是由數據和描述數據的標記組成。
文檔的組成部分包括:聲明,元素,註釋,字符引用和處理命令。
二,創建XML文檔
XML聲明始終是任何XML文檔的第一行。
1,陳述XML聲明:爲XML文檔匹配合適的解析器。
XML聲明語法:
<? xml version = "XML版本號" standalone = “no或yes” encoding = “UTF-8或UTF-16或GB2321或GBK”?>
<?和?>:表處理指令的開始和結束;
version :XML版本,默認1.0;
standalone:是否使用外部聲明;
encoding:字符編碼;
2,創建根元素:有且只有一個,用於描述文檔的功能。
語法:
<? xml version = "1.0" ?>
<根元素名>
根元素內容
</根元素名>
3,創建XML代碼:創建自定義元素(elements)和屬性(attributes)。
1,元素是XML內容的基本單元,包含標籤(tags)和內容。
2,所有的XML元素必須合理包含嵌套。
3,XML標記都是大小寫敏感的。
4,標記可以指定3種含義:結構的,語義的或樣式的。
結構指定文檔中不同元素之間關係;
語義將單個元素與文檔之外的現實世界聯繫;
樣式指定如何現實一個元素;
5,屬性值必須使用引號""
語法:
<標籤名 屬性名 = “屬性值”>
數據
</標籤名>
三,XML中的註釋
語法:
<!-- 這是一個註釋 -->
1,註釋文本不應包含“-”。
2,不能在標籤內使用,可用於標籤集。
3,不能放在實體聲明中,也不能放在XML聲明之前。
四,處理指命
爲使用該XML文檔的應用提供一則信息。
格式:
<? xml:應用名 指令信息 ?>
位置在在XML聲明和根元素之間
在將一個樣式表附加到XML文檔中時,需要提供一個處理指令:
<?xml version ="1.0" endcoding="GB2321"?>
<?xml : stylesheet type = "text/xsl" href = "top.css"?>
<根元素>數據</根元素>
五,標籤之間的字符數據分類
1,PCDATA
表示已解析的字符數據。
2,CDATA
表示不通過解析器parsing進行解析的文本。便於包含特殊字符。
格式:
<根元素>
<![CDATA[
<標記1>
<子標記1>#$%特殊字符</子標記1>
<子標記2>$%^特殊字符</子標記2>
.....
</標記1>
]]>
<標記2>
....
</標記2>
</根元素>
注意:不可寫爲<![Cdata[ 或 <![Cdata[
六,XML 對空白和換行的處理
1,空白部分不會被解析器自動刪除。
2,新行總是被標識爲 LF(Line Feed,換行)。
在Windows應用程序中,文本中的新行通常標識爲 CR, LF (carriage return, line feed,回車,換行)。
在Unix應用程序中,新行通常標識爲 LF。還有一些應用程序只使用CR來表示一個新行。
七,實體
1,實體是XML的存儲單元,是用於定義常見文本的快捷方式的變量,代替字符數據。
2,內部實體:僅存於聲明的文檔中;
外部實體:使用標識符指向文檔外的存儲單元;
系統(SYSTEM)外部實體:引用本地計算機或網絡;
公共(PUBLIC)外部實體:引用公共計算機或網絡;
3,實體按在文檔出現位置分爲:
①,一般實體:任何位置
內部實體:
<! ENTITY 實體名 "替換內容">
外部實體:
<!ENTITY 實體名 SYSTEM "test.txt(替換文件名)">
<!ENTITY 實體名 PUBLIC "test.txt(替換文件名)">
②,參數實體:DTD中
不能在文檔中使用,只能在DTD中使用。
<! ENTITY % 實體名 "替換內容">
4,實體的聲明
實體必須在文檔DOCTYPE聲明中聲明
語法:
<?xml version = "1.0" endcoding = "gb2321"?>
<!DOCTYPE DOCTYPE名[
實體聲明
....
]>
<根元素>
</根元素>
5,實體的引用:
①,一般實體:
引用前必須聲明該實體,可以在屬性中引用內部實體。
語法:
&實體名;
例子:
...
<! ENTITY name "張三">
...
<MSG>
&name;
<BODY>
你好!
</BODY>
<FIRST>
&name;
</FIRST>
</MSG>
②,參數實體:
語法:
%實體名;
八,XML文檔規範
1,所有XML文檔至少有一個元素。
2,XML標籤區分大小寫。
3,所有的XML文檔標籤必須有一個結束標記
4,正確嵌套標籤。
5,標籤命名規則:字符 下劃線 冒號開頭,由字符,數字,句號,冒號,下劃線,連接符(-)組合,不能有空格,不以保留字開頭。
6,屬性不能重複,值用引號分開。名字規則和標籤相同。
7,應驗證文檔。
等