




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 XML語言第一節(jié) XML概述第二節(jié) XML語法第三節(jié) DTD第四節(jié) Schema第五節(jié) Namespace第六節(jié) XSL第七節(jié) XML的應(yīng)用第八節(jié) 其他如何表示信息?序號(hào)書名出版社出版日期售價(jià)1國民黨研究續(xù)集 中國友誼出版公司1999-01-0111.4 元2李敖議壇衰思錄 中國友誼出版公司2009-01-0131.6 元3李敖作品精選-為中國思想趨向求答案 中國友誼出版公司2001-04-012.7 元4李敖送電集:李敖著 中國友誼出版公司2004-01-0111.4 元5李敖有話說.7 中國友誼出版公司2007-10-3019.3 元6李敖有話說6 中國友誼出版公司2007-07-
2、0122.0 元7李敖有話說5 中國友誼出版公司2007-05-1117.3 元8李敖生死書:我們沒有明天 中國友誼出版公司2006-12-0119.8 元9只愛一點(diǎn)點(diǎn):從萬寶囊到臭屎堆 中國友誼出版公司2006-12-019.9 元10李敖有話說4 中國友誼出版公司2006-08-0124.6 元如何表示信息?如何表示信息?計(jì)算機(jī)與人均可讀的信息表示 國民黨研究續(xù)集 中國友誼出版公司 1999-01-01 11.4 元 李敖議壇衰思錄 中國友誼出版公司 2009-01-01 31.6 元 李敖有話說 中國友誼出版公司 2007-01-01 11.4 元 演示:/SRW/SRW/service
3、s/DEIS?query=cql.any+%3D+%22system%22&version=1.1&operation=searchRetrieve&recordSchema=info:srw/schema/1/dc-v1.1&recordPacking=xml&stylesheet=/SRW/dbase/DEIS/searchRetrieveResponse_csdl.xsl/SRW/services/DEIS?query=cql.any+%3D+%22system%22&version=1.1&operation=searchRetrieve&recordSchema=info:srw/s
4、chema/1/dc-v1.1&recordPacking=xml&stylesheet=/SRW/dbase/DEIS/searchRetrieveResponse.xslXML介紹 XML: eXtensible Markup Language中文譯為“可擴(kuò)展標(biāo)記語言”,是用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。是SGML(Standard generalized markup language) 的一子集.標(biāo)記讀書時(shí),為了突出重點(diǎn),可以用彩色筆把某些句子加亮,或者下劃線。文字編輯器借助置標(biāo)來定義格式與外觀通信程序依靠置標(biāo)理解所傳輸信息的語意數(shù)據(jù)庫通過置標(biāo)來將數(shù)據(jù)字段與一定的含義相連,并
5、表明字段之間的關(guān)系標(biāo)記語言一種用來給文本添加標(biāo)記的語言。置標(biāo)用標(biāo)記語言對(duì)數(shù)據(jù)進(jìn)行編碼的過程。GML(Generalized Markup Language)2 0世紀(jì)6 0年代,I B M公司創(chuàng)建了第一個(gè)標(biāo)識(shí)文檔的通用標(biāo)記語言GML。最初,GML只被用于IBM內(nèi)部文檔。SGML隨著眾多企業(yè)采用GML,它被擴(kuò)展為標(biāo)準(zhǔn)通用標(biāo)記語言SGML (Standard Generalized Markup Language)。1986年,國際標(biāo)準(zhǔn)化組織把SGML確定為ISO/SGML特點(diǎn)SGML包含一系列的文檔類型定義(簡(jiǎn)稱DTD)SGML是可以擴(kuò)展;SGML十分復(fù)雜,不易學(xué)習(xí)使用,計(jì)算機(jī)實(shí)現(xiàn)也十分困難。H
6、TML1989年,歐洲核子物理研究中心在SGML基礎(chǔ)上提出HTML(HyperText Markup Language )。HTML包含一組事先定義好的標(biāo)簽,每個(gè)標(biāo)簽表明一定的顯示格式。例如:被置標(biāo)后的HTML文件,同時(shí)包含文本及文本顯示格式信息。HTML文件由專門處理工具進(jìn)行讀取、顯示。W3C推出精簡(jiǎn)SGMLXMLHTML過于簡(jiǎn)單的語法無法表現(xiàn)復(fù)雜的形式,不能滿足不斷增長(zhǎng)的需求。SGML太龐大,用戶學(xué)、用不方便,且要全面實(shí)現(xiàn)SGML的瀏覽器又非常困難。XMLXML是一種比HTML更強(qiáng)大的標(biāo)記語言XML同樣依賴于描述一定規(guī)則的標(biāo)簽和能夠讀懂這些標(biāo)簽的處理工具。XML是可擴(kuò)展的標(biāo)記語言與HTML
7、事先定義好固定標(biāo)簽不同,XML提供一個(gè)標(biāo)簽標(biāo)準(zhǔn),用戶可以根據(jù)實(shí)際需要自行定義新的標(biāo)簽。XML1998年XML1.0成為W3C推薦標(biāo)準(zhǔn)/TR/1998/REC-xml-19980210 XML 1.0 (Fifth Edition) /TR/REC-xml/第一節(jié)、XML概述XML簡(jiǎn)史XML組成XML的優(yōu)點(diǎn)XML文檔組成三部分 標(biāo)記描述 XML數(shù)據(jù)文件(.XML)置標(biāo)語法 DTD/Schema文件(.DTD/.XSD)置標(biāo)含義 XSL文件(.XSL)XMLDTD/XSDXSL理解結(jié)構(gòu)獲得語義XML標(biāo)記描述分兩類一類偏重于語意描述XML看上去和HTML非常相象,但XML標(biāo)簽具有語義,支持相關(guān)工具的
8、語義解析。一類偏重于顯示方式描述,包括:文本描述矢量圖形、圖象、聲音描述等 張三 001 A公司 zhang (010)62345678 五街1234號(hào) 北京 北京 100001 .XML標(biāo)記文檔實(shí)例置標(biāo)語法DTD(Document Type Definition)置標(biāo)語法是通過文件類型定義DTD來描述的,即通過DTD來描述什么是有效的標(biāo)簽。DTD語法定義文件與XML數(shù)據(jù)標(biāo)記文件是分離的。置標(biāo)含義樣式單(Style Sheet)為明確各個(gè)標(biāo)簽含義,XML使用樣式單來向應(yīng)用程序提供如何處理顯示的指示說明。 F公司的客戶聯(lián)系信息 用戶ID: 公司: EMAIL: 電話: 樣式單實(shí)例將XML文檔中的
9、標(biāo)簽轉(zhuǎn)換為HTML中的標(biāo)簽;將XML文檔中的 、等標(biāo)簽轉(zhuǎn)換為HTML中的標(biāo)簽。 第一節(jié)、XML概述XML簡(jiǎn)史XML組成XML的優(yōu)點(diǎn)XML的優(yōu)點(diǎn)可以自由地制定自己的置標(biāo)語言不必由有關(guān)的組織認(rèn)可,不必開發(fā)專用的瀏覽器;允許各個(gè)組織、個(gè)人建立適合他們自己需要的標(biāo)記庫,并且,這個(gè)標(biāo)記庫可以迅速地投入使用。XML的優(yōu)點(diǎn)從語義層次進(jìn)行描述便于修改便于檢索便于處理遵循嚴(yán)格的語法要求便于書寫、閱讀便于借助工具自動(dòng)化處理 XML的優(yōu)點(diǎn)便于不同系統(tǒng)之間信息傳輸可以標(biāo)注多種信息類型文字、圖像、二進(jìn)制文件等XML的優(yōu)點(diǎn)具有較好的保值性XML的保值性來自SGML語言,SGML最初設(shè)計(jì)目標(biāo)是要為文件提供50年以上壽命。電
10、子文檔的雖然能長(zhǎng)期保存,但也存在隱患,處理軟件升級(jí)導(dǎo)致打開文檔的困難性。如五十年以后,人們可能沒有工具去打開用Word97寫的文檔。XML與HTML的比較 比較內(nèi)容HTMLXML可擴(kuò)展性不具有擴(kuò)展性支持定義新的置標(biāo)語言側(cè)重點(diǎn)如何表現(xiàn)信息如何結(jié)構(gòu)化地描述信息語法要求不要求標(biāo)記的嵌套、配對(duì)等嚴(yán)格要求嵌套、配對(duì),和遵循DTD的樹形結(jié)構(gòu)可讀性及可維護(hù)性難于閱讀、維護(hù)結(jié)構(gòu)清晰,便于閱讀、維護(hù)數(shù)據(jù)和顯示的關(guān)系內(nèi)容描述與顯示方式整合為一體內(nèi)容描述與顯示方式相分離保值性不具有保值性具有保值性編輯及瀏覽工具比較多相對(duì)少第二章 XML語言第一節(jié) XML概述第二節(jié) XML語法第三節(jié) DTD第四節(jié) Schema第五節(jié)
11、 XML命名空間第六節(jié) XSL第七節(jié) XML的應(yīng)用第八節(jié) 其他第二節(jié) XML語法XML規(guī)則邏輯結(jié)構(gòu)物理結(jié)構(gòu)參考資料: XML Specification (/TR/REC-xml/)XML規(guī)則基本規(guī)則XML文檔是由 Unicode 字符集組成的純文本文檔。XML 文檔具有良好結(jié)構(gòu)。 XML文檔區(qū)分大小寫。標(biāo)記之間信息構(gòu)成字符數(shù)據(jù)。XML處理器不關(guān)心字符數(shù)據(jù)。XML可為各種對(duì)象、應(yīng)用程序定義語法和文件格式。XML規(guī)則格式良好性規(guī)則XML 文檔結(jié)構(gòu)定義遵循XML 規(guī)范基于XML Specification規(guī)范構(gòu)建的 XML 文檔被稱為“具有良好格式的 XML文檔”。自定義由文檔作者自行創(chuàng)建結(jié)構(gòu)文檔
12、 “DTD”或“XML Schema”;XML 處理器按照這個(gè)文檔中的定義規(guī)則進(jìn)行檢驗(yàn)。XML規(guī)則格式良好性規(guī)則 (1)有且僅有一個(gè)根元素。 根元素也稱文檔元素,整個(gè) XML 文檔的其他元素都包含在根元素中,并通過嵌套形成樹型結(jié)構(gòu)。除了根元素外,其他元素都是子元素。(2)每個(gè)元素必須有開始標(biāo)記和結(jié)束標(biāo)記開始標(biāo)記的格式是: 結(jié)束標(biāo)記的格式是:空元素標(biāo)記:XML規(guī)則格式良好性規(guī)則(3)元素必須正確嵌套元素嵌套時(shí)不允許交叉,最先出現(xiàn)開始標(biāo)記的元素,其結(jié)束標(biāo)記最后出現(xiàn)。 (4)所有屬性值必須放在雙引號(hào)或單引號(hào)中。 (5)如果文檔沒有 DTD,在缺省情況下,所有屬性值的類型必須是“CDATA”。 有效性
13、規(guī)則 如果 XML 文檔中元素出現(xiàn)的個(gè)數(shù)、順序以及元素包含的內(nèi)容都符合 DTD或XML Shema規(guī)則,則該文檔就是有效的。一個(gè) DTD 或 XML Shema 可以被多個(gè)XML 文檔共享,既保證了 XML 文檔結(jié)構(gòu)的標(biāo)準(zhǔn)化,又大大減少編寫代碼的工作負(fù)擔(dān)。DTDXMLXMLXMLXML規(guī)則命名規(guī)則所有 XML命名都必需以字母、下劃線或冒號(hào)開頭。用作命名空間時(shí)才以冒號(hào)做分隔符。如: dc:title保留字用戶不使用如:“ XML”、“xml”XML規(guī)則第二節(jié)、 XML的語法XML規(guī)則邏輯結(jié)構(gòu)物理結(jié)構(gòu)XML文件的邏輯結(jié)構(gòu)XML 文檔組成文檔頭部聲明注釋處理指令文檔類型定義文檔主體由一個(gè)或多個(gè)元素組
14、成;每個(gè)元素可以有子元素。 張三 001 A公司 zhang (010)62345678 XML實(shí)例 1 23 4 5 XML 6 XML是一種可擴(kuò)展的源置標(biāo)語言, 它可用以規(guī)定新的置標(biāo)規(guī)則,并根 據(jù)這個(gè)規(guī)則組織數(shù)據(jù) 7 8 9 !CDATA10 11 張三12 zhang13 14 15 16說明1-2 是序言316 是文件中的各個(gè)元素。5行:“”“”是標(biāo)記,“XML”是字符數(shù)據(jù)。8 是注釋913 是CDATAXML文檔頭部文檔頭部可以包括聲明注釋處理指令文檔類型定義XML文檔頭部(1)XML 聲明一個(gè) XML 文檔通常以一個(gè)XML聲明開始,它指明XML版本等信息,必須出現(xiàn)在XML文檔的第一
15、行。XML聲明的作用就是告訴XML處理程序:“當(dāng)前文件是按照XML標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行置標(biāo)的”。XML文檔頭部(1)XML聲明語法格式 實(shí)例XML文檔頭部(1)XML聲明屬性Version:必備屬性XML版本號(hào),必須在屬性列表中排在最前列。由于當(dāng)前的XML最新版本是1.0,所以:version = “1.0” Standalone:可選屬性表明該XML文件是否還有一個(gè)配套置標(biāo)聲明文件Standalone=“yes”:表示沒有配套的DTD文件;Standalone=“no”,可能有這樣一個(gè)文件(也可能沒有) 缺省為: Standalone=“no”Encoding:可選屬性表明XML文檔使用的字符編碼
16、標(biāo)準(zhǔn),常見的有: 簡(jiǎn)體中文碼:GB2312 繁體中文碼:BIG5 西歐字符: UTF-8(2)處理指令(PI,Processing Instruction)指導(dǎo)應(yīng)用程序如何處理XML文件,格式:?處理指令名 處理指令信息 ?用于連接CSS樣式單的PI格式 用于連接XSL樣式單的PI格式XML文檔頭部(3)注釋XML 中使用注釋對(duì)文檔進(jìn)行解釋說明,增加程序的可讀性,處理程序不對(duì)注釋標(biāo)記的內(nèi)容進(jìn)行處理。語法 XML文檔頭部(3)注釋使用注釋規(guī)則注釋不能出現(xiàn)在聲明之前注釋可以包容標(biāo)記,使標(biāo)記失去作用注釋不能出現(xiàn)在標(biāo)記中注釋內(nèi)容中不能包含“-”以下是合法注釋: !- -XML文檔頭部(4)文檔類型定義
17、語法:要求:文檔類型定義必須出現(xiàn)在根元素標(biāo)記符前面。實(shí)例:!DOCTYPE 聯(lián)系人列表 張三 XML文檔頭部文檔主體文檔主體組成一個(gè)文檔元素(根元素)多個(gè)子元素也可以有 PI 和注釋元素XML元素一個(gè)元素包含一個(gè)起始標(biāo)記、一個(gè)結(jié)束標(biāo)記以及標(biāo)記之間的數(shù)據(jù)內(nèi)容。 標(biāo)記數(shù)據(jù)內(nèi)容/標(biāo)記元素中還可以再嵌套子元素,例如: 張三 元素標(biāo)記元素標(biāo)記基本形式例如: 元素標(biāo)記命名規(guī)則(1)以字母或下劃線開頭,后跟字母、數(shù)字、下劃線、橫線和圓點(diǎn)等,不能包含空格,不能以字符串“xml”作為開頭。下面是合法的XML標(biāo)記名稱: 、 、 下面是非法的XML標(biāo)記名稱: 有空格 以數(shù)字開頭 有非法字符”&”(2)標(biāo)記是大小寫敏
18、感的 空元素標(biāo)記 正常方式 簡(jiǎn)便方式 元素屬性XML元素屬性屬性不影響元素樹型結(jié)構(gòu)、并提供附加的上下文。屬性格式: 例如: 元素屬性舉例: 王芳 李奇 黃昂揚(yáng) 文笛聲 屬性定義規(guī)則 標(biāo)記中可以使用多個(gè)屬性,但屬性名稱不得重復(fù); 屬性名是大小寫敏感的; 屬性只能出現(xiàn)在起始標(biāo)記或空標(biāo)記中; 屬性值必須用引號(hào)(英文);少用屬性,盡可能用子元素。因?yàn)閷傩杂幸韵氯毕荩?屬性值不能包含多重?cái)?shù)值,但是元素可以;屬性值很難擴(kuò)展; 屬性不能描述結(jié)構(gòu)內(nèi)容,但是元素可以;屬性值很難通過 DTD 進(jìn)行測(cè)試。 字符數(shù)據(jù)字符數(shù)據(jù)在起始和結(jié)束標(biāo)記之間出現(xiàn)的字串信息為字符數(shù)據(jù)。張三以下是兩條不同的字符數(shù)據(jù): 一段文字 和:
19、格式一段文字/格式 后者的文本數(shù)據(jù)比前者多了兩個(gè)換行符。字符數(shù)據(jù)可以是任何合法的UNICODE字符,但不能包含“”等特殊字符。特殊字符數(shù)據(jù)表示法一:實(shí)體引用為了在字符數(shù)據(jù)和標(biāo)記中使用一些特殊符號(hào),XML提供了實(shí)體引用法:特殊字符實(shí)體引用B,則B一定是偶數(shù)”正確XML表示形式:加入AB,則B一定是偶數(shù)屬性值中的特殊字符錯(cuò)誤寫法:正確寫法:字符數(shù)據(jù)特殊字符數(shù)據(jù)表示方法二:CDATA格式CDATA文本內(nèi)容中是不能出現(xiàn)字符串“”,因?yàn)樗砹薈DATA數(shù)據(jù)塊的結(jié)束標(biāo)志。CDATA下所有內(nèi)容都被當(dāng)作字符數(shù)據(jù)看待。字符數(shù)據(jù)CDATA與實(shí)體引用比較CDATA表示方式!CDATA張三實(shí)體引用表示方式張三字符數(shù)
20、據(jù)XML注釋用“”引起來可以是多行,但不允許出現(xiàn)嵌套字符串“-”、“”不能出現(xiàn)在注釋中例子: !- HTML XHTML SGML-XML注釋第二節(jié)、 XML的語法XML基本規(guī)則邏輯結(jié)構(gòu)物理結(jié)構(gòu)XML文件的物理結(jié)構(gòu)什么是實(shí)體一個(gè) XML 文件可能由一個(gè)或多個(gè)存儲(chǔ)單元組成,它們被稱為實(shí)體(entity),它們都具有內(nèi)容并且都用名字進(jìn)行標(biāo)識(shí)。類似程序設(shè)計(jì)中的變量,每個(gè)變量可存放一定數(shù)據(jù)。實(shí)體充當(dāng)著和別名類似的角色,一個(gè)簡(jiǎn)單的實(shí)體名稱可以用來代表一大段文本內(nèi)容。實(shí)體類型:一般實(shí)體參數(shù)實(shí)體實(shí)體聲明一般實(shí)體聲明內(nèi)部實(shí)體 !ENTITY 實(shí)體名 “文本內(nèi)容” 例如!ENTITY lettersign“張三
21、某網(wǎng)絡(luò)公司銷售部門北京市海淀區(qū)中關(guān)村88號(hào),100000” 一般實(shí)體聲明外部實(shí)體!ENTITY 實(shí)體名 SYSTEM “地址”例如:!ENTITY lettersignSYSTEM /lettersign.xml實(shí)體聲明實(shí)體聲明參數(shù)實(shí)體參數(shù)實(shí)體的格式與一般實(shí)體很類似,只不過中間要加上“%”符。 !ENTITY % 實(shí)體名 文本內(nèi)容 參數(shù)實(shí)體既可以是內(nèi)部的也可以是外部的,參數(shù)實(shí)體只用在DTD中。實(shí)體聲明 實(shí)體聲明規(guī)則實(shí)體聲明應(yīng)該放在文件類型DOCTYPE中。DOCTYPE一般放在文件頭之后、XML元素之前。例如:!DOCTYPE 文件根元素名 實(shí)體引用 指引用一個(gè)已經(jīng)聲明過的實(shí)體。一般實(shí)體引用形
22、式:&實(shí)體名;例如: &NSLAddress;參數(shù)實(shí)體引用形式:%實(shí)體名;例如:!%short; 實(shí)體引用實(shí)體引用規(guī)則 被引用的實(shí)體必須已經(jīng)在XML文件中聲明過; 實(shí)體引用中不能出現(xiàn)空格: 錯(cuò)誤引用:& lettersign;和&lettersign ;在一個(gè)實(shí)體中可以再引用其它實(shí)體,但是不能出現(xiàn)循環(huán)引用。實(shí)體引用不能在DOCTYPE聲明中出現(xiàn)。一般實(shí)體聲明和引用例子!DOCTYPE 聯(lián)系人列表 張三 A公司 &A公司地址; 李四 B公司 &B公司地址;/地址 實(shí)體聲明實(shí)體引用參數(shù)實(shí)體聲明與引用實(shí)例!%short; 實(shí)體聲明實(shí)體引用實(shí)體引用規(guī)則實(shí)體引用不僅可以出現(xiàn)在字符數(shù)據(jù)中,還可以出現(xiàn)在標(biāo)記
23、的屬性中。例如: 屬性中實(shí)體引用規(guī)則: 在標(biāo)記屬性中不能引用一個(gè)外部實(shí)體。 引用的文本中不能出現(xiàn)字符“” 。 實(shí)體引用第三節(jié) DTD第三節(jié) DTDDTD基本結(jié)構(gòu)定義元素及其后代定義元素屬性DTD基本結(jié)構(gòu)DTDDocument Type Definition規(guī)定XML文檔的邏輯結(jié)構(gòu),主要是來描述XML文件中元素的格式。它可以定義文檔的語法,以便支持XML語法分析程序根據(jù)DTD確認(rèn)某個(gè)XML頁面標(biāo)記的合法性。DTD特點(diǎn) DTD描述了一個(gè)置標(biāo)語言的語法和詞匯表,即定義了XML文件的整體結(jié)構(gòu)及語法。 編輯工具根據(jù) DTD中定義的結(jié)構(gòu)創(chuàng)建XML文檔XML解析器利用DTD定義驗(yàn)證文檔的有效性。DTD可以非
24、常簡(jiǎn)單,僅僅列出所有有效的元素DTD也可以非常復(fù)雜,除元素,還可以指出元素之間的關(guān)系。DTD基本結(jié)構(gòu)DTD的基本結(jié)構(gòu)DTD特點(diǎn)DTD中的關(guān)鍵字都必須是大寫的例如:ELEMENT、ATTLIST、#REQUIRED、#IMPLIED、NMTOKEN、ID等等。DTD所定義的元素和屬性名是大小寫敏感例如 “BOOKS”和“Books”并不相同。DTD的基本結(jié)構(gòu)DTD類型內(nèi)部DTD外部DTD公用DTD內(nèi)部DTD內(nèi)部DTDDTD定義的信息放在XML文檔中,加在XML文件頭部,結(jié)構(gòu)如下: . 內(nèi)部DTD實(shí)例!DOCTYPE 聯(lián)系人列表 張三 A公司 (010)62345678 北京市 五街1234號(hào) 外
25、部DTD什么是外部DTDDTD信息保存在XML文件之外的一個(gè)獨(dú)立文件中。優(yōu)點(diǎn)多個(gè)XML文件共享一個(gè)共用DTD文件簡(jiǎn)化輸入,改動(dòng)DTD不用一一去改每個(gè)XML文件缺點(diǎn)如果DTD的改動(dòng)不是“向后兼容”的,這時(shí)原先寫的那些XML文件可能就會(huì)出問題。外部DTD外部DTD引用XML聲明中必須說明這個(gè)文件不是自成一體的,即standalone屬性值應(yīng)該是“no”。在DOCTYPE聲明中,要加入SYSTEM屬性:外部DTD例子 URL可以是絕對(duì)路徑,也可以是相對(duì)路徑 公共DTD什么是公共DTD以關(guān)鍵字PUBLIC而不是SYSTEM來引用一個(gè)由權(quán)威機(jī)構(gòu)制訂的、提供給特定行業(yè)或公眾使用的DTD,這個(gè)外部DTD還需
26、要得到一個(gè)標(biāo)識(shí)名。公共DTD的引用形式例如 第三節(jié) DTDDTD基本結(jié)構(gòu)定義元素及其后代定義元素屬性DTD 規(guī)范內(nèi)容DTD 聲明元素的定義規(guī)則及相關(guān)信息屬性的種類及其使用 定義元素之間的關(guān)系、元素的排列方式 定義實(shí)體機(jī)制及其引用 元素類型聲明聲明XML文件的根元素、文件內(nèi)容和結(jié)構(gòu)使用元素類型聲明( ETD)來聲明所有元素。定義元素名字、類型一個(gè)XML元素可以為空,也可以是一段純文本,還可以有若干個(gè)子元素,而這些子元素同時(shí)又可以有它們的子元素。DTD通過元素之間的父子關(guān)系,描述整個(gè)文件的結(jié)構(gòu)關(guān)系。元素類型聲明ETD格式例如: !DOCTYPE 聯(lián)系人列表 純文本信息說明聯(lián)系人信息 元素類型聲明其
27、他元素為了使元素“聯(lián)系人列表”中還可以包含其它元素,還需要定義元素“聯(lián)系人”和“姓名”。例如:!DOCTYPE 聯(lián)系人列表 張三 根元素名為“聯(lián)系人列表”;“聯(lián)系人列表”中可以包含子元素“聯(lián)系人”,也可以包含任何純文本數(shù)據(jù) (這即是ANY的含義) ;“聯(lián)系人”元素有且只有一個(gè)自己的子元素“姓名”;“姓名”元素只能包含純文本數(shù)據(jù)(即(#PCDATA))元素類型聲明錯(cuò)誤的例子:!DOCTYPE 聯(lián)系人列表 張三 “聯(lián)系人”、“姓名”元素沒有定義。元素類型聲明注意事項(xiàng)除了根元素外,在定義其它元素時(shí)使用關(guān)鍵字ANY都是不好的習(xí)慣,讓人不知所措在定義元素時(shí),ETD的順序是無關(guān)緊要的。因此: 和 所定義的
28、文件結(jié)構(gòu)是完全相同的元素類型聲明注意事項(xiàng)不能對(duì)不同的元素使用相同的元素名。例如: 在這個(gè)例子中,對(duì)“聯(lián)系人”的重復(fù)定義,會(huì)引起錯(cuò)誤。定義元素及其子元素舉例下例中,我們定義了一個(gè)名為“聯(lián)系人”的元素,它包含一個(gè)單獨(dú)的子元素“姓名”,“姓名”元素包含字符數(shù)據(jù):!DOCTYPE 聯(lián)系人列表 張三 定義元素及其子元素DTD支持靈活的元素定義DTD可以對(duì)一個(gè)元素作如下任何一種類型的定義:有一個(gè)子元素;有一個(gè)或多個(gè)子元素有零個(gè)或多個(gè)子元素至少有一個(gè)子元素有一個(gè)或多個(gè)子元素Y,或一個(gè)子元素Z。不要求順序的子元素空格分離的元素不限順序如DTD: 有效的XML: 張三 zhang有效的XML: zhang 張三
29、要求順序的子元素 逗號(hào)“,”分隔元素要求順序DTD: 有效XML: 張三 zhang無效XML: zhang 張三重復(fù)元素“+”:重復(fù)元素DTD: 說明一個(gè)“聯(lián)系人”元素中必須含有一個(gè)“姓名”元素,后面接一個(gè)或多個(gè)“EMAIL”元素。有效XML 張三 zhang zhang zhang重復(fù)元素“*”:“零個(gè)或多個(gè)”元素DTD 有效XML 張三 或者 張三 zhang zhang成組元素括號(hào):元素組DTD 說明子元素可以使用括號(hào)并為一組。上面DTD片段說明,一個(gè)“聯(lián)系人”元素中可以有一個(gè)或多個(gè)“姓名/EMAIL”子元素對(duì),并且在每個(gè)子元素對(duì)中,“姓名”都放在“EMAIL”之前。有效XML 張三
30、zhang 李四 li 王五 wang OR或符號(hào)“|”:任選一DTD規(guī)定: 所有的“聯(lián)系人”元素應(yīng)該有一個(gè)“姓名”子元素,之后還應(yīng)該有一個(gè)“電話”或一個(gè)“EMAIL”元素,但不能同時(shí)有“電話”和“EMAIL”兩個(gè)元素。下面是無效XML(因?yàn)槿鄙匐娫捇駿MAIL) 張三OR或符號(hào)“|”:任選一DTD規(guī)定: 下面還是無效XML(因?yàn)椴荒芡瑫r(shí)有電話和EMAIL) 張三 12345678 zhang OR或符號(hào)“|”:任選一DTD規(guī)定: 下面還是無效XML(姓名應(yīng)放在EMAIL前) zhang 張三OR或符號(hào)“|”:任選一DTD規(guī)定: 有效XML文件 張三 12345678或者是: 張三 zhang
31、OR或注意事項(xiàng)在一個(gè)組中,只允許使用一種連接符(例如“,”或“|”)。下面DTD是不合法的: 要想使用多種連接符,只有通過創(chuàng)建子元素組的方式,例如:可選子元素符號(hào)“?”:可選子元素 例如: 上面DTD定義: 每一個(gè)“聯(lián)系人”都必須有一個(gè)“姓名”子元素,同時(shí)或者有一個(gè)“電話” 或者有一個(gè)“EMAIL”子元素,此外,它還可以包含一個(gè)“地址”子元素,也可以不包含這個(gè)元素。可選子元素符號(hào)“?”:可選子元素 有效XML 張三 zhang 五街1234號(hào) 北京市 北京 或者 張三 zhang混合內(nèi)容在一個(gè)元素中既包含子元素,也包含純文本。例如:!DOCTYPE 聯(lián)系人列表 張三 (010)62345678
32、 zhang 這是關(guān)于張三的信息 注意由于在“(姓名,電話,EMAIL,#PCDATA)”之外有“*”,所以在元素“聯(lián)系人”中可以包含零個(gè)或多個(gè)“姓名”、電話、EMAIL和純文本字段??赵乜赵匾粋€(gè)元素中不包含任何子元素,也不包含純文本。格式: EMPTY 說明:在XML文件中可以使用一個(gè)元素: 定義元素及其子元素正則表達(dá)式元 字 符含 義+出現(xiàn)一次或多次*出現(xiàn)零次或多次?可選,不出現(xiàn)或出現(xiàn)一次()一組要共同匹配的表達(dá)式|OR,或,AND,要求嚴(yán)格遵從順序要求元素A元素B元素C元素列表,無須遵從順序要求第三節(jié) DTDDTD的基本結(jié)構(gòu)定義元素及其后代定義元素屬性如何定義元素的屬性屬性實(shí)例 假如
33、在XML文檔中,“商品”元素有兩個(gè)屬性:“類型”、“顏色”: 如何定義元素的屬性DTD屬性定義格式:例子: 元素名:屬性所屬的元素名字,上面例中元素名是“商品”屬性名:上例中屬性名分別為“類型”、“顏色”屬性類型:指定該屬性是屬于十個(gè)有效屬性類型中的哪種類型缺省值:如果沒有指定值,語法分析器默認(rèn)它具有的取值如何定義元素的屬性注意事項(xiàng)ATTLIST是一個(gè)屬性的列表,它可以包含多個(gè)屬性。同一屬性可以多次聲明,首先執(zhí)行第一個(gè)。一些元素帶有多個(gè)屬性,通過多個(gè)聲明實(shí)現(xiàn)屬性缺省值屬性的缺省值可分三類 REQUIRED:必須賦值的屬性說明XML文件中必須為這個(gè)屬性給出一個(gè)屬性值。IMPLIED:屬性值可有可無的屬性文法解釋器不再強(qiáng)行要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工程合同協(xié)議審批會(huì)簽單
- 《找規(guī)律》(教案)北師大版三年級(jí)下冊(cè)數(shù)學(xué)
- 農(nóng)村建房合同協(xié)議書電子版(2025年版)
- 第13課 網(wǎng)絡(luò)安全防范 教學(xué)設(shè)計(jì) 2024-2025學(xué)年浙教版(2023)初中信息技術(shù)八年級(jí)上冊(cè)
- 第五單元-解決問題的策略-(單元測(cè)試)-蘇教版數(shù)學(xué)三年級(jí)上冊(cè)(含解析)
- 2023年現(xiàn)場(chǎng)總線智能儀表投資申請(qǐng)報(bào)告
- 2025年廣西演藝職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫完整版
- 2024年電工儀器儀表項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2025年黑龍江省單招職業(yè)適應(yīng)性測(cè)試題庫一套
- 2025陜西省建筑安全員-A證考試題庫附答案
- 結(jié)構(gòu)化學(xué)-第1章講義課件
- 粉塵防爆安全管理臺(tái)賬-全套
- 廣州退休申請(qǐng)表范本
- 管道完整性管理方法及應(yīng)用
- 傳媒侵權(quán)法介紹
- 麥茬花生高產(chǎn)栽培技術(shù)
- 玉米制種技術(shù)
- 中國旅游資源概述
- 高一下分科文科班第一次主題班會(huì)
- 初中數(shù)學(xué)代數(shù)式部分的文本解讀
- 高中學(xué)生的自我評(píng)價(jià)200字 高中學(xué)生的自我評(píng)價(jià)(三篇)
評(píng)論
0/150
提交評(píng)論