XML初學進階學習筆記(2)(轉)
15、
如果我們使用逗號“,”來分隔兩個子元素,那麼XML檔案中,元素“姓名”就必須出現在元素“EMAIL”前面。反之,可以無序。
16、XML正規表示式的匹配原則不允許迴圈邏輯。所以,OR的意思是或者選這個或者選那個,但不能兩個都選,也不能兩個都不選。
17、注意:在一個組中,只允許使用一種連線符(例如“,”或“|”)。因此,象下面這樣定義的DTD是不合法的:
要想使用多種連線符,只有透過建立子組的方式,使用
前面我們已經介紹了所有可能用到的子元素的排列狀況。不過,還有一種情況沒有說,那就是,一個元素中不包含任何子元素,也不包含純文字。
對於這種情況,我們可以定義一個空標記。當然,定義這樣一個標記很簡單,你只需要使用關鍵字EMPTY就可以了,例如:
這樣,在你的XML檔案中,就可以使用一個空元素
。
18、IDREF型別允許一個元素的屬性使用檔案中的另一個元素,方法就是把那個元素的ID標識值作為該屬性的取值。
19、引數實體專門用在DTD中。定義方式是:
或: schema
引用方式為:
%實體名;
20、使用引數實體,可以方便元素和屬性的宣告。例如:
21、dt:type
dt:type指定所宣告屬性的資料型別,它除了支援DTD中包含的全部十大資料型別外,還支援一些擴充套件屬性,在下一小節會詳細講述。
Schema中的十個基本屬性與DTD中屬性的對應關係請見下表:
Schema中基本型別 DTD中資料型別
string #PCDATA
enumeration ENUMERATED
id ID
idref IDREF
idrefs IDREFS
nmtoken NMTOKEN
nmtokens NMTOKENS
entity ENTITY
entities EMTITIES
notation NOTATION
注意,當dt:type取值為"enumeration"時,後面的dt:value必須列出所有可能的取值。
22、attribute實際上是對該Schema中AttributeType宣告的引用,而具體引用什麼屬性型別,
關鍵就要靠type屬性了。type唯一指定了要引用的屬性型別,
因此其取值必須同某個AttributeType元素中name屬性的取值嚴格一致。
其它兩個屬性與AttributeType中相應屬性的含義相同,
default指定該屬性型別的預設取值,
required指定該屬性對於引用它的元素是否是必須的。
如果和同一個屬性相對應的AttributeType和attribute中都對default和required給出了定義,
則在attribute中的取值具有更高的優先順序。
23、XML較之HTML最根本的差別在於XML是定義置標語言的元語言,
而HTML僅僅是由SGML元置標語言定義的一個例項語言。利用XML元置標語言,
定義各種各樣的XML例項的活動是相當開放的。針對不同的應用方向,
每設計一個XML的DTD,一種新的置標語言便隨之誕生。
在各種各樣XML例項置標語言如雨後春筍般不斷湧現的過程中,
將會產生這樣一種應用需求,即在一個XML文件中,包含由多個DTD描述的元素。
這個想法顯然是達到“物盡其用”的一個好辦法,它幫助我們最大程度地利用了現有的資源,
正所謂“海納百川,有容乃大”。
24、CSS和XSL均屬於樣式單的一種,都可以用來設定文件的外觀。那麼,它們有什麼區別呢?
比較起來,它們主要有以下幾個大的不同:
用途不同
CSS最早是針對於HTML提出的,後來又將其應用於XML之中,
它既可以為HTML文件中的各個成分設定樣式,又可以為XML中的成分設定樣式。
XSL是專門針對XML提出的,它不能處理HTML文件。但它有一個CSS無法達到的功能,
即用一個命令列將一個XML文件轉換為另一個文件並存檔。
處理結果不同
XSL採用的是一種轉換的思想,它將一種不含顯示資訊的XML文件轉換為另一種可以用某種瀏覽器瀏覽的文件,
轉換後的輸出碼或者存為一個新的文件,或者暫存於記憶體中,但都不修改原始碼。而CSS則沒有任何轉換動作,
只是針對結構文件中的各個成分,依照樣式規定一一設定外觀式樣,再由瀏覽器依據這些式樣顯示文件,在整個過程中沒有任何新碼產生。
表現能力不同
在XSL中定義的90%的樣式規定,實際上在CSS中都有定義。但仍然有一些效果是CSS無法描述的,
必須使用XSL不可。這些功能包括文字的置換,例如將一個美國的時間表示格式轉換為一箇中國的時間表示格式;
根據文字內容決定顯示方式,例如將60分以上的分數用黑色顯示,60分以下的分數用紅色顯示;
將文件中的成分按照某一個子成分的值進行排序,例如將商品按售價進行排序。
此外,還有對於超連結的支援,對於FRAME的支援,對於某些語種文字從上到下,
行從右到左的排列格式的支援等,都是XSL所獨有的。
語法不同
XSL是根據XML的語法進行定義的,實際上又是XML的一種應用。而CSS的語法自成體系,
且比較簡單,易學易用。
綜上所述,一個XML文件的顯示方式可以歸納為三種:即利用CSS顯示,
利用XSL轉化為FO顯示,以及利用XSL轉化為HTML文件顯示(這個HTML文件中可包含CSS樣式)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950300/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Koa2進階學習筆記筆記
- Swift進階學習筆記Swift筆記
- Go 進階學習筆記Go筆記
- python進階學習筆記(一)Python筆記
- 線段樹進階 學習筆記筆記
- spark學習筆記--進階程式設計Spark筆記程式設計
- 圖論進階學習筆記(四)(2024.10.4)圖論筆記
- XML學習筆記–背誦版XML筆記
- 【Go學習筆記16】解析xmlGo筆記XML
- Matplotlib學習筆記2 - 循序漸進筆記
- [寒假學習筆記](二)Python初學筆記Python
- Struts2學習筆記(一)初識Strut2筆記
- Redux 進階 – react 全家桶學習筆記(二)ReduxReact筆記
- Redux 進階 - react 全家桶學習筆記(二)ReduxReact筆記
- 線段樹進階應用學習筆記(二)+普通資料結構進階應用學習筆記(一)(2024.10.1)筆記資料結構
- 學習筆記CB014:TensorFlow seq2seq模型步步進階筆記模型
- 安卓初學基礎學習筆記安卓筆記
- 基於docker 初學 MongoDb 學習筆記DockerMongoDB筆記
- JVM學習筆記——初識JVMJVM筆記
- 【Nginx學習筆記】-初識NginxNginx筆記
- nginx進階-3(32-34天)學習筆記Nginx筆記
- 人臉識別學習筆記二:進階篇筆記
- react學習筆記2React筆記
- Vue學習筆記2Vue筆記
- 學習筆記2(下)筆記
- RocketMQ學習筆記 2MQ筆記
- Python學習筆記(2)Python筆記
- Solidity學習筆記-2Solid筆記
- vue學習筆記-2Vue筆記
- hibernate學習筆記(2)筆記
- MySQL學習筆記2MySql筆記
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- 【Web】Web 階段學習筆記Web筆記
- MySQL高階學習筆記(二)MySql筆記
- Redis學習筆記(一)——初識RedisRedis筆記
- 初級英語學習筆記01筆記
- MongDB學習筆記(一) 初遇篇筆記
- LevelDB學習筆記 (1):初識LevelDB筆記
- python初學筆記Python筆記