一、什麼是schema。
1.xml schema是以xml語言為基礎的,它用於可替代dtd。
2.乙份xml schema檔案描述了xml文件的結構。
2.1 定義了可以出現在文件裡的元素 。
2.2 定義了可以出現在文件裡的屬性。
2.3 定義了哪些元素是子元素 。
2.4 定義了子元素的順序。
2.5 定義了子元素的數量。
2.6 定義了乙個元素應是否能包含文字,或應該是空的。
2.7 定義了元素和屬性的資料型別。
2.8 定義了元素和屬性的預設值和固定值。
3.xml schema語言也被稱為xml schema definition (xsd) (schema定義)。
二、如何使用xml schema。
1.xml schema的最好用的地方之一就是它支援資料型別
支援資料型別所帶來的好處:
1.1 更易於描述被允許的文件內容。
1.2 更易於檢驗資料的正確性。
1.3 更易於與資料庫中的資料一起協同工作。
1.4 更易於定義資料的使用面(關於資料的限制)。
1.5 更易於定義資料樣式(資料格式)。
1.6 更易於把資料轉換成不同的資料型別。
2. xml schema另乙個好處就是他們是用xml編寫成的。
用xml編寫的好處是:
2.1 可以不需要在學一種新語言。
2.2 可以用xml編輯器來編輯schema檔案。
2.3 可以用xml解析器解析schema檔案。
2.4 可以用xml dom處理schema。
2.5 可以用xst轉換schema。
3.xml schema是檔案時由xml編寫的,所以他們是可擴充套件的。
schema可擴充套件意味著你可以:
3.1 在別的schema檔案裡再次用到你的schema。
3.2 從標準的資料型別中派生出你自己的資料型別。
3.3 在相同的文件中參考多種schema。
4.規範的xml文件是符合xml語法規則的文件。
4.1 開頭必須有xml宣告。
4.2 必須有乙個獨特的根目錄元素。
4.3 開始標籤(start-tag)必須和結束標籤(end-tag)匹配。
4.4 元素是有大小寫區分的。
4.5 元素必須有結束。
4.6 所有的元素必須被合理巢狀。
4.7 所有屬性值必須在引號裡面。
4.8 用特殊字元時必須用到實體。
三、如何制定 xsd。
列如: <?xml version="1.0"?>
"targetnamespace=""
xmlns=""
elementformdefault="qualified">
<?xml version="1.0"?>
tove
jani
reminder
don't forget me this weekend!
四、什麼是簡單元素?
4.1 簡單元素是只含有文字的xml元素,它不可以含有其他元件或屬性
但是,「只含文字」 這個限定條件是非常容易引起誤解的,文字
可以有很多的不同型別,它可以是xml schema定義裡的文字型別之一
(邏輯值,字串,日期,等等),也可以是自定義文字型別。
4.2 乙個簡單的簡明元素定義。
例如:
name 是指元素名稱, type 是指元素的資料型別。
常見的資料型別:xs:string,xs:decimal,xs:integer,xs:boolean,xs:date,xs:time
例如1: xml元素
refsnes
361970-03-27
下面是相應的簡單元素定義
4.3簡單元素的預設值和固定值。
預設值:值沒有被指定時,屬性自動會設定成預設值. default="***";
固定值:是自動分派給屬性的. fixed="yyy"
4.4首先在我們要約束的元素中新增乙個******type的標籤
4.5然後在******type中新增乙個restricetion標籤,這個標籤中有乙個重要的屬性:base,需要填入我們這個資訊型別是基於哪一種型別的。
4.6在restricetion標籤中,我們就可以加入我們對資訊內容的乙個具體的約束了:
4.6.1列舉約束 enumeration
4.6.2對大小值的限定 mininclusive 設定最小值,這種包含最小值的
minenclusive 設定最小值,但是不包含最小值
maxinclusive 設定最大值,包含最大值
maxenclusive 設定最大值,但是不包含最大值
4.6.3樣式約束
[a-za-z]這一位字元,在a-z的大小寫中任選乙個填入
male|female這裡需要多選一來填入資訊內容
([a-z][0-9])+ 這裡小寫字母+一位數字的格式重複(可以1次可以多次)
五、什麼是復合元素?
復合元素(complex elements)是含有其他元素和/或屬性的xml元素。
有四種復合元素:
1. 空元素
2. 只含有其他元素的元素
3. 只含有文字的元素
4. 含有文字的其他元素的元素
5.1復合元素的約束:
5.1.1 首先我們在要約束的元素中新增乙個complextype的標籤。
5.1.2 然後我們要填入指示器(eq:sequence)。
5.1.3 新增子元素,子元素可以使復合元素也可以使簡單元素。
5.2 屬性定義
5.2.1 定義的格式:
5.2.2 屬性定義可以定義在complextype中
5.2.3 屬性定義中use表示這個屬性是否需要出現在元素中
optional:可出現可不出現
prohibited:不能出現
required:必須出現
5.2.4 如果要在簡單元素中新增屬性,還是需要complextype,只是我們需要在這個標籤中使用******content標籤,其中使用extension標籤,用來擴充套件我們的簡單元素,新增屬性。
5.3順序指示器
5.3.1 1sequence:指定了子元素必須出現並且要按照定義的順序依次出現。
5.3.2 all:指定了子元素可以以任意順序出現,只出現一次。
5.3.3 choice:指定子元素中,僅可以出現乙個(可以使用maxoccurs修改)。
5.4數量指示器
這種指示器不是以元素(標籤)的形式出現,而是以子元素的屬性的方式出現。 minoccurs 設定出現的最少次數;maxoccurs設定出現的最多次數
日常小結 Schema簡介
xml schema用於定義和描述xml文件結構和內容的模式語言,出現也是為了克服dtd的侷限性 拓展名為.xsd 通常被稱為模式文件 約束文件 遵循這個文件書寫的xml檔案稱之為例項文件 xml schema必須有乙個根節點,名為schema 編寫xml schema約束 文件後,需要把檔案中宣告...
Schema和DTD的區別
schema是對xml文件結構的定義和描述,其主要的作用是用來約束xml檔案,並驗證xml檔案有效性。dtd的作用是定義xml的合法構建模組,它使用一系列的合法元素來定義文件結構。它們之間的區別有下面幾點 1 schema本身也是xml文件,dtd定義跟xml沒有什麼關係,schema在理解和實際應...
Schema和DTD的區別
schema是對xml文件結構的定義和描述,其主要的作用是用來約束xml檔案,並驗證xml檔案有效性。dtd的作用是定義xml的合法構建模組,它使用一系列的合法元素來定義文件結構。它們之間的區別有下面幾點 1 schema本身也是xml文件,dtd定義跟xml沒有什麼關係,schema在理解和實際應...