freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]第3章xml有效性與模式-資料下載頁

2025-10-10 00:19本頁面
  

【正文】 實體名為“ WHPU”,對該實體的引用只能出現(xiàn)在DTD中,接著聲明了一般實體“ COPY2021”,它的實體內(nèi)容對上面的參數(shù)實體進行了引用。一般實體的引用將在 XML文檔中出現(xiàn)。接下來定義的“ BASIC_INFO”也是參數(shù)實體,只能在 DTD中對其進行引用。 ? XML Schema ? XML Schema的提出 DTD源于 SGML規(guī)范,同時也是 ,它是描述 XML文檔結(jié)構(gòu)的正式規(guī)范。但是, DTD有著不少缺陷,歸納如下: 1) DTD是基于正則表達式的,描述能力有限; 2) DTD沒有數(shù)據(jù)類型的支持,在大多數(shù)應(yīng)用環(huán)境下能力不足; 第 52頁 19:13:14 3) DTD的約束定義能力不足,無法對 XML實例文檔做出更細致的語義限制; 4) DTD的結(jié)構(gòu)不夠結(jié)構(gòu)化,重用的代價相對較高; 5) DTD并非使用 XML作為描述手段,而 DTD的構(gòu)建和訪問并沒有標(biāo)準(zhǔn)的編程接口,無法使用標(biāo)準(zhǔn)的編程方式進行 DTD維護。 XML文檔處理的自動化要求有一種更為嚴(yán)格、更為全面的解決方案,這方面的需求包括:如何對文檔結(jié)構(gòu)、屬性、數(shù)據(jù)類型等的約束,以及如何使一個應(yīng)用程序的不同模塊之間能夠互相協(xié)調(diào)等。于是,以微軟為首的眾多公司提出了 XML Schema,在保留并擴充了 DTD原有的文檔結(jié)構(gòu)說明能力的同時,以期解決 DTD與生俱來的種種問題。 W3C的 XML Schema工作組也致力于制定定義 XML文檔的結(jié)構(gòu)、內(nèi)容和語義的方法。 事實上, XML Schema也是 XML的一種應(yīng)用,它是將 DTD重新使用 XML語言規(guī)范來定義。從某種意義上講,這充分體現(xiàn)了 XML自描述性的特點,與 DTD相比, XML Schema具有以下優(yōu)勢: ?一致性 與 DTD不同, XML Schema不使用 EBNF語法,而是直接借助 XML本身的特性,用XML語法來定義文檔的模式,使得 XML文檔及其模式定義實現(xiàn)了從內(nèi)到外的統(tǒng)一。此外, XML Schema本身是一種 XML文檔,可以被現(xiàn)有的 XML編輯制作工具所編輯、被 XML語法分析器所解析、被 XML應(yīng)用系統(tǒng)所利用,既有投資得到了最大程度的保護。 ?擴展性 盡管 DTD中定義了一些數(shù)據(jù)類型,但基本都是針對屬性類型定義的,并且類型非常有限。 XML Schema不僅支持 DTD中的所有原始數(shù)據(jù)類型(諸如標(biāo)識和標(biāo)識引用之 第 53頁 19:13:14 類的類型),還支持整數(shù)、浮點數(shù)、日期、時間、字符串、 URL 和其它對數(shù)據(jù)處理和驗證有用的數(shù)據(jù)類型。除了規(guī)范中定義的數(shù)據(jù)類型以外,還可以利用 XML Schema創(chuàng)建自己的數(shù)據(jù)類型,并且可以基于其它數(shù)據(jù)類型派生出新的數(shù)據(jù)類型。具有良好的可擴展性。 ?易用性 XML Schema優(yōu)于 DTD的另一個原因要歸結(jié)于 DOM和 SAX( DOM和 SAX將在后面章節(jié)中介紹)。作為一種 XML API, DOM和 SAX只是對 XML實例文檔有效,對于DTD則無能為力,不可能通過 DOM或 SAX來判定在 DTD中一個元素的屬性類型或者某個元素的子元素允許出現(xiàn)的次數(shù)。但是,使用 XML Schema則不存在這一問題,因為對 XML文檔結(jié)構(gòu)進行描述的 XML Schema是一種“形式良好的” XML文檔,用DOM和 SAX去訪問就和處理就非常容易了。 ?規(guī)范性 同 DTD一樣, XML Schema也提供了一套完整的機制以約束 XML文檔中元素的使用,但相比之下,后者基于 XML語法,更具規(guī)范性。 XML Schema利用元素的內(nèi)容和屬性來定義 XML文檔的整體結(jié)構(gòu),如哪些元素可以出現(xiàn)在文檔中、元素間的關(guān)系是什么、每個元素有哪些內(nèi)容和屬性、以及元素出現(xiàn)的順序和次數(shù)等等,一目了然。 ?互換性 正如每個人都可定義自己的 DTD一樣,讀者也可根據(jù)需要設(shè)計適合自己應(yīng)用的 XML Schema,并且可以同其他人交換彼此的 XML Schema。利用 XML Schema,我們能夠書寫 XML文檔,驗證文檔的合法性。另外,通過映射機制,還可以將不同的XML Schema進行轉(zhuǎn)換,以實現(xiàn)更高層次的數(shù)據(jù)交換。例如微軟的 BizTalk Server,對此就有很好的支持。 第 54頁 19:13:14 ? XML Schema的基本結(jié)構(gòu) XML Schema是擴展名為“ .xsd”的一個文本文件,使用 XML語法來編寫。基本結(jié)構(gòu)為: xsd:schema xmlns:xsd=” … ! Schema的內(nèi)容 /xsd:schema 其中: XML Schema文件的根元素必須是“ schema”, XML Schema文檔就是一種 XML文檔,不像 DTD那樣有著特殊語法;“ schema”元素有一個屬性 xmlns,它指定整個 XML Schema位于 xsd。例如,清單 315中的“ xsd: string”、“ xsd”這種形式的關(guān)聯(lián)的目的是用來標(biāo)識元素和簡單類型是屬于 XML Schema語言的詞匯表而不是模式文檔作者自己的詞匯表;省略部分是 Schema的內(nèi)容,它列出了一系列類型定義,以及至少一個元素聲明。 第 55頁 19:13:14 ? XML Schema的定義過程就是聲明 XML文檔元素的過程。 XML文檔元素可以分為兩大類:簡單元素和復(fù)雜元素。 簡單元素是指只含有文本,而不含子元素和屬性的元素。除簡單元素以外的元素都是復(fù)雜元素。聲明簡單元素需要用到 XML Schema的簡單類型。簡單類型又可以分為兩類:內(nèi)置數(shù)據(jù)類型和自定義簡單類型。自定義簡單類型都是直接或間接由內(nèi)置數(shù)據(jù)類型衍生出來的。聲明復(fù)雜元素需要用到XML Schema的復(fù)雜類型,復(fù)雜元素可以包含子元素或者屬性。下面分別對內(nèi)置數(shù)據(jù)類型、自定義簡單類型和復(fù)雜類型以及相應(yīng)的元素聲明方法進行介紹。 ? 內(nèi)置數(shù)據(jù)類型 在 W3C的 XML Schema規(guī)范中,有 44個內(nèi)置數(shù)據(jù)類型,其層次結(jié)構(gòu)如圖 32所示。 第 56頁 19:13:15 圖32 XML Schema的內(nèi)置數(shù)據(jù)類型層次圖 第 57頁 19:13:15 它們可劃分為七類,即數(shù)字類型、時間類型、 XML類型、字符串類型、布爾類型、 URI引用類型和二進制類型。表 31按照分別列舉了這七類內(nèi)置數(shù)據(jù)類型及其舉例。為了表示簡潔,我們在此僅提及數(shù)據(jù)類型的名稱,而忽略它們的前綴“ xsd:”。注意:為了在 XML Schema和 XML DTD之間保持兼容,類型 ID、 IDREF、IDREFS、 ENTITY、 ENTITIES、 NOTATION、 NMTOKEN、 NMTOKENS只能用在屬性定義中。 XML Schema中聲明內(nèi)置數(shù)據(jù)類型的元素語法為: xsd:element name=元素名 type=內(nèi)置數(shù)據(jù)類型 / 清單 315中第 7行以及 1114行就是將元素聲明為相應(yīng)的內(nèi)置數(shù)據(jù)類型。 可以使用關(guān)鍵字 default給元素指定默認(rèn)值。當(dāng)沒有指定其他值時,默認(rèn)值就會自動分配給元素。在下面的例子中,元素“ color”的缺省值是“ red”: xsd:element name=color type=xsd:string default=red/。 還可以使用 fixed關(guān)鍵字為元素指定一個固定值,固定值是指自動分配給此元素的值,并且你無法為其定義其它的值。在下面的例子中,固定值是 red: xs:element name=color type=xs:string fixed=red/ ? 自定義簡單類型 在清單 315中,我們將“電話”和“郵編”兩個元素定義為 string類型,實際上這樣定義并不完善,如果能指定“電話”元素的值是 11位的手機號碼或者是由區(qū)號加8位本地號組成的字符串,并且“郵編”元素的值只能由 6位數(shù)字字符組成的字符串,則會更加精確。 XML Schema給我們提供了自定義簡單類型來解決上述問題。自定義簡單類型總是通過對一個已有簡單類型進行約束( restriction)派生出來的。自定義一個簡單類型,并聲明元素的語法如下: 第 58頁 19:13:15 xsd:element name=元素名 type=自定義簡單類型名 xsd:simpleType name=自定義簡單類型名 xsd:restriction base=現(xiàn)有類型名 … ! 約束面 /xsd:restriction /xsd:simpleType 我們使用“ simpleType”元素來定義和命名新的簡單類型,使用“ restriction”元素對現(xiàn)有類型進行約束?!?restriction”元素采用“ base”屬性指定新類型引自的基類型名,并且包含一個或若干個子元素,用于輔助進行派生限制,標(biāo)識約束值范圍的細節(jié),我們稱這些子元素為約束面。約束面共 12個,分為 5個類別,它們對現(xiàn)有類型進行約束與限制: ?模式限制 pattern ?枚舉限制 enumeration ?范圍限制 length、 minLength、 maxLength、 maxInclusive、 maxExclusive、minInclusive和 minExclusive ?處理空白限制 whiteSpace ?十進制數(shù)字限制 totalDigits和 fractionDigits。 本節(jié)就其中最常用的幾種進行舉例說明。 第 59頁 19:13:15 我們將清單 315中的第 7行和第 14行分別用以下兩行代碼替換: xsd:element name=電話 type=電話類型 / xsd:element name=郵編 type=郵編類型 / 然后在第 21行之前插入以下代碼,以實現(xiàn)“電話類型”和“郵編類型”兩種簡單類型。 xsd:simpleType name=電話類型 xsd:restriction base=xsd:string xsd:pattern value=\d{3,4}\d{8}|\d{11}/ /xsd:restriction /xsd:simpleType xsd:simpleType name=郵編類型 xsd:restriction base=xsd:string xsd:pattern value=[0,9]{6}/ /xsd:restriction /xsd:simpleType “電話類型”和“郵編類型”是自定義的簡單類型,我們對它做如下限制: xsd:restriction base=xsd:string代表它是基于一個字符串類型,是通過約束內(nèi)置數(shù)據(jù)類型“ string”而引出的,再用“ pattern”約束面來描述該字符串的形式,其“ value”屬性的值“ \d{3,4}\d{8}|\d{11}”和“ [0,9]{6}”是兩個正則表達式。前者的語義為: 3個數(shù)字或者 4個數(shù)字后面跟著一個連字號接著是 8個數(shù)字,后者表示必須是 6個數(shù)字。有關(guān)正則表達式的語法請參閱其他書籍。 第 60頁 19:13:15 ? 復(fù)雜類型 前面介紹了使用內(nèi)置數(shù)據(jù)類型和自定義簡單類型聲明簡單元素的方法,簡單元素不能 包含子元素或?qū)傩?,因而在實際應(yīng)用中,用的較多的還是復(fù)雜元素, 復(fù)雜元素按照內(nèi)容( content)的復(fù)雜程度可以分為兩類:簡單內(nèi)容元素( simpleContent)和復(fù)雜內(nèi)容元素( pleContent)。 content是指包含在元素的開始標(biāo)簽和結(jié)束標(biāo)簽之間的內(nèi)容,不包含屬性。本節(jié)將說明復(fù)雜元素的定義規(guī)則,并具體介紹如何聲明復(fù)雜元素的屬性及其子元素。 ? 1.聲明 simpleContent元素 simpleContent元素是指元素內(nèi)容中僅包含文本,不含子元素,但包含屬性的復(fù)雜元素,可見, simpleContent類型是在簡單類型的基礎(chǔ)上通過增加屬性而派生出來的,這種類型派生方式不同于上節(jié)介紹的約束派生( restriction),我們稱其為擴展派生( extension)。 聲明 simpleContent元素的語法如下: xsd:element name=元素名 type=類型名 xsd:plexType name=類型名 xsd:simpleContent xsd:extension base=簡單類型 xsd:attribute name=屬性名 1 type=屬性類型 / xsd:attribute name=屬性名 2 type=屬性類型
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1