xml描述最本質資料的。
XSL可以把XML裝飾成不同的形式。
DTD可以限制XML中到底是什麼?
DTD says:你叫橡皮泥,可以用顔色,産地等屬性
XML:<橡皮泥 顔色="白">
<産生>
東海傲來國
</産地>
</橡皮泥>
XSL:第一種捏法:貓
第二種捏法:狗
标準:W3C-World Wide Web Consortium
WML:
XML:可以做到資料和顯示分離。XML是用來表示資料的。是最原始的資料。
用途:配置、基于XML做資料交換。
異質資訊互通
自動化搜尋、更精确思索
XML VS HTML
比較内容HTMLXML
可擴充性不具有可擴充性,标記固定是元标記語言,可以定義新的标記語言,标記由使用者定義
側重點側重于資訊的表現形式,數側重于結構化的描述資訊,資料是什
據顯示為什麼格式為HTML所麼為XMLX所關注
關注
文法不嚴格(嵌套、配對)嚴格要求嵌套、配對嚴格按照DTD的
要求
可讀、可維護難于閱讀、難于維護結構清晰,便于閱讀與進行維護
資料本身與顯示資料與顯示合在一處資料與顯示分離
可重用差可重用性很高
XML文檔總是以一個XML聲明開始,其中指明所用的XML版本、文檔的編碼、文檔的獨立性資訊。其格式如下:
<?xml 版本資訊 [編碼資訊] [文檔獨立性資訊]?>
eg:
<?xml version="1.0" encoding="gb2312"?>
元素:字元資料
可以是不包括任何标記的起始定界符和CDATA段的結束定界符的任意字元串。也就是說,不能有和号"&"和小于符号"<",也不能有字元串"]]>"。
字元 預定義實體引用
<<
>>
""
''
&&
處理指令
xml-stylesheet處理指令總是放在XML聲明之後,第一個元素之前,
其它的處理指令可以放在除标記的内部和XML聲明之前的任何位置。
要注意:雖然XML聲明和處理指令的文法形式相似,但XML并不是處理指令。
XML處理程式對XML聲明和處理指令采取的是不同的處理方式。
xml:space屬性必須被聲明為Enumerated(枚舉)類型,它的值必須是"default"和"preserve"兩者之一。也可以兩個都取。
例如:
<!ATTLIST poem xml:space(default|preserve)'preserve'>
<!ATTLIST pre xml:space(preserve)#FIXED'preserve'>
"default"表示對此元素使用應用程式的預設空白處理模式,"preserve"訓示應用程式應保留所有的空白。
如果一個元素使用了xml:space屬性,将适用于該元素内容中的所有元素,除非被另一個使用xml:space屬性的執行個體所覆寫。
Windows下采用#xD#xA的組合作為行分隔符,而Linux、Unix系統則采用#A作為行分隔符,在MacOS下,采用#D作為行分隔符。
可以在文檔中插入一個特殊的屬性xml:lang,來指出xml文檔中任何元素的内容和屬性的值所使用的語言。
xml:lang的一個簡單聲明可以采用如下形式:
xml:lang NMTOKEN #IMPLIED
也可以給出指定的預設值,例如:
<!ATTLIST poem xml:lang NMTOKEN 'fr'>
<!ATTLIST gloss xml:lang NMTOKEN 'en'>
<!ATTLIST note xml:lang NMTOKEN 'en'>
如果一個XML文檔有且隻有一個根元素,符合XML元素的嵌套規則,滿足XML規範定義中定義的所有格式正确性的限制,并且在文檔中直接或間接引用的每一個已分析實體都是正确的。我們稱這個文檔是一個格式良好(well-formed)的XML文檔。
文檔類型聲明由<!開始,後面緊跟一個關鍵字DOCTYPE,然後是文檔根元素的名稱,接下來是标記聲明塊,标記聲明塊是放在左中括号([)和右中括号(])之間的,由一個或多個标記聲明構成,最後由>結束。
在DTD中,所有的關鍵字都是大寫的。不過,在DTD中定義的元素和屬性大小寫是可以任意指定的,但是要注意,因為XML文檔是大小寫相關的,是以一旦給一個元素命名,那麼在整個文檔中要使用相同的大小寫。例如:greeting和Greeting是兩個不同的元素名。
在文檔類型聲明時,用關鍵字SYSTEM或PUBLIC來指出外部DTD檔案的位置。使用SYSTEM關鍵字的聲明文法如下:
<!DOCTYPE 根元素的名字 SYSTEM "外部DTD檔案的URI">
SYSTEM關鍵字表示文檔使用的是私有的DTD檔案,可以是相對或絕對URI。"外部DTD檔案的URI"也被成為系統辨別符。
<!DOCTYPE greeting SYSTEM "hello.dtd">
使用PUBLIC關鍵字的聲明文法如下: