xml基礎(chǔ)教程jcjc第四章schema_第1頁
xml基礎(chǔ)教程jcjc第四章schema_第2頁
xml基礎(chǔ)教程jcjc第四章schema_第3頁
xml基礎(chǔ)教程jcjc第四章schema_第4頁
xml基礎(chǔ)教程jcjc第四章schema_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1第四章 在XML文檔中使用SChema24.1 命名空間XML元素名稱是不固定的,當(dāng)兩個不同的文檔使用同樣的名稱描述兩個不同類型的元素時,或者一個同樣的標(biāo)記表示兩個不同含義的內(nèi)容時,就會發(fā)生命名沖突。XML規(guī)范提供了命名空間機制,用來解決同一個XML文檔中使用相同標(biāo)記名而代表不同意義的元素所引起的沖突問題,以及在同一個XML文檔中使用不同標(biāo)記語言集合而產(chǎn)生的混淆問題。3命名空間通過在元素前增加一個獨特的標(biāo)識符來標(biāo)識元素的活動領(lǐng)域,這個標(biāo)識符在XML文檔中必須是唯一的。為了保證這個標(biāo)識符的唯一性,XML采取了一種巧妙方法,用Internet上的網(wǎng)址作這個標(biāo)識符,Internet上的網(wǎng)址肯定是獨

2、一無二的。44.1 命名空間 W3C定義命名空間:XML命名空間是一個名稱集合,它是用URI引用來標(biāo)識的,這種標(biāo)識在XML中作為元素類型和屬性名稱。5注意:所謂命名空間使用網(wǎng)址的名稱和路徑,被稱為URI(通用資源辨識器)。使用命名空間必然使用URI。URI主要用來界定資源對象的名稱。該資源對象一經(jīng)命名后即具有唯一性、永續(xù)性。64.1.2 命名空間的使用命名空間是網(wǎng)絡(luò)上的一種資源,因此命名空間也是URI。命名空間的使用是通過一個系列的保留屬性,使用這些屬性時必須使用xmlns或xmlns:。命名空間分兩種方法:一種前置命名法,一種為默認(rèn)命名法。7前置命名法語法: 說明:標(biāo)記名:是用戶要在其中定義

3、命名空間的某個元素標(biāo)記的名稱。xmlns:是定義命名空間時所使用的固定詞語,與后面的“標(biāo)識符”必須用“:”隔開。標(biāo)識符:是用戶為命名空間定義的對應(yīng)標(biāo)識名稱,此名稱在文檔中是唯一的。 注意:標(biāo)識符不允許使用xml、html、xsl、xmlns等保留字,并且不含冒號??梢允侨我鈹?shù)量的字母、數(shù)字、點字符、短線、下劃線及其他擴展字符。URI:是命名空間的元素所歸屬文檔,要用引號括起來。8注意:URI通常起一個標(biāo)識作用,并不是真要從網(wǎng)絡(luò)資源得到什么,所以精確性不重要。 用來標(biāo)識命名空間的網(wǎng)絡(luò)地址并不被XML解析器調(diào)用,XML解析器不需要從網(wǎng)絡(luò)地址中查找信息,該網(wǎng)絡(luò)地址的作用僅僅是給命名空間一個唯一的名字

4、,因此這個地址可以是虛擬的。9XML文檔標(biāo)記及屬性完整名稱: 說明:標(biāo)識符用來代替命名空間字符串URI和標(biāo)記名稱的,即使后面的標(biāo)記名稱相同,只要標(biāo)識符不同,它們就是不同的標(biāo)記。104.1.2 命名空間的使用前置命名法示例:11前置命名法缺點:前置命名法需要為文檔中的每個元素都命名空間的標(biāo)識符,對于一個長的文檔來說非常麻煩。12默認(rèn)命名法語法:說明:標(biāo)記名:是用戶要在其中定義命名空間的某個元素標(biāo)記的名稱。xmlns:是定義命名空間時所使用的固定詞語。是此名稱在文檔中是唯一的。URI:是名稱空間的元素所歸屬文檔。注意:定義默認(rèn)命名空間,可以作用至元素,但無法作用于元素的屬性。對元素的屬性來說是不存

5、在默認(rèn)命名空間的。13 前置命名空間方法與默認(rèn)命名空間方法的區(qū)別: 前置命名法必須為所引用的命名空間另取一個別名。此后如果使用該命名空間,只需要直接使用這個別名即可,該別名也是命名空間的前綴。使用默認(rèn)命名空間方法時,元素一經(jīng)引用命名空間,此后子元素就會自動引用相同的命名空間,無需額外聲明。使用前置命名方法時必須在引用該命名空間的元素和屬性前加上該命名空間的別名。14154.2 XML Schema XML Schema W3C于2000年10月作為候選建議(candidate mendation)發(fā)布,于2001年成為建議( mendation)發(fā)布,但到目前為止,XML Schema仍是工作

