亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

XML學習筆記(四)Schema介紹篇

2024-09-05 20:54:45
字體:
來源:轉載
供稿:網友

一、概述

XML Schema用于描述XML文檔結構的文件。另一種用于該用途的文件(技術)是DTD。XML Schema有時又稱為XML Schema Definition,所以也會稱為XSD。因此Schema文件是以xsd為后綴的。

下面詳細的說明一下所謂的“定義XML文檔結構結構”的意義。
  • 定義可以出現在文檔中的Element。
  • 定義可以出現在文檔中的Attribute。
  • 定義哪些Element是子元素。
  • 定義Element的順序。
  • 定義子元素的數目。
  • 定義一個元素是否能為空,是否能包含文本。
  • 為每個Element和Attribute定義數據類型。
  • 為Element和Attribute定義默認值和固定值。
因為有了以上的定義,我們才能更清晰的使用XML描述我們要表達的內容。使XML的接受方能更容易明白內容的含義。

Schema和DTD的比較
可以說Schema是DTD的替代品,雖然作用一樣,但Schema是比DTD更新,更好的一種技術,因為:

  • Schema是可擴展的,可以隨著將來的需要進行擴展。 (可以在其他的Schema中重用現有的Schema;從標準類型中派生創建你自己的數據類型;在同一文檔中引用多個Schema。)
  • Schema是用XML編寫的。 (因此你無需重新學習一種語言;你可以使用XML的編輯器對Schema進行編輯;可以使用XML Parser去分析Schema;可以使用XML DOM去操作Schema;可以使用XSLT對Schema進行轉換。)
  • Schema支持數據類型。 (從而能更好的描述文檔支持的內容;更好的驗證文檔的有效性;更好的與數據庫進行數據交互;更好的定義數據約束;更好的定義數據格式;更好的支持各類型數據間的轉換。)
  • Schema支持命名空間。
更重要的是Schema是W3C推薦的標準。

二、在XML文檔中引用Schema

<?xml version="1.0"?>
<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

以上的XML文件引用了note.xsd的Schema文件進行結構定義,這樣Parser會根據該Schema文件對XML進行有效性檢驗。顯然關鍵的地方是文檔根元素“note”中屬性的定義。下面解析相關屬性的意義。

xmlns="http://www.w3schools.com"
說明文檔的默認命名空間是“http://www.w3schools.com”。關于命名空間的作用,在XML學習筆記(三)中有介紹。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
這里定義一個Schema的實例命名空間。只有作了這個定義才能使用schemaLocation屬性。xsi是XML Schema Instance的意思。

xsi:schemaLocation="http://www.w3schools.com note.xsd"
如上所述,因為我們已經定義了xsi命名空間所以可以使用schemaLocation屬性了。schemaLocation屬性由成對的值組成可以有多對。(因為一個XML文檔可以有多個命名空間,所以schemaLocation值可以有多對)第一個值“http://www.w3schools.com”是要使用schema進行有效驗證的命名空間的元素。第二個值“note.xsd”是要使用的schema文檔的路徑。

以下是中國XML論壇的兩篇貼子可以作為參考和補充:
http://bbs.xml.org.cn/dispbbs.asp?boardID=23&ID=37706
http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=9270

三、Schema文檔的基本結構

首先給出一個完整的Schema文檔
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

首先必須強調的是<schema>元素是Schema文檔的根元素。注意大小寫,Schema也是XML,XML是大小寫敏感的。<schema>Element的所有子元素都是用于定義XML文檔結構的。具體的語法在下篇介紹。在這里我們集中關注<schema>的屬性。

xmlns:xs="http://www.w3.org/2001/XMLSchema"
這里指明了一個命名空間“http://www.w3.org/2001/XMLSchema”。同時定義了一個前綴“xs”。<schema>自己和所有子元素都使用“xs”前綴,說明屬于該命名空間。

targetNamespace="http://www.w3schools.com"
targetNamespace是目標命名空間。這語句說明,這個Schema定義的元素(note, to, from, heading, body)是來自“http://www.w3schools.com”這個命名空間的。從另一個角度可以理解為,引用這個Schema進行有效性驗證的XML的元素應該是使用該命名空間的。

xmlns="http://www.w3schools.com"
因為Schema也是XML。這語句說明這個XML的默認命名空間是“http://www.w3schools.com”。

elementFormDefault="qualified"
這句表示在本Schema中定義的Element,如果在XML實例文檔出現的話,都要進行命名空間匹配。

