WEB開發(fā)技術(shù)-第5章-可擴展標(biāo)記語言XML課件_第1頁
WEB開發(fā)技術(shù)-第5章-可擴展標(biāo)記語言XML課件_第2頁
WEB開發(fā)技術(shù)-第5章-可擴展標(biāo)記語言XML課件_第3頁
WEB開發(fā)技術(shù)-第5章-可擴展標(biāo)記語言XML課件_第4頁
WEB開發(fā)技術(shù)-第5章-可擴展標(biāo)記語言XML課件_第5頁
已閱讀5頁,還剩137頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章可擴展標(biāo)記語言XML12/9/20221《WEB開發(fā)技術(shù)實用教程》第5章可擴展標(biāo)記語言XML12/9/20221《WEB開發(fā)了解XML基礎(chǔ)以及應(yīng)用XML的背景了解XML的兩種驗證機制DTD和XSM學(xué)習(xí)和比較展示XML文件的兩種方式:CSS和XSLTXSLT在轉(zhuǎn)換XML的具體實現(xiàn)教學(xué)目的12/9/20222《WEB開發(fā)技術(shù)實用教程》了解XML基礎(chǔ)以及應(yīng)用XML的背景教學(xué)目的12/9/2022教學(xué)內(nèi)容12/9/20223《WEB開發(fā)技術(shù)實用教程》5.3CSS顯示XML5.4XSLT轉(zhuǎn)換XML5.4.1XPath基礎(chǔ)5.4.2XSLT的基本結(jié)構(gòu)5.4.3用XSLT顯示XML5.1XML基礎(chǔ)5.1.1什么是XML5.1.2XML的相關(guān)技術(shù)5.1.3建立XML文件5.1.4XML的命名空間5.1.5XML的數(shù)據(jù)島5.2XML驗證機制5.2.1文檔類型定義DTD5.2.2XML模式定義語言教學(xué)內(nèi)容12/9/20223《WEB開發(fā)技術(shù)實用教程》5.3數(shù)據(jù)在表示內(nèi)容方面分成兩種形式:(1)結(jié)構(gòu)性的數(shù)據(jù):文件中的數(shù)據(jù)是經(jīng)過分析和處理過的,具有一定的結(jié)構(gòu)格式。結(jié)構(gòu)性的數(shù)據(jù)形式方便信息處理、存儲和應(yīng)用。但是往往必須借助于特定軟件工具表現(xiàn)數(shù)據(jù)。(2)非結(jié)構(gòu)性的數(shù)據(jù):這是在計算機世界中大量存在的數(shù)據(jù)形式。例如,文本文件、電子郵件、html網(wǎng)頁、WinWord2003的doc文件等包含的數(shù)據(jù)。這種形式的數(shù)據(jù)與結(jié)構(gòu)性數(shù)據(jù)比較,可以發(fā)現(xiàn),它們可以表示一定數(shù)據(jù)內(nèi)容,但是這些內(nèi)容之間不能直接體現(xiàn)之間的聯(lián)系,也沒有有效的方式來表達(dá)這些數(shù)據(jù)之間是否存在關(guān)系。XML結(jié)合結(jié)構(gòu)性的數(shù)據(jù)和非結(jié)構(gòu)性的數(shù)據(jù)的優(yōu)點,將不同文件格式的文件數(shù)據(jù),在保持?jǐn)?shù)據(jù)一致性的同時,進(jìn)行內(nèi)容轉(zhuǎn)換和良好地顯示,達(dá)到實現(xiàn)數(shù)據(jù)的共享的目的.5.1XML基礎(chǔ)12/9/20224《WEB開發(fā)技術(shù)實用教程》數(shù)據(jù)在表示內(nèi)容方面分成兩種形式:5.1XML基礎(chǔ)12/9/XML是eXtenibleMarkupLanguage的簡稱,它代表可擴展標(biāo)記語言。1996年,W3C聯(lián)盟組織XML工作組來研究新的標(biāo)記語言XML。1998年2月,W3C正式推薦了XML1.0標(biāo)準(zhǔn)。XML語言的基本原理與SGML語言一致,就是只定義數(shù)據(jù)內(nèi)容,不嵌入任何過程和處理內(nèi)容。定義后的文件可以與多種技術(shù)結(jié)合重新編碼形成多種的應(yīng)用。XML語言的重點就是定義數(shù)據(jù)的內(nèi)容,然后結(jié)合其他技術(shù)表現(xiàn)數(shù)據(jù)。5.1.1什么是XML12/9/20225《WEB開發(fā)技術(shù)實用教程》XML是eXtenibleMarkupLanguage的XML的特點(1)擴展性(2)靈活性(3)自描述性(4)簡單性XML的應(yīng)用領(lǐng)域XML實現(xiàn)了數(shù)據(jù)和顯示的分離XML實現(xiàn)數(shù)據(jù)的存儲和共享XML實現(xiàn)數(shù)據(jù)的交換XML大量應(yīng)用于WEB應(yīng)用。XML為網(wǎng)絡(luò)應(yīng)用提供強大支持。5.1.1什么是XML12/9/20226《WEB開發(fā)技術(shù)實用教程》XML的特點5.1.1什么是XML12/9/20226《W5.1.2XML的相關(guān)技術(shù)數(shù)據(jù)驗證實現(xiàn)超級鏈接實現(xiàn)數(shù)據(jù)查詢數(shù)據(jù)顯示XMLCSSXSL/XSLTDTDXMLSchemaXLinkXPointerXQueryCSS:CSS往往和XML結(jié)合,將XML文件中的數(shù)據(jù)以一定格式顯示出來。XSL/XSLT:XSL是eXtensibleStyleSheetLanguage,表示擴展樣式表語言。XSL由三個組成構(gòu)成,XSLT(擴展樣式表語言轉(zhuǎn)換)XPathXSL-FO12/9/20227《WEB開發(fā)技術(shù)實用教程》5.1.2XML的相關(guān)技術(shù)XMLCSSXSL/XSLTD5.1.2XML的相關(guān)技術(shù)XLink和XPointer:XLink和XPointer結(jié)合使用。XLink和XPointer可以實現(xiàn)訪問鏈接資源的作用。其中:XLink全稱為XMLLinkingLanguage,表示XML鏈接語言。XLink可以插入XML元素,實現(xiàn)創(chuàng)建和描述資源的鏈接作用。XPointer是XMLPointerLanguage的簡寫,表示XML指針語言。XPointer能讓超級鏈接指向XML文檔的片段。XQuery:XQuery是XML查詢語言。XQuery是一種查找和提取XML元素與屬性的語言。DTD:是DocumentTypeDefinition文檔類型定義。定義XML文件的文檔結(jié)構(gòu)。通過DTD可以實現(xiàn)XML文件數(shù)據(jù)的驗證。XMLSchema:通常把XMLSchema規(guī)范視為XMLSchemaDefinition(XML模式定義),簡寫成XSD。XSD可以實現(xiàn)XML文件的語法檢查以及數(shù)據(jù)的驗證。12/9/20228《WEB開發(fā)技術(shù)實用教程》5.1.2XML的相關(guān)技術(shù)XLink和XPointer:XML是一個自描述性的具有良構(gòu)(Well-formed)的標(biāo)記語言。可以用XML語言定義XML文件。在W3C推薦的XML1.0說明書明確說明了“如果一個數(shù)據(jù)對象滿足本規(guī)范中格式正確的定義時,它是一個XML文件”。5.1.3建立XML文件12/9/20229《WEB開發(fā)技術(shù)實用教程》XML是一個自描述性的具有良構(gòu)(Well-formed)的標(biāo)XML文件是由數(shù)字字符和各種類型的標(biāo)記所構(gòu)成,從邏輯上可以將XML文件由:處理指令文件聲明標(biāo)記實體引用注釋PCDATA段和CDATA段一個XML示例,見程序清單XML5-1.xml。在IE瀏覽器的運行結(jié)果。5.1.3建立XML文件12/9/202210《WEB開發(fā)技術(shù)實用教程》XML文件是由數(shù)字字符和各種類型的標(biāo)記所構(gòu)成,從邏輯上可以將處理指令XML文件的處理指令是向應(yīng)用程序傳遞的特殊指令。處理指令必須處于XML文件首部。例如:<?xmlversion="1.0"encoding="UTF-8"?>表示該XML文件的版本是1.0,采用的字符集是“UTF-8”5.1.3建立XML文件12/9/202211《WEB開發(fā)技術(shù)實用教程》處理指令5.1.3建立XML文件12/9/202211《文檔類型定義(DTD)XML文件通過DOCTYPE文件類型聲明說明文件的使用的文法,定義了XML文件的元素、屬性、以及實體等多項內(nèi)容,具體指明了XML文件文件結(jié)構(gòu)。XML文件確定的使用文法,有兩種方式:指明外部的DTD文件;可以通過在XML的內(nèi)部的DTD。文件類型定義具體的位于文件首部,第一個標(biāo)記元素之前。例:<!DOCTYPEmailboxSYSTEM"DTD5-5.dtd">5.1.3建立XML文件12/9/202212《WEB開發(fā)技術(shù)實用教程》文檔類型定義(DTD)5.1.3建立XML文件12/9/標(biāo)記XML文件中最主要的內(nèi)容是由大量的元素構(gòu)成的。XML文件元素可以是由成對標(biāo)記中封閉內(nèi)容構(gòu)成,也可以是不包含內(nèi)容的空元素。XML文件中的標(biāo)記具有幾點語法要求,以符合XML文件的良構(gòu)性:XML的標(biāo)記區(qū)分大小寫;標(biāo)記<a>和<A>在XML文件中就是代表兩種不同的標(biāo)記;XML的標(biāo)記必須是封閉的。XML文件中必須有一個根元素。在XML文件中標(biāo)記的屬性必須通過雙引號包含起來,不能忽略。5.1.3建立XML文件12/9/202213《WEB開發(fā)技術(shù)實用教程》標(biāo)記5.1.3建立XML文件12/9/202213《WE實體引用實體引用實際上就是引用具有特定意義的字符對象。引用實體有兩種形式:“&字符串;”例如: “&#實體編號”其中實體編號是由十六進(jìn)制的數(shù)字構(gòu)成。5.1.3建立XML文件12/9/202214《WEB開發(fā)技術(shù)實用教程》實體引用5.1.3建立XML文件12/9/202214《注釋XML文件也定義注釋,注釋的形式同HTML注釋一致,形如“<!--注釋-->”。注釋為XML文件提供必要的解釋說明。在應(yīng)用程序使用XML文件時,XML文件的注釋會被忽略。5.1.3建立XML文件12/9/202215《WEB開發(fā)技術(shù)實用教程》注釋5.1.3建立XML文件12/9/202215《WEPCDATA段和CDATA段在XML元素中,標(biāo)記之間包含的內(nèi)容就是PCDATA段。CDATA段具有特定的格式標(biāo)明它的特殊性。CDATA片段不會被應(yīng)用程序進(jìn)行解析,而是全部顯示。在CDATA段中的標(biāo)記與實體和其他內(nèi)容一起會原樣顯示。CDATA片段定義形如:<![CDATA[

文本……]]>5.1.3建立XML文件12/9/202216《WEB開發(fā)技術(shù)實用教程》PCDATA段和CDATA段5.1.3建立XML文件12<book><bookname>計算機應(yīng)用</bookname><author>程地</author><publisher>XX出版社</publisher><script><![CDATA[functiongetNumber(number){if(number<0&&number>MAXLEN)returnelse{number++;returnnumber;}}]]></script></book>程序代碼見程序XML5-2.xml,運行結(jié)果。5.1.3建立XML文件PCDATA段CDATA段12/9/202217《WEB開發(fā)技術(shù)實用教程》<book>5.1.3建立XML文件PCDATA段CDAXML命名空間是一組關(guān)于元素和屬性命名惟一的集合的名稱。通過XML命名空間可以標(biāo)識和區(qū)分不同的元素和屬性。W3C于1999年初次推薦使用XML命名空間規(guī)范。在該規(guī)范中指出了如下XML命名空間的定義形式。<命名空間前綴:元素名xmlns:命名空間前綴="命名空間URI">定義XML命名空間后,可以直接使用命名空間前綴來表示命名空間標(biāo)識符。5.1.4XML的命名空間12/9/202218《WEB開發(fā)技術(shù)實用教程》XML命名空間是一組關(guān)于元素和屬性命名惟一的集合的名稱。通過……<sl:studentlistxmlns:sl="/"><sl:student><sl:name>張珊</sl:name><sl:gender>女</sl:gender><school:namexmlns:school="">XXX市北京路232號

</school:name></sl:student></sl:studentlist>……5.1.4XML的命名空間命名空間前綴命名空間URI12/9/202219《WEB開發(fā)技術(shù)實用教程》……5.1.4XML的命名空間命名空間前綴命名空間URI可以采用默認(rèn)的命名空間形如“xmlns=命名空間URI”以簡化文件。將上述的代碼可以改寫成如下內(nèi)容。5.1.4XML的命名空間……<studentlistxmlns:sl="/"xmlns:school=""> <student> <name>張珊</name> <gender>女</gender> <school:name>XXX市北京路232號

</school:name> </student></studentlist>……12/9/202220《WEB開發(fā)技術(shù)實用教程》可以采用默認(rèn)的命名空間形如“xmlns=命名空間URI”以簡XML數(shù)據(jù)島指能被微軟的InternetExplorer5.x以上版本識別,以及嵌入到HTML中的XML數(shù)據(jù)。通過XML數(shù)據(jù)島可以將XML數(shù)據(jù)作為一個整體直接傳入到具有HTML的網(wǎng)頁中,不需要腳本語言就可以實現(xiàn)。5.1.5XML的數(shù)據(jù)島12/9/202221《WEB開發(fā)技術(shù)實用教程》XML數(shù)據(jù)島指能被微軟的InternetExplorer要定義XML數(shù)據(jù)島,這需要在HTML代碼按照下列形式將一個XML文件聲明XML數(shù)據(jù)島。<xmlid="數(shù)據(jù)島名"src="XML文件URL“>要使用數(shù)據(jù)島還需要實現(xiàn)XML數(shù)據(jù)綁定到具體HTML元素中:在HTML的元素如table通過屬性“datasrc”指明使用具體名稱的XML數(shù)據(jù)島。在HTML的元素如div、span中用屬性“datafld”來綁定到具體的XML數(shù)據(jù)。例將XML數(shù)據(jù)按表格輸出,代碼見HTML5-3.xml,運行結(jié)果。5.1.5XML的數(shù)據(jù)島12/9/202222《WEB開發(fā)技術(shù)實用教程》要定義XML數(shù)據(jù)島,這需要在HTML代碼按照下列形式將一個XXML文件必須符合XML規(guī)范。在具體表現(xiàn)上,XML文件不單具有嚴(yán)格的XML語法要求,還要求XML文件定義結(jié)構(gòu)在文檔中必須保持一致。為了保證一個XML文件的良構(gòu)(Well-formed)特點和確保XML文件符合定義規(guī)則,有必要對XML文件進(jìn)行驗證。DTD和XMLSchema常用于XML驗證機制。5.2XML的驗證機制12/9/202223《WEB開發(fā)技術(shù)實用教程》XML文件必須符合XML規(guī)范。在具體表現(xiàn)上,XML文件不單具DTD(DocumentTypeDefinition,文檔類型定義)是一種XML驗證機制,是XML標(biāo)準(zhǔn)的一部分。DTD可以確定XML文件的合法組成,定義XML文件的結(jié)構(gòu)。DTD可以定義在XML文件內(nèi)部,稱為內(nèi)部DTD。XML文件也可以通過語句實現(xiàn)外部DTD的引用。5.2.1文檔類型定義DTD12/9/202224《WEB開發(fā)技術(shù)實用教程》DTD(DocumentTypeDefinition,文內(nèi)部DTDXML文件中通過DOCTYPE實現(xiàn)內(nèi)部DTD的定義。具體DTD內(nèi)容包括在DOCTYPE中。形如:<!DOCTYPE根元素名[<!--定義元素-->…….]>一個內(nèi)部DTD的應(yīng)用實例,代碼見XML5-4.xml.5.2.1文檔類型定義DTD12/9/202225《WEB開發(fā)技術(shù)實用教程》內(nèi)部DTD5.2.1文檔類型定義DTD12/9/202225導(dǎo)入外部DTD外部DTD是導(dǎo)入到XML的DTD。首先,用戶需要按DTD語法規(guī)則定義一個文件擴展名為“dtd”的文件。在這個DTD文件中確定XML文件的結(jié)構(gòu)及組成。然后在XML文件中通過DOCTYPE導(dǎo)入該文件。具體的形如:“<!DOCTYPE根元素SYSTEM"文件名">”。5.2.1文檔類型定義DTD12/9/202226《WEB開發(fā)技術(shù)實用教程》導(dǎo)入外部DTD5.2.1文檔類型定義DTD12/9/2022DTD元素在DTD中聲明XML文件中元素的元素是DTD元素。DTD元素可以說明XML的元素標(biāo)記、特定元素的子元素以及元素包含的內(nèi)容。DTD元素可以定義XML文件的元素結(jié)構(gòu),以及反映元素間的相互關(guān)系。DTD元素通過<!ELEMENT…>實現(xiàn)定義,語法形式如下:<!ELEMENT元素名稱內(nèi)容>5.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼27DTD元素5.2.1文檔類型定義DTD12/9/2022《定義一個空元素<!ELEMENT元素名稱

