XML
1. XML 的語法規則
- 所有XML元素都需有關閉標籤
- XML標籤對大小寫敏感
- XML必須正確地嵌套
- XML文檔必須有根元素
- XML的屬性值需加引號
- 實體引用(<> ‘ “ &)
- 五種特殊字符:“
<
”、“>
”、“&
”、“‘
”、““
”;& &
;&apos '
;> >
;< <
;" "
- 在XML中空格會被保留。HTML會把多個連續的空格字符裁減(合併)爲一個
2. XML 元素必須遵循以下命名規則:
- 名稱可以含字母、數字以及其他的字符
- 名稱不能以數字或者標點符號開始
- 名稱不能以字符 “xml”(或者 XML、Xml)開始
- 名稱不能包含空格
- 可使用任何名稱,沒有保留的字詞。
3. 避免 XML 屬性?(儘量使用元素)
因使用屬性而引起的一些問題:
- 屬性無法包含多個值(子元素可以)
- 屬性無法描述樹結構(子元素可以)
- 屬性不易擴展(爲未來的變化)
- 屬性難以閱讀和維護
請儘量使用元素來描述數據。而僅僅使用屬性來提供與數據無關的信息。
4. XML與HTML的區別:
- 語法要求不同
- 標記不同
- HTML只是顯示信息,並不能說明信息是什麼
- XML主要存放內容,目標是在於如何更好地從邏輯和結構等方面來描述信息的內容
- HTML語言是用來格式化web數據的語言,有固定的標記,每一個標記都有其固定的用法。XML允許自定義標記,用戶可以自己定義標記來描述自己領域的信息。
- HTML的語法也相當寬鬆,標記不一定要配對使用,名稱不區分大小寫。XML語言有其嚴格的語法規則,標記必須成對使用,嚴格區分名稱的大小寫。
- 不能夠很好的描述數據的結構,本質上是一種格式顯示語言。XML語言的特點就是將信息的內容和它們的顯示樣式區分開來,焦點是數據的內容。
5. 標記的命名規則:
- 必須以字母、下劃線(
_
)或冒號(:
)開頭 - 後面可以跟有效的名字符,有效名字符除了前面的, 還包含數字、連接符(
-
)、句點(.
) - 英文字母大小寫敏感的
- 名稱不能含有空格
- 名稱中不能有字符串“
xml
”,“XML”或以任何順序排列的這三個字母的組合。W3C保留對三個字母的命名的使用權。
6. 以“<![CDATA[”作爲段開始,以“]]>
”作爲段結束,段開始和段結束之間稱爲CDATA段的內容。 CDATA段中的內容可以包含任意的字符。
7. URI(Uniform Resource Identifier),作爲名稱空間的名字。名稱空間的名字不必是有效的,它僅僅是爲了區分名稱空間的名字而已
8. 名稱空間的引用
(1)有前綴的名稱空間:在開始標記和結束標記的名字前面添加名稱空間的前綴和冒號來引用名稱空間。名稱空間的引用
(2)有前綴的名稱空間:子標記也可以重新聲明名稱空間。
(3)無前綴的名稱空間:該標記及其子標記都默認地隸屬於這個名稱空間。
(4)無前綴的名稱空間:子標記也可以重新聲明名稱空間。
9. 什麼是XML?XML的特點有哪些?
XML(eXtensible Markup Language,可擴展標記語言),是由萬維網聯盟(World Wide Web Consortium,W3C)定義的一種數據交換的規範,是Web上的數據通用語言,使用一系列簡單的標記描述數據。
XML的特點有:
(1)XML是一種簡單、與平臺無關並被廣泛採用的標準,可用於Internet上的各種應用。
(2)XML兼容SGML,所以多數SGML應用可轉化爲XML。
(3)XML文件同HTML文件一樣易於創建。
(4)XML文件內容、結構簡單,可以更加靈活地進行編程,減少了服務器的工作量。
(5)XML文件結構嚴謹,可以輕鬆被計算機程序解析。
(6)XML相對於HTML的優點是它將用戶界面與結構化數據分隔開來。這種數據與顯示的分離使得集成來自不同源的數據成爲可能。
DTD
10. 文檔類型定義DTD爲格式良好的XML文檔提供了嚴格而精確的規則,通過簡單的標記聲明,能夠定義XML文檔的結構以及它所允許使用的內容。
11. 爲什麼使用 DTD?
- 通過 DTD,每一個 XML 文件均可攜帶一個有關其自身格式的描述。
- 通過 DTD,獨立的團體可一致地使用某個標準的 DTD 來交換數據。
- 而應用程序也可使用某個標準的 DTD 來驗證從外部接收到的數據。
- 還可以使用 DTD 來驗證自身的數據。
12. XML與DTD的關聯
- 外部DTD 關聯形式
<?xml version="1.0" encoding="gb2312" ?>
- 私有DTD引用
<!DOCTYPE 根元素名SYSTEM “DTD文件的URI">
- 公共DTD引用
<?xml version="1.0" encoding="gb2312" ?>
<!DOCTYPE 根元素名PUBLIC“DTD名稱” “DTD文件的URI">
13. DTD的基本結構:
- DTD的開始標記定義元素,這是DTD中最主要註釋
- 定義元素屬性“
<!DOCTYPE ComputerPrice[” 的內容! 結束標記 “]>
”
**14. 分組元素語法:<!ELEMENT 標記名稱(子標記, (子標記, 子標記),……)**\
15. 混合元素語法:<!ELEMENT 標記名稱( #PCDATA |子標記……)*>
17. 空元素語法:<!ELEMENT 標記名稱 EMPTY>
18. 屬性類型
CDATA 字符數據(字符串)
ID 特定文檔中唯一的名稱
IDREF 對某些ID屬性的元素的引用,這些元素ID屬性值必須與IDREF屬性的值相同
IDREFS 若干以空格分隔的IDREF
ENTITY 已定義的外部實體的名稱
ENTITYS 若干以空格分隔的ENTITY名稱
NMTOKEN 名稱
NMTOKENS 若干以空格分隔的NMTOKEN
NOTATION 接受一個在DTD中聲明爲用於指示表示法類型的名稱
[枚舉值] 接受用戶顯示定義的屬性可選值中的一個值
19. 屬性聲明----語法 <!ATTLIST標記名稱 屬性名 屬性類型 默認值 …>;
①設定屬性默認值的方法字符串:該字符串就是屬性的缺省值,但設定在文檔中該屬性必須有屬性值<!ATTLIST 作者人數 CDATA “1”>
②#REQUIRED:不明確指定屬性的缺省值,但設定在文檔中該屬性必須有屬性值<!ATTLIST 配偶信息 性別CDATA #REQUIRED >
③#IMPLIED:不明確指定屬性的缺省值,但設定在文檔中可以出現該屬性,也可以不出現。<!ATTLIST 作者 身高 CDATA #IMPLIED>
④#FIXED:設定在文檔中該屬性值是固定的,同時提供該固定值<!ATTLIST 消防車 顏色 CDATA #FIXED “紅色”>
20. Enumerated(枚舉)屬性類型 <!ATTLIST 配偶信息 性別 (男性|女性)#REQUIRED > <配偶信息性別=“女性”>
21. 參數實體聲明----內部 聲明的語法:無空格<!ENTITY % 參數實體名 “實體內容”> <!ENTITY % 參數實體名 “實體內容”> 實體的引用:%參數實體名;
22. 參數實體聲明----外部 聲明的語法爲:
有空格<!ENTITY % 參數實體名STSTEM "外部實體的URI" >
或者
<!ENTITY % 參數實體名PUBLIC "外部實體的FPI" "外部實體的URI" >
實體的引用:%參數實體名
SCHEMA
22. XML Schema(基於 XML 的 DTD 代替者)
- W3C 支持一種基於 XML 的 DTD 代替者,它名爲 XML Schema:
- XML Schema 是基於 XML 的 DTD 替代者。
- XML Schema 描述 XML 文檔的結構。
- XML Schema 語言也稱作 XML Schema 定義(XML Schema Definition,XSD)。
- XML Schema 在 2001 年 5 月 2 日成爲 W3C 標準。
23. XML Schema是DTD的繼任者
理由如下:
- XML Schema 可針對未來的需求進行擴展
- XML Schema 更完善,功能更強大
- XML Schema 基於 XML 編寫
- XML Schema 支持數據類型
- XML Schema 支持命名空間
24. 爲什麼使用Schema
- 定義可出現在文檔中的元素
- 定義可出現在文檔中的屬性
- 定義哪個元素是子元素
- 定義子元素的次序
- 定義子元素的數目
- 定義元素是否爲空,或者是否可包含文本
- 定義元素和屬性的數據類型
25. 由 XML 編寫 XML Schema 有很多好處:
- 不必學習新的語言
- 可使用 XML 編輯器來編輯 Schema 文件
- 可使用 XML 解析器來解析 Schema 文件
- 可通過 XML DOM 來處理 Schema
- 可通過 XSLT 來轉換 Schema
26. XML Schema 可擴展
XML Schema 是可擴展的,因爲它們由 XML 編寫。
通過可擴展的 Schema 定義,你可以:
- 在其他 Schema 中重複使用你的 Schema
- 創建由標準類型衍生而來的你自己的數據類型
- 在相同的文檔中引用多重的 Schema
CSS
27. 什麼是CSS
Cascading Style Sheets 簡稱CSS ,層疊樣式表 針對HTML提出的樣式表語言,現在同樣可以很好地應用於描述XML文檔的顯示。利用CSS,可以定義XML文檔中元素的顯示效果。
XSLT+DOM
28. eXtensibleStylesheet Language簡稱XSL,可擴展樣式表語言,由於CSS是針對HTML提出的,雖然同樣可以描述XML文檔的顯示,但在處理複雜XML文件上稍顯不足。
29. XSL的基本思想:通過定義轉換模板,將XML文檔轉換爲帶樣式信息的可瀏覽文檔。
30. 目前比較流行的XML解析技術包括DOM、SAX、JDOM、DOM4J和Digester。
31. DOM即文檔對象模型,它是由W3C組織推薦的處理XML的標準接口。DOM可以直接訪問XML文檔的各個部分。在DOM中,文檔被模擬成樹狀,其中,XML語法的每個組成部分(例如元素或文本內容)都被表示爲一個結點。作爲一種API,DOM允許用戶遍歷文檔樹,從父結點移動到子結點和兄弟結點等,並利用某種結點類型特有的屬性(元素具有屬性,文本結點具有文本數據)。DOM被設計爲與語言無關的接口,可能是最流行的XML文檔訪問方式,但它通過損失性能實現了訪問的便利性。
32. CSS與XSL的比較
- CSS —HTML、XML;靜態的樣式描述;不遵從XML語法規範;不進行轉換;不支持中文
- XSL—XML專用;動態的樣式描述;遵從XML語法規範;轉換的思想;支持中文;
33. XSL的基本結構
<?xml version="1.0" encoding="gb2312">
<xsl:stylesheet xmlns:xsl ="http://www.w3.org/1999/XSL/Transform">
<!--模板規則-->
<!--輸出模板-->
</xsl:stylesheet>
35. SAX是Simple API for XML 的縮寫,被翻譯爲XML的簡單應用程序接口,它是一種XML解析方法。
35. DOM與SAX比較: