簡單說:xml schema就是xml的乙個class,也相當於關係表的表結構模式。目前大都可以由程式根據已有的xml自動生成它的xsd,或者根據關係表生成它相應的xsd(實際就是將關係資料轉換成xml資料,vs2005中的型別化的dataset就是這樣實現的)。
對xml schema做一些簡單了解還是很有益處的。
xml schema用於描述xml文件結構的檔案。xml schema有時又稱為xml schema definition,所以也會稱為xsd。因此schema檔案是以xsd為字尾的。
定義xml文件結構結構指:
定義可以出現在文件中的element。 定義可以出現在文件中的attribute。 定義哪些element是子元素。 定義element的順序。 定義子元素的數目。 定義乙個元素是否能為空,是否能包含文字。 為每個element和attribute定義資料型別。 為element和attribute定義預設值和固定值。 因為有了以上的定義,我們才能更清晰的使用xml描述我們要表達的內容。使xml的接受方能更容易明白內容的含義。
對xml文件的驗證有如下幾個步驟:
1.定義乙份xml schema或dtd: schema或dtd為同一型別的所有文件定義了結構標準,比如有關書籍資訊的文件可共享乙份標準。
2.應用schema或dtd:一般由文件的作者指定schema,這樣接收方可以很快地根據說明對文件進行驗證。但在c/s(客戶機/伺服器)環境中,由於伺服器無法判斷xml在客戶端是否已經驗證過,所以為了能夠確保驗證過程,也為了避免可能的重複驗證,對文件應用schema或dtd的操作由伺服器完成。
3.執行解析器進行驗證:解析器在裝載文件的同時掃瞄結構,遇到任何錯誤都會終止裝載過程,
並做出適當的響應。
以下是乙個xml與它相應的xml schema的例項。
給定xml(project_4.xml)檔案如下:
economics對該xml大致分析,基本確定它的模式資訊,開始編寫xsd檔案:social science centre, uwo, london, ontario, canada , n6a 5c2
ssc 4071
519 661-3500 x83500
519 661-3666 x83666
political_science
social science centre, uwo, london, ontario, canada , n6a 5c2
ssc 4154
519 661-3266 x83266
519 661-3904 x83904
local_government_program
519 661-2111 x80501
ssc 4148
politics_020e_course_coordinator
519 661-2111 x85108
ssc 4149
project.xsd
<?xml version="1.0"?>如果使用該xsd驗證以上xml檔案,並且這兩個檔案在同一目錄下,則只要如下修改xml檔案:
project.xsd" xmlns="">
以上大號字型則是驗證模式檔案的路徑。
參考:
如何編寫乙個 XML Schema
看看這個名為 shiporder.xml 的 xml 文件 george bush john adams oxford street london uk empire burlesque special edition 110.90 hide your heart 19.90 說明 上面的xml文件...
手工編寫第乙個windows程式
本來還想動動筆寫寫的 不過這實在是太多人寫過了 直接帖了帖 對於狠多程式還是非常有實際意義的 就算邇不想寫win32的應用程式 邇寫sdl或者寫opengl也總算是個win32框架的程式吧 有了這個 就可以不管剩下的細節了 盡情的在sdl等等中揮舞吧 注意一點就是一定要包含windows.h這個標頭...
手工編寫第乙個windows程式
本來還想動動筆寫寫的 不過這實在是太多人寫過了 直接帖了帖 對於狠多程式還是非常有實際意義的 就算邇不想寫win32的應用程式 邇寫sdl或者寫opengl也總算是個win32框架的程式吧 有了這個 就可以不管剩下的細節了 盡情的在sdl等等中揮舞吧 注意一點就是一定要包含windows.h這個標頭...