EMPTY>例:<!ELEMENThrEMPTY>對應(yīng)<hr/>5.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼28定義一個空元素5.2.1文檔類型定義DTD12/9/202定義包含內(nèi)容的元素XML包含內(nèi)容的元素具有三種形式:<!ELEMENT元素名稱(#PCDATA)>:#PCDATA表示元素的內(nèi)容是字符數(shù)據(jù)。用DTD定義b元素為:<!ELEMENTb(#PCDATA)><!ELEMENT元素名稱(#CDATA)>:#CDATA表示元素內(nèi)容可以包含了解析器中不可以解析的字符。<!ELEMENT元素名稱(ANY)>:ANY表示元素內(nèi)容可以是任何可以被解析器理解的數(shù)據(jù)組合。例,<!ELEMENTemail(ANY)>5.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼29定義包含內(nèi)容的元素5.2.1文檔類型定義DTD12/9/2定義包含子元素的元素XML文件體現(xiàn)了樹型結(jié)構(gòu),元素可以嵌套,即一個元素中包含了多個子元素。DTD元素可以定義子元素序列。子元素序列的定義形式如下:<!ELEMENT元素名稱(子元素名稱)>:表示元素中包含一個子元素。<!ELEMENT元素名稱(子元素1名稱,子元素2名稱,…….)>:表示一個元素包含了一個子元素序列。<!ELEMENT元素名稱(子元素1名稱|子元素2名稱|…..)>:表示一個元素可以包含多種子元素,這些子元素不能同時嵌套在元素中。5.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼30定義包含子元素的元素5.2.1文檔類型定義DTD12/9/規(guī)定DTD元素出現(xiàn)次數(shù)的符號定義混合型的元素混合型的元素指一個元素中包含的內(nèi)容具有多種形式,元素內(nèi)容可以是子元素也可以是字符數(shù)據(jù)例如:<!ELEMENTemail(#PCDATA|from|to|body)*>表示email元素可以包含字符數(shù)據(jù)以及子元素from、to和body,這些子元素可以出現(xiàn)零次或多次見程序DTD5-6.dtd和XML5-7.xml.5.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼31字符說明示例+元素最少出現(xiàn)一次<!ELEMENTmailbox(email+)>*元素可以出現(xiàn)零次或多次<!ELEMENTemail(from,to*,body)>?元素可以出現(xiàn)零次或一次<!ELEMENTemail(from,to,body?)>規(guī)定DTD元素出現(xiàn)次數(shù)的符號規(guī)定DTD元素出現(xiàn)次數(shù)的符號5.2.1文檔類型定義DTD1DTD屬性DTD屬性是確定XML元素的屬性的規(guī)則。DTD屬性的聲明是通過<!ATTLIST….>來實現(xiàn)的。具體的語法要求如下:<!ATTLIST元素名稱屬性名稱屬性類型默認(rèn)值……>定義屬性,必須指定屬性的歸屬:元素名稱,以及屬性的性質(zhì),即確定屬性的名稱、屬性的類型、屬性的默認(rèn)值。有幾點說明如下:元素名稱:是說明要定義屬性的元素;屬性名稱:確定屬性的名字;屬性類型:指定屬性的類別,見教材表5-3.默認(rèn)值:確定給屬性值在沒有指定時自動具有的內(nèi)容,教材表5-45.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼32DTD屬性5.2.1文檔類型定義DTD12/9/2022《DTD實體實體實質(zhì)上是一個變量,可以快速的引入普通文本或特殊含義的字符。DTD實體用于定義XML的實體,是XML實體引用實現(xiàn)的保證。DTD的實體有兩種形式:內(nèi)部實體和外部實體。內(nèi)部實體是在DTD文件內(nèi)部中聲明的實體。定義的語法形如:“<!ENTITY實體名實體值>”。例如在XHTML空格實體( ;),用DTD定義為“<!ENTITYnbsp” “>”,瀏覽器會解析成空格。外部實體是引入其他文件的實體。聲明的語法形式如:“<!ENTITY實體名SYSTEM"URI/URL">”。其中,“URI/URL”指定引入實體的URL地址。5.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼33DTD實體5.2.1文檔類型定義DTD12/9/2022《XMLSchema定義語言(XSDL)與2001年5月2日成為W3C推薦標(biāo)準(zhǔn)的一員。它也是XML驗證機制的一種,可以表達(dá)以及驗證XML文件結(jié)構(gòu)。與DTD相比,XMLSchema定義語言在形式上最明顯的特點就是:基于XML具有XML語言的同樣的語法要求繼承了XML語言的良構(gòu)性、靈活性、擴展性和簡單性XMLSchema定義語言克服了DTD中表達(dá)元素屬性和元素內(nèi)容的約束性不足的特點。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼34XMLSchema定義語言(XSDL)與2001年5月2日利用XMLSchema定義語言定義的文件稱為XMLSchema文件文件的可擴展名為“.xsd”。XMLSchema文件組成:基本結(jié)構(gòu)元素聲明數(shù)據(jù)類型屬性聲明命名空間5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼35利用XMLSchema定義語言定義的文件稱為XMLSchXMLSchema的基本結(jié)構(gòu)XMLSchema文件實際上就是一個XML文件,不同在于指定了這個XML文件的根元素必須是schema,表示XML文件的模式結(jié)構(gòu)定義。形式如下:<?xmlversion="1.0"encoding="UTF-8"?><xs:schemaxmlns:xs="/2001/XMLSchema"elementFormDefault="qualified"> ……</xs:schema>5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼36XMLSchema的基本結(jié)構(gòu)5.2.2XML模式定義語言“xs:”(注意有時也可以寫成“xsd:”)表示文件中的元素和數(shù)據(jù)類型來自于XMLSchema的命名空間,空間位于“/2001/XMLSchema”中。“elementFormDefault”表示schema的元素屬于目標(biāo)命名空間的默認(rèn)寫法。如果取值為“qualified”,表示任何使用該XSD文件的元素數(shù)據(jù)的XML文件,必須使用同一命名空間.否則取值為“unqualified”。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼37“xs:”(注意有時也可以寫成“xsd:”)表示文件中的元素為了運用xsd文件進(jìn)行驗證,xml文件內(nèi)必須對此進(jìn)行說明,聲明形式如下:<根元素xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="xsd文件">一個簡單實例,用XSD5-11.xsd驗證XML5-12.xml.5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼38為了運用xsd文件進(jìn)行驗證,xml文件內(nèi)必須對此進(jìn)行說明,聲XMLSchema元素的聲明XMLSchema元素是用“<xs:element>”來實現(xiàn)XMLSchema元素的定義,常見的語法格式如下:<xs:elementname="元素名"type="數(shù)據(jù)類型"default="默認(rèn)值"maxOccurs="最大取值“minOccurs="最小取值"fixed="固定取值“ref="引用元素名">5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼39XMLSchema元素的聲明5.2.2XML模式定義語言name表示定義XMLSchema元素的命名;該屬性是XMLSchema元素定義必不可少的屬性。type表示XMLSchema元素的取值的性質(zhì),指明屬于的數(shù)據(jù)類型,可以是XMLSchema內(nèi)置基本數(shù)據(jù)類型,也可以是用戶自定義數(shù)據(jù)類型。default表示XMLSchema元素自動帶有的默認(rèn)值,除非改變。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼40name表示定義XMLSchema元素的命名;該屬性是XMmaxOccurs和minOccurs分別表示XMLSchema元素取值最大和最小范圍,只能取非負(fù)整數(shù)。如果maxOccurs取值為“unbounded”,表示不受限制。如果XMLSchema元素沒有定義maxOccurs和minOccurs屬性,這兩個屬性的值默認(rèn)為1。fixed表示元素取一個固定的值,不能改變。ref表示一個元素的引用,通常表示引用元素的子元素。該屬性往往結(jié)合XMLSchema復(fù)雜元素的定義。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼41maxOccurs和minOccurs分別表示XMLSch基本數(shù)據(jù)類型5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼42數(shù)據(jù)類型說明數(shù)據(jù)類型說明 xs:string字符串xs:gYearMonth按Gregorian歷的年月xs:boolean布爾數(shù)xs:gYear按Gregorian歷的年xs:decimal十進(jìn)制數(shù)xs:gMonthDay按Gregorian歷的月日xs:precisionDecimal精確十進(jìn)制數(shù),如-0xs:gDay按Gregorian歷的日xs:float單精度實數(shù)xs:gMonth按Gregorian歷的月xs:double雙精度實數(shù)xs:hexBinary十六進(jìn)制編碼的二進(jìn)制數(shù)xs:duration持續(xù)時間的長度xs:base64Binary六十四進(jìn)制編碼的二進(jìn)制數(shù)xs:dateTime指定日期時間xs:QNameXML限制名xs:date日期xs:anyURIURLxs:time時間,格式hh:mm:ss:ssxs:NOTATION標(biāo)記基本數(shù)據(jù)類型5.2.2XML模式定義語言12/9/2022XMLSchema的屬性聲明XMLSchema元素的屬性是通過“<xs:attribute>”來定義的。通過屬性的定義可以更好地描繪元素的特征和性質(zhì)。XMLSchema屬性聲明的語法形式如下:<xs:attributename="屬性名稱“type="數(shù)據(jù)類型“default="默認(rèn)值“fixed="固定值"id="標(biāo)號"use="使用性質(zhì)">5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼43XMLSchema的屬性聲明5.2.2XML模式定義語言name是一個必選項,表示屬性的名稱。type表示屬性所屬的數(shù)據(jù)類型,可以是XMLSchema內(nèi)置的數(shù)據(jù)類型,也可以是用戶自定義的數(shù)據(jù)類型;default與fixed分別表示屬性的取值為默認(rèn)值與固定值,二者不能同時出現(xiàn)。id表示屬性的唯一標(biāo)號,取值只能是由字符開頭。use表示屬性的性質(zhì),可以表示屬性是:“optional”(可選的)“required”(必選的)“prohibited”(禁止的),默認(rèn)值為optional表示可選的。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼44name是一個必選項,表示屬性的名稱。5.2.2XML模式簡單元素簡單元素只定義元素的內(nèi)容。對于元素的內(nèi)容可以根據(jù)實際情況,帶有默認(rèn)值或固定值。例如XSDL描述以下語句:<xs:elementname="class"type="xs:string"fixed="計算機2班">該語句對應(yīng)的XML內(nèi)容可以是:“<class>計算機2班</class>”。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼45簡單元素5.2.2XML模式定義語言12/9/2022《W復(fù)雜元素不包括簡單元素的元素就是復(fù)雜元素。復(fù)雜元素表示多種特殊情況的元素,復(fù)雜元素可以是:嵌套子元素包含文本的元素空元素包含屬性的元素包含屬性和文本內(nèi)容的元素5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼46復(fù)雜元素5.2.2XML模式定義語言12/9/2022《W嵌套子元素的元素嵌套子元素的元素的定義基本形式如下:<xs:elementname="元素"><xs:complexType>…</xs:complexType><xs:element>嵌套子元素的元素的代碼片段,對應(yīng)的XML片段如下.5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼47嵌套子元素的元素5.2.2XML模式定義語言12/9/20包含子元素和文本的元素如果要定義包含子元素有要定義元素本身內(nèi)容的文本取值,就需要對xs:complexType的一個屬性mixed進(jìn)行說明。通常情況,xs:complexType的mixed屬性默認(rèn)值為“false”,表示只定義XML元素。如果需要包含文本和子元素,則要將mixed屬性設(shè)定為“true”。包含子元素和文本的元素的程序片段,對應(yīng)的XML片段如下所示。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼48包含子元素和文本的元素5.2.2XML模式定義語言12/9空元素空元素是不包含文本內(nèi)容的元素。用XMLSchema實現(xiàn)XML元素的定義是要利用xs:complexContent元素來實現(xiàn)的。xs:complexContent元素是xs:complexType的子元素,通常是用于xs:complexType元素的擴展或限制。該元素有常見兩個屬性:屬性id:表示為元素指定唯一的編號;屬性mixed:用于定義混合內(nèi)容。默認(rèn)值為false,表示元素內(nèi)容不允許出現(xiàn)在子元素中,如果設(shè)定true,表示子元素可以出現(xiàn)元素內(nèi)容。包含空元素的程序片段,對應(yīng)的XML片段如下所示。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼49空元素5.2.2XML模式定義語言12/9/2022《WE包含屬性的元素通常XML元素帶有一些屬性,帶屬性的XML元素可以通過XMLSchema的xs:simpleContent元素來實現(xiàn)。xs:simpleContent元素作為xs:complexType的子元素,通常用于擴展或限制帶有文本內(nèi)容復(fù)雜類型元素和簡單類型的元素。它有兩個子元素xs:extension和xs:restriction:xs:extension元素用于元素的擴展;xs:restriction元素用于限制元素,設(shè)置元素的約束條件。包含屬性的元素的程序片段,對應(yīng)的XML片段如下所示。5.2.2XML模式定義語言12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼50包含屬性的元素5.2.2XML模式定義語言12/9/202用XML可以定義文件內(nèi)容,這些內(nèi)容最終是顯示給用戶瀏覽查看。CSS層疊樣式表(見第3章)是可以顯示XML文件的一種常見方式。通常,利用外部CSS文件顯示XML內(nèi)容,充分體現(xiàn)了內(nèi)容和顯示分離的要求。5.3CSS顯示XML12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼51用XML可以定義文件內(nèi)容,這些內(nèi)容最終是顯示給用戶瀏覽查看。具體做法是將定義顯示樣式的內(nèi)容定義到一個獨立的CSS文件中,然后在XML文件中利用下列的語法格式指定CSS文件。<?xml-stylesheettype=“text/css”href=“CSS文件”?>type屬性指明了樣式的種類為“text/css”;href屬性指明了外部的CSS文件。用CSS顯示XML的應(yīng)用實例,CSS文件見代碼CSS5-15.css,XML文件見代碼XML5-14.xml,運行結(jié)果.5.3CSS顯示XML12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼52具體做法是將定義顯示樣式的內(nèi)容定義到一個獨立的CSS文件中,XSLT表示XMLStylesheetLanguageTransformation,表示XML樣式表語言轉(zhuǎn)換。它是基于XML,具有XML的基本語法要求.當(dāng)前的版本是XSLT2.0,是1999年推出的XSLT1.0的修正版。5.4XSLT轉(zhuǎn)換XML12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼53XSLT表示XMLStylesheetLanguageXSLT可以實現(xiàn)按照特定格式顯示XML文件的內(nèi)容。但不同在于CSS僅僅設(shè)置XML文件的格式,XML文件的內(nèi)容不變。而XSLT是將一個XML文件轉(zhuǎn)換成另外一個格式的XML文件,文件的內(nèi)容發(fā)生變化。XSLT就好比一個模板,XML文件按照模板進(jìn)行處理。5.4XSLT轉(zhuǎn)換XML12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼54XSLT的工作原理XSLT可以實現(xiàn)按照特定格式顯示XML文件的內(nèi)容。但不同在于XPath全稱是XMLPathLanguage,表示XML路徑語言。XPath也是XSL的組成部分之一。XPath的重要作用就是實現(xiàn)XML文件的導(dǎo)航。通過導(dǎo)航實現(xiàn)XML文件內(nèi)部的定位,實現(xiàn)對XML文件的元素、屬性、文本數(shù)據(jù)等內(nèi)容的訪問。但是作為XSL的組成,XPath并不是基于XML的語法,而是采用類似目錄結(jié)構(gòu)的簡潔語法內(nèi)容。5.4.1XPATH基礎(chǔ)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼55XPath全稱是XMLPathLanguage,表示XMXPATH的組成:XPath的節(jié)點XPath位置路徑XPath的軸XPath的運算符5.4.1XPATH基礎(chǔ)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼56XPATH的組成:5.4.1XPATH基礎(chǔ)12/9/202XPath的節(jié)點XPath將XML文檔視之為節(jié)點樹節(jié)點樹中由節(jié)點構(gòu)成各個節(jié)點可以表示XML文檔的元素或?qū)傩曰蚱渌麅?nèi)容。5.4.1XPATH基礎(chǔ)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼57名稱說明(以程序清單5-14為例)根(文檔)節(jié)點表示XML文件的層次結(jié)構(gòu)的頂層,如studentlist元素節(jié)點表示XML元素,如student,id,name,birthday,gender屬性節(jié)點表示XML元素的屬性文本節(jié)點表示XML文件的文本數(shù)據(jù)內(nèi)容命名空間節(jié)點表示XML命名空間前綴/URI對處理指令節(jié)點表示XML文件的處理指令注釋節(jié)點表示XML文件的注釋XPath的節(jié)點5.4.1XPATH基礎(chǔ)12/9/2022XPath的軸XPath的節(jié)點之間并不是孤立的,而是存在特定的關(guān)系。XPath將節(jié)點的關(guān)系定義為軸。父(Parent):每一個元素和屬性都有一個父。子(Children):元素節(jié)點的分支。兄弟(Sibling):具有相同父節(jié)點的節(jié)點。祖先(Ancestor):節(jié)點的前續(xù)節(jié)點。后代(Descendant):節(jié)點的后續(xù)節(jié)點。5.4.1XPATH基礎(chǔ)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼58XPath的軸5.4.1XPATH基礎(chǔ)12/9/2022《XPath的位置路徑位置路徑是XPath的重要語法內(nèi)容。位置路徑是XPath的表達(dá)式,可以描述其他節(jié)點相對于一個起點(當(dāng)前節(jié)點)的位置。位置路徑的作用是從當(dāng)前節(jié)點開始,選擇滿足條件相對于起點位置的相關(guān)節(jié)點或節(jié)點集。XPath有絕對定位和相對定位兩種方式。絕對定位表示從根節(jié)點開始定位的方式,在設(shè)置時需要使用運算符“/”。相對定位是當(dāng)前節(jié)點開始的定位方式,利用運算符“//”實現(xiàn)。5.4.1XPATH基礎(chǔ)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼59XPath的位置路徑5.4.1XPATH基礎(chǔ)12/9/20XPath的運算符運算符實現(xiàn)選擇滿足特定條件的節(jié)點。5.4.1XPATH基礎(chǔ)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼60運算符說明/從根節(jié)點開始//從所在節(jié)點開始選擇所有的后輩節(jié)點.表示當(dāng)前節(jié)點..表示父節(jié)點*表示所有元素節(jié)點@表示元素的屬性,@*表示元素的所有屬性node()表示任何類型的節(jié)點[]選擇運算,內(nèi)含謂詞,謂詞表示XPath的導(dǎo)航特定條件|組合位置路徑,實現(xiàn)多個路徑XPath的運算符5.4.1XPATH基礎(chǔ)12/9/202運算符組合,可以形成XPath路徑表達(dá)式。通過XPath的路徑表達(dá)式來導(dǎo)航特定條件的節(jié)點或節(jié)點集。例如,已知XML文件的樹型結(jié)構(gòu)如下圖所示,則寫出選擇list下層student元素的所有子元素的XPath的路徑表達(dá)式:/list/student5.4.1XPATH基礎(chǔ)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼61運算符組合,可以形成XPath路徑表達(dá)式。通過XPath的路XSLT可轉(zhuǎn)換XML數(shù)據(jù),將XML數(shù)據(jù)轉(zhuǎn)換成其他形式的文檔。與XPath不同在于,XSLT是基于XML的,它具有XML的語法要求。作為轉(zhuǎn)換XML的一種樣式表定義形式,XSLT也具有其自身的特點。5.4.2XSLT的基本結(jié)構(gòu)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼62XSLT可轉(zhuǎn)換XML數(shù)據(jù),將XML數(shù)據(jù)轉(zhuǎn)換成其他形式的文檔。XSLT的基本結(jié)構(gòu)如下:<?xmlversion="1.0"encoding="UTF-8"?><xsl:stylesheetversion=版本號xmlns:xsl="/1999/XSL/Transform"> ……<!--加入XSLT元素--></xsl:stylesheet>5.4.2XSLT的基本結(jié)構(gòu)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼63XSLT的基本結(jié)構(gòu)如下:5.4.2XSLT的基本結(jié)構(gòu)12/XSLT的基本元素(1)<xsl:template>元素“xsl:template”元素是模板元素,用于定義XML元素的轉(zhuǎn)換規(guī)則。“xsl:template”元素有一個重要屬性“match”。這個屬性的作用是利用XPath表達(dá)式指出需要套用模板的XML元素的位置路徑。對于符合XPath導(dǎo)航條件的位置路徑,則需要按模板的定義進(jìn)行轉(zhuǎn)換。5.4.2XSLT的基本結(jié)構(gòu)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼64XSLT的基本元素5.4.2XSLT的基本結(jié)構(gòu)12/9/(2)<xsl:value-of>元素“xsl:value-of”元素是內(nèi)容元素。該元素的最主要作用是獲取XML數(shù)據(jù)(包括XML元素和屬性)的具體內(nèi)容。與“xsl:template”一樣,“xsl:value-of”元素需要XPath來定位XML數(shù)據(jù)。具體實現(xiàn)是先用XPath定位XML數(shù)據(jù)的位置路徑,“xsl:value-of”元素通過屬性有“select”選擇位置路徑指定的相關(guān)數(shù)據(jù)。例5.1

要求編寫一個XSLT文件,能將程序清單5-9中的第二個email相關(guān)數(shù)據(jù)按照XHTML的表格形式顯示。程序代碼見XSLT5-17.xslt.5.4.2XSLT的基本結(jié)構(gòu)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼65(2)<xsl:value-of>元素5.4.2XSLT(3)控制元素XSLT與其他語言一樣也提供了控制元素。這些控制元素有:循環(huán)元素“xsl:for-each”單條件元素“xsl:if”多條件元素“xsl:choose”例5.2要求編寫一個XSLT文件,能將程序清單5-9中所有wang@發(fā)送的email的相關(guān)數(shù)據(jù)按照XHTML的表格形式顯示。代碼見XSLT5-18.xslt.5.4.2XSLT的基本結(jié)構(gòu)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼66(3)控制元素5.4.2XSLT的基本結(jié)構(gòu)12/9/202(4)<xsl:apply-templates>元素“xsl:apply-templates”元素是遞歸調(diào)用模板元素。該元素的作用是將定義的模板遞歸調(diào)用到當(dāng)前節(jié)點以及子節(jié)點。該元素有一個可選屬性select,該屬性設(shè)置指定節(jié)點的轉(zhuǎn)換規(guī)則。通過select屬性也可以規(guī)定模板轉(zhuǎn)換的順序。例5.3要求編寫一個XSLT文件,能將程序清單5-9中所有email元素的from與to元素按照列表形式輸出顯示。代碼見XSLT5-19.xslt5.4.2XSLT的基本結(jié)構(gòu)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼67(4)<xsl:apply-templates>元素5.4.XSLT可以將XML文件轉(zhuǎn)換成特定格式的文檔,然后以這些文檔形式進(jìn)行顯示。為了實現(xiàn)XSLT轉(zhuǎn)換XML文件,需要在XML文件中聲明使用XSLT定義的樣式表,具體定義形式如下:<?xml-stylesheettype="text/xsl"href="XSLT樣式表文件"?>type屬性指定了樣式表的格式為“text/xsl”,表示使用XSLT的樣式表;href屬性明確了樣式表文件的URL,按照指定的位置使用XSLT樣式表。5.4.3XSLT顯示XML12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼68XSLT可以將XML文件轉(zhuǎn)換成特定格式的文檔,然后以這些文檔XML是可擴展標(biāo)記語言,常用于數(shù)據(jù)的表達(dá)。它具有良構(gòu)性、可擴展性、靈活性和簡單性。符合當(dāng)前的數(shù)據(jù)表達(dá)與表現(xiàn)分離的基本原則。了解XML客戶端應(yīng)用,詳細(xì)介紹了XML的基礎(chǔ)知識。特別對于XML的語法要求,以及建立一個良構(gòu)的XML文件必須遵循的原則進(jìn)行深入淺出的說明。5.5小結(jié)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼69XML是可擴展標(biāo)記語言,常用于數(shù)據(jù)的表達(dá)。它具有良構(gòu)性、可擴為了更加符合XML應(yīng)用的要求,本章還介紹了XML驗證兩種機制:文檔類型定義和XML模式定義語言XML的兩種顯示方式:CSS顯示XML與XSLT轉(zhuǎn)換XML。XML實質(zhì)是一個服務(wù)器端的技術(shù),更深入的介紹見第14章。5.5小結(jié)12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼70為了更加符合XML應(yīng)用的要求,本章還介紹了XML驗證兩種機制12/9/2022《WEB開發(fā)技術(shù)實用教程》71-TheEnd-謝謝12/9/2022《WEB開發(fā)技術(shù)實用教程》71-TheE第5章可擴展標(biāo)記語言XML12/9/202272《WEB開發(fā)技術(shù)實用教程》第5章可擴展標(biāo)記語言XML12/9/20221《WEB開發(fā)了解XML基礎(chǔ)以及應(yīng)用XML的背景了解XML的兩種驗證機制DTD和XSM學(xué)習(xí)和比較展示XML文件的兩種方式:CSS和XSLTXSLT在轉(zhuǎn)換XML的具體實現(xiàn)教學(xué)目的12/9/202273《WEB開發(fā)技術(shù)實用教程》了解XML基礎(chǔ)以及應(yīng)用XML的背景教學(xué)目的12/9/2022教學(xué)內(nèi)容12/9/202274《WEB開發(fā)技術(shù)實用教程》5.3CSS顯示XML5.4XSLT轉(zhuǎn)換XML5.4.1XPath基礎(chǔ)5.4.2XSLT的基本結(jié)構(gòu)5.4.3用XSLT顯示XML5.1XML基礎(chǔ)5.1.1什么是XML5.1.2XML的相關(guān)技術(shù)5.1.3建立XML文件5.1.4XML的命名空間5.1.5XML的數(shù)據(jù)島5.2XML驗證機制5.2.1文檔類型定義DTD5.2.2XML模式定義語言教學(xué)內(nèi)容12/9/20223《WEB開發(fā)技術(shù)實用教程》5.3數(shù)據(jù)在表示內(nèi)容方面分成兩種形式:(1)結(jié)構(gòu)性的數(shù)據(jù):文件中的數(shù)據(jù)是經(jīng)過分析和處理過的,具有一定的結(jié)構(gòu)格式。結(jié)構(gòu)性的數(shù)據(jù)形式方便信息處理、存儲和應(yīng)用。但是往往必須借助于特定軟件工具表現(xiàn)數(shù)據(jù)。(2)非結(jié)構(gòu)性的數(shù)據(jù):這是在計算機世界中大量存在的數(shù)據(jù)形式。例如,文本文件、電子郵件、html網(wǎng)頁、WinWord2003的doc文件等包含的數(shù)據(jù)。這種形式的數(shù)據(jù)與結(jié)構(gòu)性數(shù)據(jù)比較,可以發(fā)現(xiàn),它們可以表示一定數(shù)據(jù)內(nèi)容,但是這些內(nèi)容之間不能直接體現(xiàn)之間的聯(lián)系,也沒有有效的方式來表達(dá)這些數(shù)據(jù)之間是否存在關(guān)系。XML結(jié)合結(jié)構(gòu)性的數(shù)據(jù)和非結(jié)構(gòu)性的數(shù)據(jù)的優(yōu)點,將不同文件格式的文件數(shù)據(jù),在保持?jǐn)?shù)據(jù)一致性的同時,進(jìn)行內(nèi)容轉(zhuǎn)換和良好地顯示,達(dá)到實現(xiàn)數(shù)據(jù)的共享的目的.5.1XML基礎(chǔ)12/9/202275《WEB開發(fā)技術(shù)實用教程》數(shù)據(jù)在表示內(nèi)容方面分成兩種形式:5.1XML基礎(chǔ)12/9/XML是eXtenibleMarkupLanguage的簡稱,它代表可擴展標(biāo)記語言。1996年,W3C聯(lián)盟組織XML工作組來研究新的標(biāo)記語言XML。1998年2月,W3C正式推薦了XML1.0標(biāo)準(zhǔn)。XML語言的基本原理與SGML語言一致,就是只定義數(shù)據(jù)內(nèi)容,不嵌入任何過程和處理內(nèi)容。定義后的文件可以與多種技術(shù)結(jié)合重新編碼形成多種的應(yīng)用。XML語言的重點就是定義數(shù)據(jù)的內(nèi)容,然后結(jié)合其他技術(shù)表現(xiàn)數(shù)據(jù)。5.1.1什么是XML12/9/202276《WEB開發(fā)技術(shù)實用教程》XML是eXtenibleMarkupLanguage的XML的特點(1)擴展性(2)靈活性(3)自描述性(4)簡單性XML的應(yīng)用領(lǐng)域XML實現(xiàn)了數(shù)據(jù)和顯示的分離XML實現(xiàn)數(shù)據(jù)的存儲和共享XML實現(xiàn)數(shù)據(jù)的交換XML大量應(yīng)用于WEB應(yīng)用。XML為網(wǎng)絡(luò)應(yīng)用提供強大支持。5.1.1什么是XML12/9/202277《WEB開發(fā)技術(shù)實用教程》XML的特點5.1.1什么是XML12/9/20226《W5.1.2XML的相關(guān)技術(shù)數(shù)據(jù)驗證實現(xiàn)超級鏈接實現(xiàn)數(shù)據(jù)查詢數(shù)據(jù)顯示XMLCSSXSL/XSLTDTDXMLSchemaXLinkXPointerXQueryCSS:CSS往往和XML結(jié)合,將XML文件中的數(shù)據(jù)以一定格式顯示出來。XSL/XSLT:XSL是eXtensibleStyleSheetLanguage,表示擴展樣式表語言。XSL由三個組成構(gòu)成,XSLT(擴展樣式表語言轉(zhuǎn)換)XPathXSL-FO12/9/202278《WEB開發(fā)技術(shù)實用教程》5.1.2XML的相關(guān)技術(shù)XMLCSSXSL/XSLTD5.1.2XML的相關(guān)技術(shù)XLink和XPointer:XLink和XPointer結(jié)合使用。XLink和XPointer可以實現(xiàn)訪問鏈接資源的作用。其中:XLink全稱為XMLLinkingLanguage,表示XML鏈接語言。XLink可以插入XML元素,實現(xiàn)創(chuàng)建和描述資源的鏈接作用。XPointer是XMLPointerLanguage的簡寫,表示XML指針語言。XPointer能讓超級鏈接指向XML文檔的片段。XQuery:XQuery是XML查詢語言。XQuery是一種查找和提取XML元素與屬性的語言。DTD:是DocumentTypeDefinition文檔類型定義。定義XML文件的文檔結(jié)構(gòu)。通過DTD可以實現(xiàn)XML文件數(shù)據(jù)的驗證。XMLSchema:通常把XMLSchema規(guī)范視為XMLSchemaDefinition(XML模式定義),簡寫成XSD。XSD可以實現(xiàn)XML文件的語法檢查以及數(shù)據(jù)的驗證。12/9/202279《WEB開發(fā)技術(shù)實用教程》5.1.2XML的相關(guān)技術(shù)XLink和XPointer:XML是一個自描述性的具有良構(gòu)(Well-formed)的標(biāo)記語言。可以用XML語言定義XML文件。在W3C推薦的XML1.0說明書明確說明了“如果一個數(shù)據(jù)對象滿足本規(guī)范中格式正確的定義時,它是一個XML文件”。5.1.3建立XML文件12/9/202280《WEB開發(fā)技術(shù)實用教程》XML是一個自描述性的具有良構(gòu)(Well-formed)的標(biāo)XML文件是由數(shù)字字符和各種類型的標(biāo)記所構(gòu)成,從邏輯上可以將XML文件由:處理指令文件聲明標(biāo)記實體引用注釋PCDATA段和CDATA段一個XML示例,見程序清單XML5-1.xml。在IE瀏覽器的運行結(jié)果。5.1.3建立XML文件12/9/202281《WEB開發(fā)技術(shù)實用教程》XML文件是由數(shù)字字符和各種類型的標(biāo)記所構(gòu)成,從邏輯上可以將處理指令XML文件的處理指令是向應(yīng)用程序傳遞的特殊指令。處理指令必須處于XML文件首部。例如:<?xmlversion="1.0"encoding="UTF-8"?>表示該XML文件的版本是1.0,采用的字符集是“UTF-8”5.1.3建立XML文件12/9/202282《WEB開發(fā)技術(shù)實用教程》處理指令5.1.3建立XML文件12/9/202211《文檔類型定義(DTD)XML文件通過DOCTYPE文件類型聲明說明文件的使用的文法,定義了XML文件的元素、屬性、以及實體等多項內(nèi)容,具體指明了XML文件文件結(jié)構(gòu)。XML文件確定的使用文法,有兩種方式:指明外部的DTD文件;可以通過在XML的內(nèi)部的DTD。文件類型定義具體的位于文件首部,第一個標(biāo)記元素之前。例:<!DOCTYPEmailboxSYSTEM"DTD5-5.dtd">5.1.3建立XML文件12/9/202283《WEB開發(fā)技術(shù)實用教程》文檔類型定義(DTD)5.1.3建立XML文件12/9/標(biāo)記XML文件中最主要的內(nèi)容是由大量的元素構(gòu)成的。XML文件元素可以是由成對標(biāo)記中封閉內(nèi)容構(gòu)成,也可以是不包含內(nèi)容的空元素。XML文件中的標(biāo)記具有幾點語法要求,以符合XML文件的良構(gòu)性:XML的標(biāo)記區(qū)分大小寫;標(biāo)記<a>和<A>在XML文件中就是代表兩種不同的標(biāo)記;XML的標(biāo)記必須是封閉的。XML文件中必須有一個根元素。在XML文件中標(biāo)記的屬性必須通過雙引號包含起來,不能忽略。5.1.3建立XML文件12/9/202284《WEB開發(fā)技術(shù)實用教程》標(biāo)記5.1.3建立XML文件12/9/202213《WE實體引用實體引用實際上就是引用具有特定意義的字符對象。引用實體有兩種形式:“&字符串;”例如: “&#實體編號”其中實體編號是由十六進(jìn)制的數(shù)字構(gòu)成。5.1.3建立XML文件12/9/202285《WEB開發(fā)技術(shù)實用教程》實體引用5.1.3建立XML文件12/9/202214《注釋XML文件也定義注釋,注釋的形式同HTML注釋一致,形如“<!--注釋-->”。注釋為XML文件提供必要的解釋說明。在應(yīng)用程序使用XML文件時,XML文件的注釋會被忽略。5.1.3建立XML文件12/9/202286《WEB開發(fā)技術(shù)實用教程》注釋5.1.3建立XML文件12/9/202215《WEPCDATA段和CDATA段在XML元素中,標(biāo)記之間包含的內(nèi)容就是PCDATA段。CDATA段具有特定的格式標(biāo)明它的特殊性。CDATA片段不會被應(yīng)用程序進(jìn)行解析,而是全部顯示。在CDATA段中的標(biāo)記與實體和其他內(nèi)容一起會原樣顯示。CDATA片段定義形如:<![CDATA[

