什麼是XML元素?
XML是一種標識語言,一組用來創建描述數據的語法標籤的規則集。一個XML元素是由開
始標籤、結束標籤以及標籤之間的數據構成的。開始和結束標籤用來描述標籤之間的數
據。標籤之間的數據被認爲是元素的值。例如,在下面一個XML元素的例子中,元素"di
rector"的值是"Ed Wood"。
<director>Ed Wood</director>
元素名("director")允許你把"Ed Wood"這個值標出來,這樣你就能把這些數據同另外
類似的數據區分開來。例如,有可能另一個元素的值也是"Ed Wood"。
<actor>Ed Wood</actor>
由於每個元素都有不同的標籤名,所以你能很容易把上面兩個元素的值區別開來。如果
從語義上沒有辦法把數據標出來,兩個有同樣值的元素會混淆起來。
屬性
一個元素可以包含一個或多個屬性,屬性是一個由“=”隔開的名稱值,如:
<CITY ZIP="01085">Westfield</CITY>
在上面的例子中,ZIP="01085"是元素<CITY>的一個屬性。屬性用來給一個元素添加附加
的、次要的信息,通常是元信息,屬性還可以使用缺省值,而元素卻不能這樣做。元素
的每一個屬性可以以任意順序進行說明,但僅能說明一次。
此外,XML標籤對大小寫敏感,因此以下這三個是不同的元素。
<City><CITY><city>
XML的頭
•
• XML聲明一般是XML文檔的第一行
• XML聲明由以下幾個部分組成:
– version - -文檔符合XML1.0規範
– encoding - -文檔字符編碼,默認爲"UTF-8"
根元素:
• XML 文檔必須包含在一個單一元素中。這個單一元素稱爲根元素,它包含文檔中所有文本和所有其它元素。
• 而不包含單一根元素的文檔不管該文檔可能包含什麼信息,XML 解析器都會拒絕它。
• 每個XML文檔必須有且只有一個根元素
• 根元素是一個完全包括文檔中其他所有元素的元素。
• 根元素的起始標記要放在所有其他元素的起始標記之前。
• 根元素的結束標記要放在所有其他元素的結束標記之後
標記:
• 標記是左尖括號(<)和右尖括號(>)之間的文本。有開始標記(例如 <name>)和結束標記(例如 </name>)
• 不能省去任何結束標記。
• 如果一個元素根本不包含標記,則稱爲空元素;HTML 換行(<br>)就是個例子。在 XML 文檔的空元素中,您可以把結束斜槓放在開始標記中。
字符數據:
開始標記和結束標記之間的文本被定義爲“字符數據”
• 字符數據可以是“<”以外的任何合法 (Unicode) 字符
– <book>Java夜未眠</book>
• 字符數據分類
– PCDATA --- 普通字符數據
• 將由解析器解析
– CDATA
• 不會由解析器解析
註釋:
<!--這是一個註釋-->
• 註釋內容中不要出現--;
• 不要把註釋放在標記中間;
– <Name <!--the name-->>TOM</Name>
• 註釋不能嵌套;
• 可以在除標記以外的任何地方放註釋。
屬性
<Student ID="100“>
<Name>TOM</Name>
</Student>
• 屬性值用雙引號(")或單引號(')分隔(如果屬性值中有',用"分隔;有",用'分隔)
• 一個元素可以有多個屬性,它的基本格式爲:
<元素名 屬性名="屬性值">
• 特定的屬性名稱在同一個元素標記中只能出現一次
• 屬性值不能包括<, >, &
XML 文檔中的屬性有兩個規則:
- 屬性必須有值
- 那些值必須用引號括起。
您可以使用單引號,也可以使用雙引號,但要始終保持一致。
DOCTYPE:
文檔類型聲明,緊跟XML聲明之後,包含所有實體聲明
• 語法:
<?xml version="1.0"?>
<!DOCTYPE 根元素標記名 [
<!--實體聲明-->
]>
實體引用:
• 爲了避免把字符數據和標記中需要用到的一些特殊符號相混淆,XML還提供了一些有用的實體引用。
• 作用:避免重複輸入
• 自定義實體語法:
<!DOCTYPE 根元素 [
<!ENTITY 實體名 "實體內容">
]>
• 引用已定義的實體:
&實體名;
< |
< |
小於 |
> |
> |
大於 |
& |
& |
和號 |
' |
' |
單引號 |
" |
" |
引號 |
XML文檔節點類型:
• 文檔(document)
• 元素(element)
• 屬性(attribute)
• 文本(PCDATA--parsed character data)
• 註釋(comment)
• 處理指令(PI--processing instruction)
• DOCTYPE
• 實體(ENTITIES)
• CDATA(character data)
無效、有效以及格式良好的文檔
• 有三種 XML 文檔:
• 無效文檔沒有遵守 XML 規範定義的語法規則。如果開發人員已經在 DTD 或模式中定義了文檔能夠包含什麼,而某個文檔沒有遵守那些規則,那麼這個文檔也是無效的。
• 有效文檔既遵守 XML 語法規則也遵守在其 DTD 或模式中定義的規則。
• 格式良好的文檔遵守 XML 語法,但沒有 DTD 或模式。
結構完整的XML文檔
遵循如下規則的XML文檔稱爲結構完整:
u 語法規範
– 必須有XML聲明語句
<?xml version="1.0" encoding=“GBK"?>
– 必須有且僅有一個根元素
– 標記大小寫敏感
– 屬性值用引號
– 標記成對
– 空標記關閉
– 元素正確嵌套
– 元素語法
– 名稱中可以包含字母、數字或者其它字符
– 名稱不能以數字和"_"(下劃線)開頭
– 不能以XML/xml/Xml/…開頭
– 名稱中不能含空格
– 名稱中不能含冒號(注:冒號留給命名空間使用)
創建XML文檔
• 創建XML聲明
• 創建根元素
• 創建XML代碼
• 必須的規則
– 至少需要一個元素
– XML 標籤區分大小寫
– 應正確使用結束標籤
– 正確嵌套標籤
– 應使用合法標籤
– 標記名稱的長度
– 應定義有效的屬性
– 應驗證文檔
XML文檔規則總結
• XML文檔通常以一個XML聲明開始
• 通過XML元素來組織XML數據
• XML元素包括標記和字符數據
• 爲組織數據更方便、清晰,在字符數據中引入CDATA數據塊
• 在文檔中引入註釋
• 需要給XML處理程序提供一些指示信息,XML文檔中可以包含處理指令