曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
• 符號信息項目(必須的)
• 實體開始標志信息項目(可選的)
• 實體結束標志信息項目(可選的)
• CDATA開始標志信息項目(可選的)
• CDATA結束標志信息項目(可選的)
• 命名空間聲明項目(必須的)
每個格式正規的X M L文檔必須有一個確切的文檔信息項目,和至少一個代表這個文檔的根
元素的元素信息項目。例如下面這個可能是最簡單的格式正規的X M L文檔:
這個文檔有一個文檔信息項目,代表作為一個整體的文檔(因為每一個X M L文檔都有一個
文檔信息項目),和一個代表< C a t a l o g >元素的< C a t a l o g >元素信息項目。
上面定義為可選項的項目,之所以是可選的是因為在一個分析過的文檔表現中它們不是必
須的,因為它要與W 3 C信息集合的原始定義完全相同。于是,假設你有下面的X M L文檔:
程序清單8 - 1
經過全面地分析,這個文檔包括一個文檔信息項目,三個元素信息項目,(C a t a l o g,B o o k和
Ti t l e)一個注釋信息項目。根據信息集合的標準,注釋信息項目可以不用,而且在原始文檔中
不會丟失信息—但是你必須保存這個文檔信息項目和三個元素信息項目。
讓我們瀏覽一下信息集合所詳細說明的信息項目種類,以及它給每個項目所下的定義。
1. 文檔
X M L文檔必須只有一個表明文檔是個整體的文檔信息項目,它有以下特點:
• 子信息項目按照它們在原始文檔中出現的順序排列。這個序列至少包括信息項目元素。另
242使用XML 高級編程
下載
外,它還必須包括在文檔根元素內容之外定義的升級結構信息項目。由開發人員的決定,
這個序列還應包括文檔根元素之外的注釋信息項目,如聲明文檔類型的信息項目(如果它
在源文檔中被詳細說明)。
• 在一個文檔中,服務于全部符號的無序的符號信息項目集合。
• 在一個文檔中,服務于所有未分析實體的無序的實體信息項目集合。這個序列也可以包括
分析過的實體信息項目、文檔實體,如果開發人員選擇的話,還包括外部的D T D子集。
• 開發人員還可以選擇包括所處理文檔的U R I。
2. 元素
在X M L文檔中對于每一個元素,必須有一個元素信息項目。現在,對于一個元素的兩種表
示方法應該是一樣的:
和
程序清單8 - 2
元素信息項目有以下特征:
• 一系列有續的子元素、處理指令、略過實體的引用和字符信息項目,它們以在元素中出現
的先后順序排列。這個序列可以是空的。以開發人員的判斷力,注釋信息項目也可以被包
括在內。這個序列還可以包括實體開始記號,實體結束記號, C D ATA開始記號以及
C D ATA結束記號信息項目—如果包括這些,它們必須成對出現(沒有開始記號就沒有結
束記號,反之亦然)。
• 一個屬性信息項目的未排序集合是服務于這個元素的每一個屬性的。這個集合也包括
缺省屬性。如果給這個元素一個命名空間屬性,而分析器不懂命名空間,在這個序列
里就需要有一個屬性來描述命名空間;否則就不需要命名空間屬性。這個裝置可以是
空的。
• 元素名稱中相同資源識別器由命名空間處理器提供。如果分析器沒有進行命名空間處理,
或者沒有命名空間詳細說明這個元素, U R I就是無效的。
• 元素名稱的部分。如果分析器沒有進行命名空間處理,這個名字就是確定的名稱(如果一
個元素名稱包括一個命名空間標識符,它就包括命名空間和冒號)否則這只是名稱的一部
分(冒號后面的部分),或者如果命名空間被詳細描述,這就是名稱的全部。
• 一個關于命名空間聲明信息項目參考的未排序集合。這些與被聲明為這個元素的組成部分
的命名空間相一致。
• 以開發者的判斷力,在這個元素的范圍內,一個關于命名空間聲明信息項目說明的未排序
集合與命名空間聲明相對應(它們是在這個元素或以前的元素中被聲明的)。
可能對于命名空間處理過程還有一些不清楚之處,下面舉一些例子:
沒有命名空間的X M L:
第8章鏈接和查詢使用243 下載
程序清單8 - 3
對于了解命名空間的分析器和不了解命名空間的分析器< B o o k >元素可能是:
程序清單8 - 4
反之,如果是有命名空間的X M L:
程序清單8 - 5
對于一個了解命名空間的分析器, < B o o k >元素有以下特性:
程序清單8 - 6
而對于一個不了解命名空間的分析器,它有以下特性:
程序清單8 - 7
有關命名空間的更多信息請參見第7章。
3. 屬性
對于文檔中的每一個屬性一定有一個屬性信息項目。如果處理器了解命名空間,用于定義
命名空間的屬性就不會作為信息項目出現。例如:
程序清單8 - 8
在這里,c o l o r是一個屬性。
屬性信息項目有以下特點:
• 屬性名稱的U R I部分。參看以前關于解釋了解命名空間和不了解命名空間的分析器怎樣對
待U R I元素的定義。
244使用XML 高級編程
下載
• 屬性名稱的本地部分。再參看元素的定義來了解如何分析命名空間。
• 一個已排序的關于每一個出現在(已格式化的)屬性值里的特征信息項目序列。另外在屬
性值中,關于每一個實體引用的實體開始標記和實體結束標記信息項目也可以被包括在這
個序列中。
• 由開發人員決定,一個標志顯示出這個屬性值在一個D T D或者模式中被詳述或者被缺省。
• 由開發人員決定,這個屬性的缺省值來自D T D。
• 由開發人員決定,聲明D T D中這個屬性的類型—I D、I D R E F、I D R E F S、E N T I T Y、
E N T I T I E S、N M TO K E N、N M TO K E N S、N O TAT I O N,C D ATA或E N U M E R AT E D的屬性類
型。
4. 處理指令
在文檔中,每一個處理指令都必須有一個處理指令信息項目。出于信息集合的目的,不把
X M L聲明和外部已分析過的實體聲明為處理指令。處理指令的語法是:
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(87)