一直以來專案中對xml格式的判斷使用的都是dtd格式,直到最近才發現,不知何時都已經轉為xsd來進行判斷和校驗,於是今天專門找資料看下,不得不說,對於這類資料的入門,w3cschool真是個不錯的資料庫,許多東西在上邊直接可以找到資料。
xsd作為dtd的替代者,主要是因為如下原因:
不得不說,在這裡的概念在我們了解具體情況之前都是沒作用的,只能隨著之後的進一步了解來進行體驗。
xml version="1.0"以上為最簡單的xsd格式,主要用於定義主節點和節點內的子節點,對應的xml檔案為:?>
<
xs:schema
xmlns:xs
=""
targetnamespace
=""
xmlns
=""
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
>
xml version="1.0"view code?>
<
note
xmlns
=""xmlns:xsi
="-instance"
xsi:schemalocation
=" note.xsd"
>
<
to>george
to>
<
from
>john
from
>
<
heading
>reminder
heading
>
<
body
>don't forget the meeting!
body
>
note
>
而對應的此xml檔案的dtd校驗檔案格式為:
element note (to, from, heading, body)從以上檔案看出,xsd格式書寫更為複雜,層次更多,但是支援更多的資料型別,可以直接指定為字串。>
element to (#pcdata)
>
element from (#pcdata)
>
element heading (#pcdata)
>
element body (#pcdata)
>
如何使用XSD
xml 文件可對 dtd 或 xml schema 進行引用。請看這個名為 note.xml 的 xml 文件 george john reminder don t forget the meeting 下面這個例子是名為 note.dtd 的 dtd 檔案,它對上面那個 xml 文件的元素進行了定...
XSD 復合元素
什麼是復合元素 包含其他元素的元素 僅包含文字的元素 包含元素和文字的元素 定義復合元素 直接在元素中復合元素 使用type屬性,引用要使用型別的名稱 空元素在上面的例子中,我們定義了乙個帶有復合內容的復合型別。complexcontent 元素給出的訊號是,我們打算限定或者拓展某個復合型別的內容模...
xsd檔案合併
在用sdo的 helpercontext載入xsd時,發現同樣的namespace,它只載入一次 應該算bug吧?也就是說如果有相同的namespace的話,第二次載入的xsd裡的型別將找不到,現在解決的方式是合併所有的namespace相同的xsd,成為乙個新的xsd,然後讓helperconte...