XML的優勢:自描述,格式擴展性強,允許嵌套
子元素和屬性的區別,屬性是隱式的,不出現在文檔中。
Xmlns名字空間
CDATA用于對正常文本的處理。
XML模式定義語言:DTD和XML Schema
XML Schema事實上也是XML的一種應用,也就是說XML Schema的格式與XML的格式是完全相同的,而作為SGML DTD的一個子集,XML DTD具有著與XML格式完全不同的格式。這種區別會給XML Schema的使用帶來許多好處:
1. 由于XML Schema本身也是一種XML,所以許多的XML編輯工具、API 開發包、XML語法分析器可以直接的應用到XML Schema,而不需要修改。
2. 作為XML的一個應用,XML Schema理所當然的繼承了XML的自描述性和可擴展性,這使得XML Schema 更具有可讀性和靈活性。
3. 由于格式完全與XML一樣,XML Schema除了可以像XML一樣處理外,也可以同它所描述的XML文檔以同樣的方式存儲在一起,方便管理。
4. XML Schema與XML格式的一致性,使得以XML為數據交換的應用系統之間,也可以方便的進行模式交換。
XML Schema則不同,它內置了三十七種數據類型,如long,int,short,double等常用的數據類型,XML Schema數據類型的真正靈活性來自于其對用戶自定義類型的支持。使用complexType和sequence構造復雜類型。
DTD:限制并歸類文檔中的信息,并不限制基本類型意義上的類型,只限制元素子元素很屬性的出現。是有關一個元素中可以出現何種模式的子元素的一系列規則。|表示或,+表示一個或多個,*表示零個或多個,?表示零個或一個。
DTD
1. 單個文本元素和屬性不能定義,不能定于為整數。
2. 只能指定一個無序的集合,很難指定每個標簽只出現一次
XML Schema可以用minOccurs和maxOccurs指定某個子元素出現的最多和最少次數。
XML Schema較DTD的優勢:
1. 允許把元素中出現的文本限制為專門類型
2. 允許創建用戶自定義類型
3. 允許唯一性和外鍵約束
4. 與名字空間結合以允許文檔遵從不同模式
5. 允許使用繼承來擴展復雜類型
6. 允許使用專門類型來對類型進行限制,最大最小值
XML查詢轉換工具:XPath,XQuery,XSLT
XPath是基于路徑表達式的語言,FLWOR表達式
XQuery仿照SQL
XSLT(XSL Transformation)是由XSL(XML Stylesheet Language)擴展而來的
#PCDATA表示文本數據,empty表示沒有內容,any表示任意。
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>