同樣給出一篇中國XML論壇的帖子作為參考和補充:
http://bbs.xml.org.cn/dispbbs.asp?boardID=23&ID=35354
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人aaa| 亚洲成色www8888| 91在线观看免费高清完整版在线观看| 久久精品视频99| 欧美富婆性猛交| 在线观看国产精品日韩av| 亚洲一区二区少妇| 日韩在线免费视频| 成人春色激情网| 日韩在线中文字| 日本a级片电影一区二区| 欧美丝袜一区二区三区| 精品亚洲一区二区三区四区五区| 国产亚洲欧美一区| 国产精品偷伦免费视频观看的| 久久久精品欧美| 亚洲国产美女久久久久| 久久6免费高清热精品| 欧洲成人性视频| 亚洲国产精品大全| 国语自产精品视频在免费| 久久久精品国产| 另类天堂视频在线观看| 亚洲丝袜av一区| 亚洲精品一区av在线播放| 韩剧1988免费观看全集| 久久伊人精品视频| 欧美高跟鞋交xxxxhd| 高清亚洲成在人网站天堂| 日韩在线播放视频| 色悠悠久久久久| 国产亚洲精品久久久| 精品调教chinesegay| 日韩在线视频免费观看高清中文| 久久久欧美精品| 精品一区二区电影| 国产精品视频一| 亚洲国产另类久久精品| 操人视频在线观看欧美| 川上优av一区二区线观看| 亚洲欧美日韩国产成人| 韩国19禁主播vip福利视频| 日韩视频免费在线观看| 欧美激情乱人伦一区| 热re99久久精品国产66热| 国产日韩欧美自拍| 亚洲欧美色婷婷| 亚洲国产精品久久久久秋霞蜜臀| 欧美日韩在线看| 97视频在线观看亚洲| 91精品在线观看视频| 国产精品福利观看| 中文字幕自拍vr一区二区三区| 欧美亚洲成人网| 国产成人综合亚洲| 精品美女国产在线| 亚洲精品一区中文| 亚洲欧美制服中文字幕| 色哟哟网站入口亚洲精品| 亚洲老板91色精品久久| 亚洲欧美制服中文字幕| 国产91在线高潮白浆在线观看| 午夜精品久久久99热福利| 亚洲第一福利在线观看| 国产日韩精品综合网站| 中文字幕日韩综合av| 欧美第一页在线| 欧美视频一二三| 欧美日韩激情小视频| 久久青草精品视频免费观看| 久久精品久久精品亚洲人| 亚洲第一页中文字幕| 亚洲欧洲xxxx| 国产成人久久久精品一区| 欧美极品欧美精品欧美视频| 97精品国产97久久久久久| 最新国产精品亚洲| 日本道色综合久久影院| 91国产精品视频在线| 欧美午夜xxx| 国产成人久久久| 精品综合久久久久久97| 日韩欧美一区二区三区| 亚洲人成电影网站| 欧美又大粗又爽又黄大片视频| 亚洲wwwav| 国产色视频一区| 欧美一区二区三区……| 人体精品一二三区| 九九九久久久久久| 亚洲国产中文字幕在线观看| 久久人人爽国产| 欧美性极品xxxx娇小| 国产精品女主播| 国产精品成人v| 久久久精品国产一区二区| 欧美性猛xxx| 亚洲国产精品久久久久秋霞不卡| 亚洲欧美日韩精品久久奇米色影视| 日本人成精品视频在线| 久久理论片午夜琪琪电影网| 懂色av一区二区三区| 欧美大尺度电影在线观看| 国产精品极品尤物在线观看| 久久夜精品香蕉| 日韩av在线免费| 青青久久av北条麻妃黑人| 成人黄色生活片| 国产精品欧美一区二区| 国产精品自产拍在线观看中文| 国产精品女主播| 一区二区三区国产视频| 国产精品影片在线观看| 久久视频国产精品免费视频在线| www国产精品视频| 国产精品一二区| 国内精品伊人久久| 久久久伊人欧美| 91亚洲精华国产精华| 国产精品18久久久久久麻辣| 日产精品久久久一区二区福利| 日韩在线视频国产| 最近2019年日本中文免费字幕| xxxxxxxxx欧美| 91网站免费看| 另类专区欧美制服同性| 精品国产区一区二区三区在线观看| 欧美猛少妇色xxxxx| 亚洲一区二区三区乱码aⅴ| 国产精品视频精品视频| www.亚洲一二| 精品亚洲一区二区三区在线播放| 久久久免费电影| 精品久久中文字幕| 日韩免费视频在线观看| xxxxx成人.com| 热久久美女精品天天吊色| 久久久久久久久久久免费精品| 日韩亚洲一区二区| 亚洲乱码国产乱码精品精天堂| 国产精品麻豆va在线播放| 81精品国产乱码久久久久久| 久久国产一区二区三区| 日韩成人网免费视频| 欧美一区第一页| 日韩在线视频观看| 亚洲黄在线观看| 2019中文字幕全在线观看| 欧美日韩亚洲一区二| 97国产成人精品视频| 亚洲人成毛片在线播放| 国产欧美欧洲在线观看| 日韩电影网在线| 性欧美在线看片a免费观看| 国产精品久久久久久久久久东京| 国产伦精品一区二区三区精品视频| 日日狠狠久久偷偷四色综合免费| 亚洲欧美国内爽妇网| 国产精品手机播放| 国产精品jizz在线观看麻豆| 九九热视频这里只有精品| 欧美在线视频网站| 国产精品欧美激情| 日韩a**中文字幕|