文本……]]>5.1.3建立XML文件12/9/202287《WEB開發(fā)技術(shù)實用教程》PCDATA段和CDATA段5.1.3建立XML文件12<book><bookname>計算機應(yīng)用</bookname><author>程地</author><publisher>XX出版社</publisher><script><![CDATA[functiongetNumber(number){if(number<0&&number>MAXLEN)returnelse{number++;returnnumber;}}]]></script></book>程序代碼見程序XML5-2.xml,運行結(jié)果。5.1.3建立XML文件PCDATA段CDATA段12/9/202288《WEB開發(fā)技術(shù)實用教程》<book>5.1.3建立XML文件PCDATA段CDAXML命名空間是一組關(guān)于元素和屬性命名惟一的集合的名稱。通過XML命名空間可以標(biāo)識和區(qū)分不同的元素和屬性。W3C于1999年初次推薦使用XML命名空間規(guī)范。在該規(guī)范中指出了如下XML命名空間的定義形式。<命名空間前綴:元素名xmlns:命名空間前綴="命名空間URI">定義XML命名空間后,可以直接使用命名空間前綴來表示命名空間標(biāo)識符。5.1.4XML的命名空間12/9/202289《WEB開發(fā)技術(shù)實用教程》XML命名空間是一組關(guān)于元素和屬性命名惟一的集合的名稱。通過……<sl:studentlistxmlns:sl="/"><sl:student><sl:name>張珊</sl:name><sl:gender>女</sl:gender><school:namexmlns:school="">XXX市北京路232號

