XML初學進階學習筆記(1)(轉)
簡體中文碼:GB2312
繁體中文碼:BIG5
西歐字元: UTF-8
1、一般實體
我們前面說到的那個信件署名就是一般實體。定義一般實體的格式如下:
關於剛才的信件署名的實體定義如下:
"張三
某網路公司銷售部門
北京市海淀區中關村88號,100000"〉
另外,你也可以指定一個實體代替一個外部檔案的內容,此時要使用SYSTEM這個關鍵字。例如:
SYSTEM ""〉
在這個例子中,XML處理器將用指定檔案的內容來替換實體指示。
2、引數實體
與一般實體相同,引數實體既可以是內部的也可以是外部的。不過,引數實體只用在DTD中。
引數實體的格式與一般實體很類似,只不過中間要加上“%”符。
3、實體的使用包括兩部分:實體宣告和實體引用。
4、實體宣告
對於實體的宣告應該放在檔案型別DOCTYPE中。DOCTYPE一般放在檔案頭(即XML宣告和DTD)之後,
XML元素之前。這樣一來,XML檔案就變為下面的形式:
nbsp;檔案根元素名 [
實體宣告部分
]>
具體資料內容
檔案根元素名>
5、實體引用
說到實體引用,大家可能想起前面我們曾用“ 簡而言之,實體引用指的是引用一個在實體宣告中已經宣告過的一個實體。實體引用的形式很簡單:
&實體名;
6、實體引用有以下幾點規則一定要注意:
在引用XML實體之前,必須已經在XML檔案中對此實體進行過宣告;
在實體引用中不能出現空格。也就是說,& lettersign;和&letterhead ;的用法都會引起錯誤。
儘管在一個實體中可以再引用其它實體,但是不能出現迴圈引用。也就是說,一個實體不能引用它自己;
同樣,也不能出現實體A引用實體B,然後實體B再反過來引用實體A的情況。
實體引用不能在DOCTYPE宣告中出現。
實體引用的文字必須是形式良好的XML。
同樣,引數實體的引用與一般實體的引用大同小異,只是要把實體前的符號&換為%就可以了,形式是:
%實體名;
7、實體引用不僅可以出現在字元資料中,還可以出現在標記的屬性中。例如下面這個例子:
如果在屬性中出現實體引用,不但要遵守前面所述的實體引用的種種規則,還要注意以下兩點:
在標記屬性中不能引用一個外部實體。
引用的文字中不能出現字元“
透過這一節的講述,想必大家已然瞭解:實體主要是用來代替字元資料的,它可以節省大量的錄入工作。
8、使用外部DTD時,要在DOCTYPE中使用關鍵字SYSTEM。實際上,SYSTEM不是引用外部DTD的唯一方法,
這個關鍵字主要用於引用一個作者或組織所編寫的眾多XML檔案中通用的DTD。還存在一種外部DTD,
它是一個由權威機構制訂的,提供給特定行業或公眾使用的DTD。因此,另一個引用外部DTD的辦法是使用關鍵字PUBLIC,
引用這一類公開給公眾使用的DTD。
當使用關鍵字PUBLIC進行引用時,這個外部DTD還需要得到一個標識名。引用公共DTD的形式為:
nbsp;根元素 PUBLIC "DTD名稱" "外部DTD的URL">
9、這個DTD標識的命名規則和XML檔案的命名規則稍有不同。具體地說,DTD名稱只能包含字母、
數字、空格和下面的符號:_%$#@()+:=/!*;?。同時,DTD名稱還必須符合一些標準的規定。
例如,ISO標準的DTD以“ISO”三個字母開頭;被改進的非ISO標準的DTD以加號“+”開頭;未被改進的非ISO標準的DTD以減號“-”開頭。
無論是哪一種情況,開始部分後面都跟著兩個斜槓“//”及DTD所有者的名稱。在這個名稱之後又是兩個斜槓“//”,
再然後是DTD所描述的檔案的型別。最後,在又一對斜槓之後是語言的種類(參見ISO 639)。例如下面這個公用DTD的引用:
nbsp;聯絡人列表 PUBLIC "-//Luna Dong//Contact Data//CN"
"">
10、除了根元素外,在定義其它元素時使用關鍵字ANY都是不好的習慣。一般來說,在寫一個XML檔案時需要嚴格遵循DTD的規則,
這時,一個定義明確的DTD,雖然表面上似乎充滿了條條框框,但實際上會使你在書寫XML檔案時有規可循,
反而方便了你的工作和語法分析器的工作。相反,一個在元素定義中充滿了ANY的DTD,反而可能會搞得你不知所措,一頭霧水。
11、在定義元素時,ETD的順序是無關緊要的。因此
和
所定義的檔案結構是完全相同的。
12、還有一點要注意,不能對不同的元素使用相同的元素名,即便這些元素的內容、包含的子元素不同也不行,
因為它只會引起檔案各個元素的混淆,使檔案的可讀性大打折扣。例如:
在這個例子中,對“聯絡人”的重複定義,會引起錯誤。
13、最後再次強調一下元素的命名。元素名的第一個字母必須是字母、或下劃線(_)、或冒號(:),後跟字母、數字、句號(.)、冒號、下劃線、連結號(-)的組合,並且不能包含空白符,不能以“xml”開頭。
另外,儘管元素的第一個字母使用冒號是合法的,但最好避免這樣做,因為它會引起混淆。再有需要注意的是,
儘管XML1.0標準允許使用任何長度的檔名,但是實際的XML處理器常常會限制標記名的長度。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950301/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- XML初學進階學習筆記(5)(轉)XML筆記
- XML初學進階學習筆記(4)(轉)XML筆記
- XML初學進階學習筆記(3)(轉)XML筆記
- XML初學進階學習筆記(2)(轉)XML筆記
- Go 進階學習筆記Go筆記
- Swift進階學習筆記Swift筆記
- Git進階學習筆記Git筆記
- Scala 學習筆記 (1):初見筆記
- LevelDB學習筆記 (1):初識LevelDB筆記
- python進階學習筆記(一)Python筆記
- Koa2進階學習筆記筆記
- substrate學習筆記1:Substrate初體驗筆記
- 初學進階
- Python學習筆記(進階篇一)Python筆記
- spark學習筆記--進階程式設計Spark筆記程式設計
- 安卓初學基礎學習筆記安卓筆記
- 學習筆記1筆記
- 學習筆記-1筆記
- Redux 進階 – react 全家桶學習筆記(二)ReduxReact筆記
- Redux 進階 - react 全家桶學習筆記(二)ReduxReact筆記
- XML學習筆記–背誦版XML筆記
- 【Go學習筆記16】解析xmlGo筆記XML
- 【自用】彙編初學筆記 #1筆記
- Java解析XML學習筆記1 – 四種方法比較JavaXML筆記
- 基於docker 初學 MongoDb 學習筆記DockerMongoDB筆記
- [寒假學習筆記](二)Python初學筆記Python
- 人臉識別學習筆記二:進階篇筆記
- nginx進階-3(32-34天)學習筆記Nginx筆記
- 【Nginx學習筆記】-初識NginxNginx筆記
- JVM學習筆記——初識JVMJVM筆記
- swift學習筆記《1》Swift筆記
- Vue學習筆記1Vue筆記
- Numpy學習筆記 1筆記
- HTML學習筆記1HTML筆記
- flex:1學習筆記Flex筆記
- Numpy學習筆記(1)筆記
- SLAM學習筆記(1)SLAM筆記
- Oracle學習筆記1Oracle筆記