簡單說明:
- 參考書籍 ----- 《XML實戰教程》
- XML涉及衆多知識,命名空間、DTD、XSD、XPath、Xlink、DOM、SAX、XSL等。DTD與XSD是XML的校驗規則技術,DOM、SAX是獲取數據的技術,XSL與XSLT都是XML的顯示技術
XML文檔聲明
聲明XML文檔時有3個屬性:version屬性、encoding屬性和standalone屬性。
1. version屬性
目前XML規範有兩個版本:1.0和1.1版本。
<?xml version="1.0"?>
或者
<?xml version="1.1"?>
這兩個版本的規範標準幾乎是一樣的,只是給元素命名時,會對某些Unicode字符采取不同的處理方法。如果確實需要使用XML1.1規範,那麼必須確保所使用的XML解析器支持1.1版本。另外,當需要與其他用戶交換XML文檔時,必須確保對方的解析器也支持XML1.1版本,否則會引起操作性問題。2. encoding屬性
XML文檔中通過聲明encoding屬性可以告訴解析器文檔所採用的編碼方式。如果文檔沒有說明編碼,則會使用默認的UTF-8或UTF-16,因此解析器必須支持這兩種編碼格式。
3. standalone屬性
4. 注意事項
- XML聲明必須從“<?xml>”開始,到“?>”爲結束
- 聲明語句裏必須包含version屬性,但是encoding屬性和standalone屬性是可選的
- version、encoding和standalone三個屬性必須按上述排序
- version屬性值必須是1.0或是1.1
- XML聲明必須放在文檔的開頭,前面不能有空行或空格。關於這一點,有些解析器不會那麼嚴格
XML元素概述
元素概念
<?xml version="1.0" encoding="UTF-8"?>
<name nickname="Tom Bill">
<firstname>Tom</first>
<middlename />
<lastname>Bill</lastname>
</name>
如上例中的<firstname>是一個開始標記,</firstname>是一個結束標記,<firstname>Tom</first>則表示一個元素。元素命名
元素之間可以進行嵌套,並且一個XML文檔中必須只要一個根元素。實際上,即使文檔沒有任何內容,它也必須亞由一個根元素。- 名稱第一個字母必須是英文或是下劃線
- 其他字符可以是數字、連字符“-”和句點
- 名字中不能有空格
- 名稱的大小寫敏感
- 元素名可以是中文。但是在不支持中文的環境中將不能夠解釋包含中文字符的XML文檔,所以應進項選擇有意義的英文名稱表示
屬性概念
實體 | 實體引用 | 含義 |
lt | < | < |
gt | > | > |
amp | & | & |
apos | ' | ' |
quot | " | " |
XML命名空間
自定義命名空間
xmlns:prefix="URI"
- xmlns:定義命名空間的關鍵字
- perfix:命名空間前綴屬性
- URI:用來標識抽象或物理資源的緊湊字符串,大多數情況下,URI引用用來標識物理資源
<pers:person xmlns:pers="http://www.wiley.ers" />
這裏的前綴pers沒有任何含義,唯一的作用只是一個代表命名空間的名稱,可以使用其他任何的前綴代替它,而且文檔的意義完全一樣。默認的命名空間
<person xmlns="http://www.wiley.com/pers">
<name>tom</name>
</person>
可以在一個元素聲明多個命名空間,但是其中只有一個是默認的命名空間。如下所示: <person xmlns="http://www.wiley.com/pers" xmlns:html="http://www.w3.org/1999/xhtml" >
<name/>
<html:p>這是一個最基本的段落</html:p>
</person>
命名空間的注意事項
- 不能爲一個元素同時聲明兩個默認的命名空間
- 可以在子元素中聲明命名空間
- 可以爲屬性添加命名空間