</school:name></sl:student></sl:studentlist>……5.1.4XML的命名空間命名空間前綴命名空間URI12/9/202290《WEB開發(fā)技術(shù)實用教程》……5.1.4XML的命名空間命名空間前綴命名空間URI可以采用默認(rèn)的命名空間形如“xmlns=命名空間URI”以簡化文件。將上述的代碼可以改寫成如下內(nèi)容。5.1.4XML的命名空間……<studentlistxmlns:sl="/"xmlns:school=""> <student> <name>張珊</name> <gender>女</gender> <school:name>XXX市北京路232號

</school:name> </student></studentlist>……12/9/202291《WEB開發(fā)技術(shù)實用教程》可以采用默認(rèn)的命名空間形如“xmlns=命名空間URI”以簡XML數(shù)據(jù)島指能被微軟的InternetExplorer5.x以上版本識別,以及嵌入到HTML中的XML數(shù)據(jù)。通過XML數(shù)據(jù)島可以將XML數(shù)據(jù)作為一個整體直接傳入到具有HTML的網(wǎng)頁中,不需要腳本語言就可以實現(xiàn)。5.1.5XML的數(shù)據(jù)島12/9/202292《WEB開發(fā)技術(shù)實用教程》XML數(shù)據(jù)島指能被微軟的InternetExplorer要定義XML數(shù)據(jù)島,這需要在HTML代碼按照下列形式將一個XML文件聲明XML數(shù)據(jù)島。<xmlid="數(shù)據(jù)島名"src="XML文件URL“>要使用數(shù)據(jù)島還需要實現(xiàn)XML數(shù)據(jù)綁定到具體HTML元素中:在HTML的元素如table通過屬性“datasrc”指明使用具體名稱的XML數(shù)據(jù)島。在HTML的元素如div、span中用屬性“datafld”來綁定到具體的XML數(shù)據(jù)。例將XML數(shù)據(jù)按表格輸出,代碼見HTML5-3.xml,運行結(jié)果。5.1.5XML的數(shù)據(jù)島12/9/202293《WEB開發(fā)技術(shù)實用教程》要定義XML數(shù)據(jù)島,這需要在HTML代碼按照下列形式將一個XXML文件必須符合XML規(guī)范。在具體表現(xiàn)上,XML文件不單具有嚴(yán)格的XML語法要求,還要求XML文件定義結(jié)構(gòu)在文檔中必須保持一致。為了保證一個XML文件的良構(gòu)(Well-formed)特點和確保XML文件符合定義規(guī)則,有必要對XML文件進(jìn)行驗證。DTD和XMLSchema常用于XML驗證機制。5.2XML的驗證機制12/9/202294《WEB開發(fā)技術(shù)實用教程》XML文件必須符合XML規(guī)范。在具體表現(xiàn)上,XML文件不單具DTD(DocumentTypeDefinition,文檔類型定義)是一種XML驗證機制,是XML標(biāo)準(zhǔn)的一部分。DTD可以確定XML文件的合法組成,定義XML文件的結(jié)構(gòu)。DTD可以定義在XML文件內(nèi)部,稱為內(nèi)部DTD。XML文件也可以通過語句實現(xiàn)外部DTD的引用。5.2.1文檔類型定義DTD12/9/202295《WEB開發(fā)技術(shù)實用教程》DTD(DocumentTypeDefinition,文內(nèi)部DTDXML文件中通過DOCTYPE實現(xiàn)內(nèi)部DTD的定義。具體DTD內(nèi)容包括在DOCTYPE中。形如:<!DOCTYPE根元素名[<!--定義元素-->…….]>一個內(nèi)部DTD的應(yīng)用實例,代碼見XML5-4.xml.5.2.1文檔類型定義DTD12/9/202296《WEB開發(fā)技術(shù)實用教程》內(nèi)部DTD5.2.1文檔類型定義DTD12/9/202225導(dǎo)入外部DTD外部DTD是導(dǎo)入到XML的DTD。首先,用戶需要按DTD語法規(guī)則定義一個文件擴展名為“dtd”的文件。在這個DTD文件中確定XML文件的結(jié)構(gòu)及組成。然后在XML文件中通過DOCTYPE導(dǎo)入該文件。具體的形如:“<!DOCTYPE根元素SYSTEM"文件名">”。5.2.1文檔類型定義DTD12/9/202297《WEB開發(fā)技術(shù)實用教程》導(dǎo)入外部DTD5.2.1文檔類型定義DTD12/9/2022DTD元素在DTD中聲明XML文件中元素的元素是DTD元素。DTD元素可以說明XML的元素標(biāo)記、特定元素的子元素以及元素包含的內(nèi)容。DTD元素可以定義XML文件的元素結(jié)構(gòu),以及反映元素間的相互關(guān)系。DTD元素通過<!ELEMENT…>實現(xiàn)定義,語法形式如下:<!ELEMENT元素名稱內(nèi)容>5.2.1文檔類型定義DTD12/9/2022《WEB開發(fā)技術(shù)實用教程》陳軼98DTD元素5.2.1文檔類型定義DTD12/9/2022《定義一個空元素<!ELEMENT元素名稱

EM

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論