国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Schema和DTD的區(qū)別,驗證XLM數(shù)據(jù)合法性...
DTD
DTD不遵守XML語法
DTD不可擴展
DTD不支持命名空間的應(yīng)用
DTD沒有提供強大的數(shù)據(jù)類型支持,只能表示很簡單的數(shù)據(jù)類型
Schema
Schema完全基于XML語法
能用處理XML文檔的工具處理
大大擴充了數(shù)據(jù)類型
支持原型,也就是元素的繼承
支持屬性組
開放性,可以多個Schema運用于一個XML文檔
1、XML的合法性驗證
應(yīng)用XML技術(shù)的一個主要目標是為了方便信息交換。很顯然,只有XML文檔的格式或是結(jié)構(gòu)得到交互各方的一致認可,這個目標才有可能實現(xiàn)。XML Schema(大綱)和DTD就是描述信息結(jié)構(gòu)的模型,可以用來對XML文檔內(nèi)容的合法性進行驗證。
Schema和DTD規(guī)定了在文檔中能夠使用的元素和屬性,以及這些對象與文本內(nèi)容的可能組合形式。作為對文檔驗證的標準,Schema和DTD不僅應(yīng)該能被人們理解,對應(yīng)用程序來說也應(yīng)當(dāng)是易于理解的。對文檔合法性的驗證包括兩個方面:一方面是語法結(jié)構(gòu)的驗證,即元素類型、元素嵌套格式、屬性類型、屬性值數(shù)據(jù)類型、屬性值是否可選等相關(guān)文檔對象單元本身及其結(jié)構(gòu)的合法性;另一方面是語義的驗證,只有真正理解了XML文檔的含義才能算是實現(xiàn)了信息交互,否則僅是結(jié)構(gòu)上正確但意義模糊的信息,對于接收方來說一樣是無用的,有時甚至?xí)a(chǎn)生誤解,起到相反的作用。
對XML文檔的驗證有如下幾個步驟:
1.定義一份XML Schema或DTD: Schema或DTD為同一類型的所有文檔定義了結(jié)構(gòu)標準,比如有關(guān)書籍信息的文檔可共享一份標準。
2.應(yīng)用Schema或DTD:一般由文檔的作者指定Schema,這樣接收方可以很快地根據(jù)說明對文檔進行驗證。但在C/S(客戶機/服務(wù)器)環(huán)境中,由于服務(wù)器無法判斷XML在客戶端是否已經(jīng)驗證過,所以為了能夠確保驗證過程,也為了避免可能的重復(fù)驗證,對文檔應(yīng)用Schema或DTD的操作由服務(wù)器完成。
3.運行解析器進行驗證:解析器在裝載文檔的同時掃描結(jié)構(gòu),遇到任何錯誤都會終止裝載過程,并做出適當(dāng)?shù)捻憫?yīng)。
2、Schema和DTD的區(qū)別
雖然,XML Schema和DTD都是用于文檔驗證,但二者還是有一定的區(qū)別,其中前者更為精確和靈活:
● XML Schema是一種內(nèi)容“開放”的模型,可擴展、功能強,而DTD是內(nèi)容“封閉”的模型,可擴展性差;
● XML Schema支持豐富的數(shù)據(jù)類型,完全能夠滿足網(wǎng)絡(luò)應(yīng)用特別是電子商務(wù)的需求,而DTD不支持元素的數(shù)據(jù)類型,對于屬性的類型定義也很有限;
● XML Schema支持名稱空間機制,DTD不支持;
● XML Schema可以針對不同情況分別對整個XML文檔或者是文檔局部進行驗證,而DTD缺乏這種靈活性;
● XML Schema的語法完全遵循XML規(guī)范,可以和DOM技術(shù)結(jié)合使用,功能強大,而DTD語法自成一體,比較難以學(xué)習(xí)。
所以,Schema很有可能取代DTD成為驗證XML文檔合法性的新標準。
 