6、草案而非國際標(biāo)準(zhǔn)。 說明:目前XML Schema規(guī)范有多個版本,其自身還在不斷改進和完善。164.2 XML Schema XML Schema 提供XML文檔結(jié)構(gòu)和內(nèi)容約束機制,以驗證格式良好的XML文檔的有效性。174.2 XML Schema XML Schema特點:1 、XML Schema 與DTD結(jié)構(gòu)不同,使用XML語法2、 XML Schema 支持命名空間機制3、內(nèi)容模型開放并具有高度擴充性4、豐富的數(shù)據(jù)類型18XML Schema:定義可出現(xiàn)在文檔中的元素 定義可出現(xiàn)在文檔中的屬性 定義哪個元素是子元素 定義子元素的次序 定義子元素的數(shù)目 定義元素和屬性的數(shù)據(jù)類型 定義元

7、素和屬性的默認(rèn)值以及固定值 194.2.4 使用XML SchemaXML Schema語法:Schema保存以xsd為后綴名的文檔中。 說明:Schema文檔的根元素為xs:schema,位于 名字空間中。注意:通常這個名字空間必須使用前綴xsd或xs。元素聲明【自定義數(shù)據(jù)類型(簡單、復(fù)雜)】、屬性聲明20在XML中使用的XML Schema語法:說明:根元素root_element指定了該XML文檔所使用的XML schema.其中的xsi是XML文檔默認(rèn)使用的命名空間,這是W3C的命名空間。標(biāo)記中元素屬性為xsi:noNamespaceSchemalLoation,它指出不使用命名空間的

8、方式以指定Schema文檔文件路徑,使用擴展名為.xsd。21對XML中元素的聲明元素聲明語法:說明:element_name:指XML元素的名稱。2223簡單數(shù)據(jù)類型: 不包含其他元素和屬性,而只能作為其他元素或?qū)傩缘臄?shù)據(jù),或是作為復(fù)雜類型元素中最終端元素,即是樹狀結(jié)構(gòu)中的葉子元素。復(fù)雜數(shù)據(jù)類型: 定義一個能夠包含多個元素或多個屬性,或者既包含元素也包含屬性的數(shù)據(jù)類型。24數(shù)據(jù)類型W3C為Schema內(nèi)置了多種簡單類型字符串類型數(shù)字類型時間類型布爾類型二進制類型25自定義簡單類型元素XML Schema中,使用simpleType元素定義符合用戶需要的數(shù)據(jù)類型,為XML文檔元素和屬性自定義簡

9、單類型元素,語法格式為: 說明:xs:simpleType元素中子元素xs:restriction用于定義元素使用的是哪種數(shù)據(jù)類型。其中base屬性指明元素的數(shù)據(jù)類型派生哪種基本數(shù)據(jù)類型。facets_element子元素用于描述自定義數(shù)據(jù)類型的細(xì)節(jié),比如長度、范圍、枚舉等限制,通過屬性value指定。26自定義簡單類型元素聲明 27自定義簡單數(shù)據(jù)類型示例1: 有效的XML文檔:3528自定義簡單數(shù)據(jù)類型示例2: 有效的XML文檔: 2009-04-05T11:06:23.455 2930自定義復(fù)雜數(shù)據(jù)類型聲明復(fù)雜類型元素需要使用complexType元素以聲明其子元素的名稱和數(shù)據(jù)類型,語法格

10、式為: 31說明:xs:element元素中的name屬性:復(fù)雜類型元素的名稱。 xs:sequence :是 plexType元素的子元素,用于聲明XML子元素出現(xiàn)順序。sub_element_name:子元素的名稱及其數(shù)據(jù)類型等內(nèi)容。type屬性:子元素的數(shù)據(jù)類型。minOccurs屬性:XML元素出現(xiàn)的最少次數(shù),最小值為0。maxOccurs屬性:XML元素出現(xiàn)的最多次數(shù),最大值為unbounded,表示無限次。32自定義復(fù)雜數(shù)據(jù)類型示例1: 33對應(yīng)XML文檔:978-7302-14286-7XML技術(shù)教程顧兵34自定義復(fù)雜數(shù)據(jù)類型示例2: 35對應(yīng)XML文檔:張紅888666 3637復(fù)雜類型元素的列表ComplexType元素的子元素allsequencechoice說明子元素按任何順序排列規(guī)定順序選擇其一38394.5 XML Schema屬性聲明牢記:屬性的兩個重要概念只有復(fù)雜類型元素可擁有屬性元素,簡單類型元素是沒有屬性元素的。屬性元素本身必須為簡單類型。404.5 XML Schema屬性聲明當(dāng)XML文檔中的元素?fù)碛袑傩詴r,需要在聲明complexType元素或element元素時,同時聲明該元素的屬性,所使用的是attribute元素。41

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論