xml schema 學習總結
簡單型別
1、簡單元素:指只能包含文字內容,不能夠包含子元素,也沒有屬性的元素。
格式:例子:
2、屬性:所有的元素屬性均被宣告為簡單型別。只有複雜型別的元素才可以擁
有屬性。
格式:例子:
所有的屬性預設都是可選的,我們可以通過使用use 關鍵字明確的指出是可選
或是必需:
我們可以通過使用default 或fixed 為簡單型別(簡單元素、屬性)指定預設值
或固定值,
如下:
對簡單型別值的約束
約束 含義
enumeration 定義允許值的列舉
fractiondigits 指定最多允許的小數字數(必須大 於或等於零)
length 精確指定允許的最大字元長度
maxexclusive 指定允許的最大數值,必須小於該值
maxinclusive 指定允許的最大數值,必須小於或等於該值
maxlength 指定允許的最大字元長度(必須大於等於零)
minexclusive 指定允許的最小數值,必須大於該值
mininclusive 指定允許的最小數值,必須大於或
等於該值
minlength 指定允許的最小字元長度
pattern 指定允許值的模式,類似正規表示式
totaldigits 精確指定數字個數
whitespace 處理空白(保留:preserve;替換: replace;合併:collapse)
複雜型別
複雜型別指包含其他元素/屬性的元素型別。
rose
alex
hi,my girl!
在上面的例子中,元素message 就是乙個複雜型別的元素,我們在schema
中這樣描述:
注意元素to,from,body 包含在 中,表明 這些元素必須按照定義的順序出現在你的xml 檔案中。
當然,message 元素也可以包含乙個type 屬性,指向我們定義的複雜型別,
象這樣:
複雜型別和簡單型別之間最根本的區別就是:複雜型別的內容中可以包含其他元素,也可以帶有屬性(attribute ),但簡單型別既不能包含子元素,也不能帶有任何屬性。
schema 綜述
1、如何描述空元素,比如:?
因為是空元素,所以不包含子元素,同時由於包含屬性,用attribute 定義,象這樣:
也可以這樣:
2、如何描述只含有簡單內容(文字/屬性)的元素,比如:
hi,my girl! ?
由於只包含簡單內容,所以我們在元素內容定義的外面用******content 指出,當描述簡單內容的時候,我們需要在簡單內容裡使用extension 或者restriction 來描述內容的資料型別。象這樣:
其中message 的屬性date 的資料型別為日期(xs:date ).順便提一下:xml schema 中常用的資料型別有:
xs:string 、xs:decimal 、xs:integer 、xs:boolean 、xs:date 、xs:time 等。
3、如何定義混合型別,比如:
this message comes from alex
message 元素除了包含子元素from 之外,還直接包含文字「this message comes from」。對於這種情況,我們需要在complextype 中使用屬性
mixed="true"指出。以下是schema:
當然,如果包含更多的子元素,我們可以需要使用來限定那些子元素的順序。
在xml schema 中,有3 類共7 種指示器(indicator):
一、定義元素如何出現:包括all,sequence,choice 這三個。
1、all:預設值。不限制子元素的出現順序,每個子元素必須出現且只能出現一次。例如:
2、sequence:子元素在xml 檔案中按照xml schema 定義的順序出現。
3、choice:兩個或多個子元素中僅出現乙個。例如:
二、次數限定類,包括minoccurs 和maxoccurs,前者指定最少出現次數,
後者指定最多出現次數。例如:
如果元素出現的最大次數無限制,可以使用maxoccurs="unbounded"。
三、組限定:包括group 和attributegroup,用來定義一組相關的元素。比如:
補充:和,在xml schema 中使用這兩個元素可以放寬schema 對xml 檔案內容的限制。容許我們在xml 檔案中使用沒有在 schema 中定義的元素和屬性。(很少使用)
元素屬性substitutiongroup 可以讓元素b 替換元素a 在xml 檔案中出現。 比如:
這種情形類似choice:
markdown語法學習
markdown是純文字格式的語法,支援轉換為html,可以幫助整理知識 學習筆記 markdown的段落是由若干行文字組成,前後由空行隔開 普通段落不該用空格或製表符縮排 markdown支援兩種標題樣式 setext和atx setext風格的標題用符號 first level 和 second...
SQL語法學習
union 操作符用於合併兩個或多個 select 語句的結果集。請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。sql union 語法 select column name s from tabl...
Sass語法學習
1 編譯監控 自動監控把sass編譯成css檔案,命令列 sass watch sass basic.scss css basic.css 在監控的sass後面,可以為 sass 生成 css 樣式指定生成的格式,預設是nested型 style nested compact compressed ...