3、Schema的基本元素
Schema共有8種元素:<Schema>、<ElementType>、<element>、<group>、<AttributeType>、<attribute>、<datatype>和<description>。這些元素對XML中允許的語法和結(jié)構(gòu)進行了定義。注意:必須在使用Schema前對這些元素進行定義。
1.<Schema>元素
Schema文件與其他的XML文檔結(jié)構(gòu)非常相似,根元素為<Schema>,表明文檔類型:
<?xml version=“1.0”?>
<Schema name=“mySchema”
xmlns=“urn:schemas-microsoft-com:xml-data”
xmlns:dt=“urn:schemas-microsoft-com:datatypes”>
</Schema>
其中屬性name指定Schema名稱,xmlns指定所屬名稱空間。第一個xmlns指定全文的缺省名稱空間,第二個定義了文檔中可使用的數(shù)據(jù)類型的名稱空間。
在XML中引用Schema的方法是在XML文檔的根元素中使用名稱空間指明Schema文件的URL地址,在URL前要加上“x-schema”前綴:
<?xml version=“1.0”?>
<myElement xmlns=“x-schema:http://mysite.com/myschema.xml”>
</myElement>
如果是在XML文檔中的某一個元素中使用xmlns引用Schema,就是對文檔進行局部合法性驗證。
2.<ElementType>元素
<ElementType>元素用來聲明XML文檔中使用的新元素:
<ElementType
name = “element tag name”
content = “empty”|“textOnly”|“eltOnly”|“mixed”
model = “open” | “closed”
order = “one” | “seq” | “many”
dt:type = “XML data type” >
</ElementType>
Content屬性規(guī)定聲明的元素是否為空,是否包含文本或子元素,還是兩者都有;order指定子元素的排列順序; model規(guī)定了元素中是否可以包含未在Schema中定義的元素或?qū)傩? dt: type則指定了元素的數(shù)據(jù)類型。
3.<element>元素
<element>元素是對<ElementType>聲明的元素的內(nèi)容進行定義,說明在指定的元素類型中允許使用哪些子元素:
<element
type = “declared element type”
minOccurs = “0” | “1”
maxOccurs = “1” | “*” />
Type屬性是必要的,同時要與〈ElementType〉中的name屬性完全一致。minOccurs和maxOccurs屬性分別指定了元素出現(xiàn)的最少和最多次數(shù),默認值都為1。minOccurs為0說明元素是可選的,maxOccurs為*說明元素出現(xiàn)的次數(shù)不受限制。
4.<group>元素
<group>元素也出現(xiàn)在<ElementType>中,表達元素成組的概念。組里的對象可以是元素也可以是另一個子組。order屬性制定組中元素的順序:
<ElementType name=“...” >
<group minOccurs = “0” | “1”
maxOccurs = “1” | “*”
order = “one” | “seq” | “many” >
<element type=“……” />
</group>
</ElementType>
5.<AttributeType>元素
<AttributeType>元素定義了Schema中使用的屬性類型。根據(jù)出現(xiàn)位置不同,其作用范圍也不一樣。如果是在<ElementType>元素中定義,那么所定義的屬性類型就只能作用在該元素類型上; 如果定義在外部,那么文檔中所有的元素類型就都可以使用該屬性。
<AttributeType
name = “attribute name”
dt:type = “XML data type”
required = “yes” | “no”
dt:values = “enumerated list of values”
default = “default value” >
</AttributeType>
Name是屬性類型名稱; dt:type同<ElementType>元素中的用法一樣 ;required指定該屬性對于引用它的元素是否是必要的;dt:values只有當(dāng)dt:type是“enumeration”時才有效,此時它列舉屬性的所有可能取值; default指定屬性類型的缺省值,并且一定是有效值,比如屬性類型是枚舉型時,default取值一定是dt:values所列舉值中的一個。
6.<attribute>元素
<attribute>元素對<AttributeType>聲明的屬性進行具體的定義:
<attribute
type = “declared attribute type”
required = “yes” | “no”
default = “default value” />
type屬性唯一指定了引用的屬性類型,取值要與<AttributeType>中的name屬性完全一致; required說明該屬性對于引用它的元素是否為必要的; default指定屬性類型的缺省值。如果對同一屬性的<AttributeType>和<attribute>中相對應(yīng)的default和required屬性都給出了定義,那么<attribute>的優(yōu)先級別更高,以它的取值為準。
其他兩個元素<datatype>和<description>分別定義了Schema元素的數(shù)據(jù)類型和為元素提供的說明資料,用法簡單,本文不再一一舉例說明。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
XML簡明教程(中國XML聯(lián)盟版)
XML認證教程,第 6 部分: XML Schema
XML的校驗方式
XML Schema 是什么
XML 文件:XML 架構(gòu)快速指南 - MSDN Magazine,2002年4月
XMLSchema 詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服