版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第四章 在XML文檔中使用SChema24.1 命名空間XML元素名稱是不固定的,當(dāng)兩個(gè)不同的文檔使用同樣的名稱描述兩個(gè)不同類型的元素時(shí),或者一個(gè)同樣的標(biāo)記表示兩個(gè)不同含義的內(nèi)容時(shí),就會(huì)發(fā)生命名沖突。XML規(guī)范提供了命名空間機(jī)制,用來(lái)解決同一個(gè)XML文檔中使用相同標(biāo)記名而代表不同意義的元素所引起的沖突問(wèn)題,以及在同一個(gè)XML文檔中使用不同標(biāo)記語(yǔ)言集合而產(chǎn)生的混淆問(wèn)題。3命名空間通過(guò)在元素前增加一個(gè)獨(dú)特的標(biāo)識(shí)符來(lái)標(biāo)識(shí)元素的活動(dòng)領(lǐng)域,這個(gè)標(biāo)識(shí)符在XML文檔中必須是唯一的。為了保證這個(gè)標(biāo)識(shí)符的唯一性,XML采取了一種巧妙方法,用Internet上的網(wǎng)址作這個(gè)標(biāo)識(shí)符,Internet上的網(wǎng)址肯定是獨(dú)
2、一無(wú)二的。44.1 命名空間 W3C定義命名空間:XML命名空間是一個(gè)名稱集合,它是用URI引用來(lái)標(biāo)識(shí)的,這種標(biāo)識(shí)在XML中作為元素類型和屬性名稱。5注意:所謂命名空間使用網(wǎng)址的名稱和路徑,被稱為URI(通用資源辨識(shí)器)。使用命名空間必然使用URI。URI主要用來(lái)界定資源對(duì)象的名稱。該資源對(duì)象一經(jīng)命名后即具有唯一性、永續(xù)性。64.1.2 命名空間的使用命名空間是網(wǎng)絡(luò)上的一種資源,因此命名空間也是URI。命名空間的使用是通過(guò)一個(gè)系列的保留屬性,使用這些屬性時(shí)必須使用xmlns或xmlns:。命名空間分兩種方法:一種前置命名法,一種為默認(rèn)命名法。7前置命名法語(yǔ)法: 說(shuō)明:標(biāo)記名:是用戶要在其中定義
3、命名空間的某個(gè)元素標(biāo)記的名稱。xmlns:是定義命名空間時(shí)所使用的固定詞語(yǔ),與后面的“標(biāo)識(shí)符”必須用“:”隔開。標(biāo)識(shí)符:是用戶為命名空間定義的對(duì)應(yīng)標(biāo)識(shí)名稱,此名稱在文檔中是唯一的。 注意:標(biāo)識(shí)符不允許使用xml、html、xsl、xmlns等保留字,并且不含冒號(hào)。可以是任意數(shù)量的字母、數(shù)字、點(diǎn)字符、短線、下劃線及其他擴(kuò)展字符。URI:是命名空間的元素所歸屬文檔,要用引號(hào)括起來(lái)。8注意:URI通常起一個(gè)標(biāo)識(shí)作用,并不是真要從網(wǎng)絡(luò)資源得到什么,所以精確性不重要。 用來(lái)標(biāo)識(shí)命名空間的網(wǎng)絡(luò)地址并不被XML解析器調(diào)用,XML解析器不需要從網(wǎng)絡(luò)地址中查找信息,該網(wǎng)絡(luò)地址的作用僅僅是給命名空間一個(gè)唯一的名字
4、,因此這個(gè)地址可以是虛擬的。9XML文檔標(biāo)記及屬性完整名稱: 說(shuō)明:標(biāo)識(shí)符用來(lái)代替命名空間字符串URI和標(biāo)記名稱的,即使后面的標(biāo)記名稱相同,只要標(biāo)識(shí)符不同,它們就是不同的標(biāo)記。104.1.2 命名空間的使用前置命名法示例:11前置命名法缺點(diǎn):前置命名法需要為文檔中的每個(gè)元素都命名空間的標(biāo)識(shí)符,對(duì)于一個(gè)長(zhǎng)的文檔來(lái)說(shuō)非常麻煩。12默認(rèn)命名法語(yǔ)法:說(shuō)明:標(biāo)記名:是用戶要在其中定義命名空間的某個(gè)元素標(biāo)記的名稱。xmlns:是定義命名空間時(shí)所使用的固定詞語(yǔ)。是此名稱在文檔中是唯一的。URI:是名稱空間的元素所歸屬文檔。注意:定義默認(rèn)命名空間,可以作用至元素,但無(wú)法作用于元素的屬性。對(duì)元素的屬性來(lái)說(shuō)是不存
5、在默認(rèn)命名空間的。13 前置命名空間方法與默認(rèn)命名空間方法的區(qū)別: 前置命名法必須為所引用的命名空間另取一個(gè)別名。此后如果使用該命名空間,只需要直接使用這個(gè)別名即可,該別名也是命名空間的前綴。使用默認(rèn)命名空間方法時(shí),元素一經(jīng)引用命名空間,此后子元素就會(huì)自動(dòng)引用相同的命名空間,無(wú)需額外聲明。使用前置命名方法時(shí)必須在引用該命名空間的元素和屬性前加上該命名空間的別名。14154.2 XML Schema XML Schema W3C于2000年10月作為候選建議(candidate mendation)發(fā)布,于2001年成為建議( mendation)發(fā)布,但到目前為止,XML Schema仍是工作
6、草案而非國(guó)際標(biāo)準(zhǔn)。 說(shuō)明:目前XML Schema規(guī)范有多個(gè)版本,其自身還在不斷改進(jìn)和完善。164.2 XML Schema XML Schema 提供XML文檔結(jié)構(gòu)和內(nèi)容約束機(jī)制,以驗(yàn)證格式良好的XML文檔的有效性。174.2 XML Schema XML Schema特點(diǎn):1 、XML Schema 與DTD結(jié)構(gòu)不同,使用XML語(yǔ)法2、 XML Schema 支持命名空間機(jī)制3、內(nèi)容模型開放并具有高度擴(kuò)充性4、豐富的數(shù)據(jù)類型18XML Schema:定義可出現(xiàn)在文檔中的元素 定義可出現(xiàn)在文檔中的屬性 定義哪個(gè)元素是子元素 定義子元素的次序 定義子元素的數(shù)目 定義元素和屬性的數(shù)據(jù)類型 定義元
7、素和屬性的默認(rèn)值以及固定值 194.2.4 使用XML SchemaXML Schema語(yǔ)法:Schema保存以xsd為后綴名的文檔中。 說(shuō)明:Schema文檔的根元素為xs:schema,位于 名字空間中。注意:通常這個(gè)名字空間必須使用前綴xsd或xs。元素聲明【自定義數(shù)據(jù)類型(簡(jiǎn)單、復(fù)雜)】、屬性聲明20在XML中使用的XML Schema語(yǔ)法:說(shuō)明:根元素root_element指定了該XML文檔所使用的XML schema.其中的xsi是XML文檔默認(rèn)使用的命名空間,這是W3C的命名空間。標(biāo)記中元素屬性為xsi:noNamespaceSchemalLoation,它指出不使用命名空間的
8、方式以指定Schema文檔文件路徑,使用擴(kuò)展名為.xsd。21對(duì)XML中元素的聲明元素聲明語(yǔ)法:說(shuō)明:element_name:指XML元素的名稱。2223簡(jiǎn)單數(shù)據(jù)類型: 不包含其他元素和屬性,而只能作為其他元素或?qū)傩缘臄?shù)據(jù),或是作為復(fù)雜類型元素中最終端元素,即是樹狀結(jié)構(gòu)中的葉子元素。復(fù)雜數(shù)據(jù)類型: 定義一個(gè)能夠包含多個(gè)元素或多個(gè)屬性,或者既包含元素也包含屬性的數(shù)據(jù)類型。24數(shù)據(jù)類型W3C為Schema內(nèi)置了多種簡(jiǎn)單類型字符串類型數(shù)字類型時(shí)間類型布爾類型二進(jìn)制類型25自定義簡(jiǎn)單類型元素XML Schema中,使用simpleType元素定義符合用戶需要的數(shù)據(jù)類型,為XML文檔元素和屬性自定義簡(jiǎn)
9、單類型元素,語(yǔ)法格式為: 說(shuō)明:xs:simpleType元素中子元素xs:restriction用于定義元素使用的是哪種數(shù)據(jù)類型。其中base屬性指明元素的數(shù)據(jù)類型派生哪種基本數(shù)據(jù)類型。facets_element子元素用于描述自定義數(shù)據(jù)類型的細(xì)節(jié),比如長(zhǎng)度、范圍、枚舉等限制,通過(guò)屬性value指定。26自定義簡(jiǎn)單類型元素聲明 27自定義簡(jiǎn)單數(shù)據(jù)類型示例1: 有效的XML文檔:3528自定義簡(jiǎn)單數(shù)據(jù)類型示例2: 有效的XML文檔: 2009-04-05T11:06:23.455 2930自定義復(fù)雜數(shù)據(jù)類型聲明復(fù)雜類型元素需要使用complexType元素以聲明其子元素的名稱和數(shù)據(jù)類型,語(yǔ)法格
10、式為: 31說(shuō)明: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,表示無(wú)限次。32自定義復(fù)雜數(shù)據(jù)類型示例1: 33對(duì)應(yīng)XML文檔:978-7302-14286-7XML技術(shù)教程顧兵34自定義復(fù)雜數(shù)據(jù)類型示例2: 35對(duì)應(yīng)XML文檔:張紅888666 3637復(fù)雜類型元素的列表ComplexType元素的子元素allsequencechoice說(shuō)明子元素按任何順序排列規(guī)定順序選擇其一38394.5 XML Schema屬性聲明牢記:屬性的兩個(gè)重要概念只有復(fù)雜類型元素可擁有屬性元素,簡(jiǎn)單類型元素是沒有屬性元素的。屬性元素本身必須為簡(jiǎn)單類型。404.5 XML Schema屬性聲明當(dāng)XML文檔中的元素?fù)碛袑傩詴r(shí),需要在聲明complexType元素或element元素時(shí),同時(shí)聲明該元素的屬性,所使用的是attribute元素。41
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 緩沖罐課程設(shè)計(jì)
- 電路實(shí)驗(yàn)課程設(shè)計(jì)舉例
- 2025版上海二手房買賣合同中物業(yè)費(fèi)用承擔(dān)與轉(zhuǎn)移范本3篇
- 二零二五年度農(nóng)產(chǎn)品檢測(cè)委托協(xié)議書模板3篇
- 2024年跨國(guó)貨物買賣中介服務(wù)協(xié)議
- 幼兒園植樹主題課程設(shè)計(jì)
- 微機(jī)原理實(shí)驗(yàn)與課程設(shè)計(jì)
- 2025版鈑金噴漆行業(yè)市場(chǎng)調(diào)研與分析合同2篇
- 2025版教育類人力資源派遣合同模板3篇
- 2025版酒店加盟合作協(xié)議書范本大全3篇
- (八省聯(lián)考)河南省2025年高考綜合改革適應(yīng)性演練 生物試卷(含答案)
- 人工智能銷售工作總結(jié)
- 工商注冊(cè)租房合同范例
- 2023-2024學(xué)年廣東省深圳市羅湖區(qū)八年級(jí)上學(xué)期期末生物試題
- 2025年醫(yī)院保衛(wèi)科工作總結(jié)及2025年工作計(jì)劃
- 班會(huì)課件高中
- 部編版一年級(jí)上冊(cè)語(yǔ)文第一單元-作業(yè)設(shè)計(jì)
- 安全生產(chǎn)泄漏課件
- 陜西省西安市高新第一中學(xué)2023-2024學(xué)年八年級(jí)上學(xué)期期末歷史試題
- 中建履帶吊安拆安全專項(xiàng)施工方案
- 眼鏡銷售儀容儀表培訓(xùn)
評(píng)論
0/150
提交評(píng)論