Schema的簡介和用法

2021-06-26 23:43:43 字數 3351 閱讀 7579

一、什麼是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在理解和實際應...