字串資料型別用於包含字元字串的值。字串資料型別可以包含字元、換行符、回車符和製表符。
以下是模式中字串宣告的示例:
<xs:element name="customer" type="xs:string"/>
您文件中的一個元素可能如下所示:
<customer>John Smith</customer>
或者可能是這樣的:
<customer> John Smith </customer>
注意:如果使用字串資料型別,XML 處理器將不會修改值。
NormalizedString 資料型別
normalizedString
資料型別派生自 String
資料型別。
normalizedString
資料型別也包含字元,但 XML 處理器將刪除換行符、回車符和製表符。
以下是模式中 normalizedString
宣告的示例:
<xs:element name="customer" type="xs:normalizedString"/>
您文件中的一個元素可能如下所示:
<customer>John Smith</customer>
或者可能是這樣的:
<customer> John Smith </customer>
注意:在上面的示例中,XML 處理器將用空格替換製表符。
Token 資料型別
token
資料型別也派生自 String
資料型別。
token
資料型別也包含字元,但 XML 處理器將刪除換行符、回車符、製表符、前導和尾隨空格,以及多個空格。
以下是模式中 token
宣告的示例:
<xs:element name="customer" type="xs:token"/>
您文件中的一個元素可能如下所示:
<customer>John Smith</customer>
或者可能是這樣的:
<customer> John Smith </customer>
注意:在上面的示例中,XML 處理器將刪除製表符。
資料型別
請注意,以下所有資料型別均源自字串資料型別(除了字串本身)!
名稱 | 描述 |
---|---|
ENTITIES |
|
ENTITY |
|
ID |
表示 XML 中的 ID 屬性的字串(僅與模式屬性一起使用) |
IDREF |
表示 XML 中的 IDREF 屬性的字串(僅與模式屬性一起使用) |
IDREFS |
|
language |
包含有效語言標識的字串 |
Name |
包含有效 XML 名稱的字串 |
NCName |
|
NMTOKEN |
表示 XML 中的 NMTOKEN 屬性的字串(僅與模式屬性一起使用) |
NMTOKENS |
|
normalizedString |
不包含換行符、回車或製表符的字串 |
QName |
|
string |
字串 |
token |
不包含換行符、回車、製表符、前導或尾隨空格或多個空格的字串 |
字串資料型別的限制
可以與字串資料型別一起使用的限制:
- 列舉
- 長度
- 最大長度
- 最小長度
- 模式(NMTOKENS、IDREFS 和 ENTITIES 不能使用此約束)
- 空白
XSD 日期和時間資料型別
日期和時間資料型別用於包含日期和時間值。
日期資料型別
日期資料型別用於指定日期。
日期以以下形式指定:“YYYY-MM-DD”,其中:
YYYY
表示年份MM
表示月份DD
表示日期
注意:所有元件都是必需的!
以下是模式中日期宣告的示例:
<xs:element name="start" type="xs:date"/>
您文件中的元素可能如下所示:
<start>2002-09-24</start>
時區
要指定時區,您可以透過在時間後面新增“Z”來輸入 UTC 時間的時間,如下所示:
<start>09:30:10Z</start>
或者您可以透過在時間後面新增正數或負數時間來指定 UTC 時間的偏移量,如下所示:
<start>09:30:10-06:00</start>
或
<start>09:30:10+06:00</start>
日期時間資料型別
日期時間資料型別用於指定日期和時間。
日期時間以以下形式指定:“YYYY-MM-DDThh:mm:ss”,其中:
YYYY
表示年份MM
表示月份DD
表示日期T
表示所需時間部分的開始hh
表示小時mm
表示分鐘ss
表示秒
注意:所有元件都是必需的!
以下是模式中日期時間宣告的示例:
<xs:element name="startdate" type="xs:dateTime"/>
您文件中的元素可能如下所示:
<startdate>2002-05-30T09:00:00</startdate>
或者可能如下所示:
<startdate>2002-05-30T09:30:10.5</startdate>
時區
要指定時區,您可以透過在時間後面新增“Z”來輸入 UTC 時間的日期時間,如下所示:
<startdate>2002-05-30T09:30:10Z</startdate>
或者您可以透過在時間後面新增正數或負數時間來指定 UTC 時間的偏移量,如下所示:
<startdate>2002-05-30T09:30:10-06:00</startdate>
或
<startdate>2002-05-30T09:30:10+06:00</startdate>
持續時間資料型別
持續時間資料型別用於指定時間間隔。
時間間隔以以下形式指定:“PnYnMnDTnHnMnS”,其中:
P
表示週期(必需)nY
表示年數nM
表示月數nD
表示天數T
表示時間部分的開始(如果您要指定小時、分鐘或秒,則必需)nH
表示小時數nM
表示分鐘數nS
表示秒數
以下是模式中持續時間宣告的示例:
<xs:element name="period" type="xs:duration"/>
您文件中的元素可能如下所示:
<period>P5Y</period>
上面的示例表示五年的週期。
或者可能如下所示:
<period>P5Y2M10D</period>
上面的示例表示五年、兩個月和 10 天的週期。
或者可能如下所示:
<period>P5Y2M10DT15H</period>
上面的示例表示五年、兩個月、10 天和 15 小時的週期。
或者可能如下所示:
<period>PT15H</period>
上面的示例表示 15 小時的週期。
負持續時間
要指定負持續時間,請在 P 之前輸入減號:
<period>-P10D</period>
上面的示例表示負 10 天的週期。
日期和時間資料型別
名稱 | 描述 |
---|---|
date |
定義日期值 |
dateTime |
定義日期和時間值 |
duration |
定義時間間隔 |
gDay |
定義日期的一部分 - 日(DD) |
gMonth |
定義日期的一部分 - 月(MM) |
gMonthDay |
定義日期的一部分 - 月和日(MM-DD) |
gYear |
定義日期的一部分 - 年(YYYY) |
gYearMonth |
定義日期的一部分 - 年和月(YYYY-MM) |
time |
定義時間值 |
日期資料型別的限制
可以與日期資料型別一起使用的限制:
- 列舉
- 最大獨佔
- 最大包容
- 最小獨佔
- 最小包容
- 模式
- 空白
XSD 數值資料型別
十進位制資料型別用於表示數值。
十進位制資料型別
十進位制資料型別用於指定數值。
以下是模式中十進位制宣告的示例:
<xs:element name="price" type="xs:decimal"/>
您文件中的元素可能如下所示:
<price>999.50</price>
或者可能如下所示:
<price>+999.5450</price>
或者可能如下所示:
<price>-999.5230</price>
或者可能如下所示:
<price>0</price>
或者可能如下所示:
<price>14</price>
整數資料型別
整數資料型別用於指定沒有小數部分的數值。
以下是模式中整數宣告的示例:
<xs:element name="price" type="xs:integer"/>
您文件中的元素可能如下所示:
<price>999</price>
或者可能如下所示:
<price>+999</price>
或者可能如下所示:
<price>-999</price>
或者可能如下所示:
<price>0</price>
數值資料型別
請注意,以下所有資料型別均源自十進位制資料型別(除了十進位制本身)!
名稱 | 描述 |
---|---|
byte |
一個帶符號的 8 位整數 |
decimal |
一個十進位制值 |
int |
一個帶符號的 32 位整數 |
integer |
一個整數值 |
long |
一個帶符號的 64 位整數 |
negativeInteger |
只包含負值(..,-2,-1)的整數 |
nonNegativeInteger |
只包含非負值(0,1,2,..)的整數 |
nonPositiveInteger |
只包含非正值(..,-2,-1,0)的整數 |
positiveInteger |
只包含正值(1,2,..)的整數 |
short |
一個帶符號的 16 位整數 |
unsignedLong |
一個無符號的 64 位整數 |
unsignedInt |
一個無符號的 32 位整數 |
unsignedShort |
一個無符號的 16 位整數 |
unsignedByte |
一個無符號的 8 位整數 |
數值資料型別的限制
可以與數值資料型別一起使用的限制:
- 列舉
- 小數位數
- 最大獨佔
- 最大包容
- 最小獨佔
- 最小包容
- 模式
- 總位數
- 空白
XSD 雜項資料型別
其他雜項資料型別包括布林型、base64Binary、hexBinary、float、double、anyURI、QName 和 NOTATION。
布林型資料型別
布林型資料型別用於指定真值或假值。
以下是模式中布林型宣告的示例:
<xs:attribute name="disabled" type="xs:boolean"/>
您文件中的元素可能如下所示:
<price disabled="true">999</price>
注意:布林型的合法值為 true、false、1(表示 true)和 0(表示 false)。
二進位制資料型別
二進位制資料型別用於表示二進位制格式的資料。
我們有兩種二進位制資料型別:
base64Binary
(Base64 編碼的二進位制資料)hexBinary
(十六進位制編碼的二進位制資料)
以下是模式中十六進位制二進位制宣告的示例:
<xs:element name="blobsrc" type="xs:hexBinary"/>
任意 URI 資料型別
任意 URI 資料型別用於指定 URI。
以下是模式中任意 URI 宣告的示例:
<xs:attribute name="src" type="xs:anyURI"/>
注意:如果 URI 包含空格,請用 %20 替換。
雜項資料型別
名稱 | 描述 |
---|---|
anyURI |
|
base64Binary |
|
boolean |
|
double |
|
float |
|
hexBinary |
|
NOTATION |
|
QName |
雜項資料型別的限制
可以與其他資料型別一起使用的限制:
- 列舉(布林型資料型別不能使用此約束)
- 長度(布林型資料型別不能使用此約束)
- 最大長度(布林型資料型別不能使用此約束)
- 最小長度(布林型資料型別不能使用此約束)
- 模式
- 空白
XSD 元素
元素 | 說明 |
---|---|
all |
指定子元素可以以任何順序出現。每個子元素可以出現 0 次或 1 次 |
annotation |
指定用於模式註釋的頂級元素 |
any |
允許作者使用模式未指定的元素擴充套件 XML 文件 |
anyAttribute |
允許作者使用模式未指定的屬性擴充套件 XML 文件 |
appinfo |
指定應用程式使用的資訊(必須位於註釋內部) |
attribute |
定義屬性 |
attributeGroup |
定義用於複雜型別定義中的屬性組 |
choice |
允許 |
complexContent |
定義包含混合內容或僅包含元素的複雜型別上的擴充套件或限制 |
complexType |
定義複雜型別元素 |
documentation |
在模式中定義文字註釋(必須位於註釋內部) |
element |
定義元素 |
extension |
擴充套件現有的 simpleType 或 complexType 元素 |
field |
指定用於定義標識約束中使用的值的 XPath 表示式 |
group |
定義用於複雜型別定義中的元素組 |
import |
將具有不同目標名稱空間的多個模式新增到文件中 |
include |
將具有相同目標名稱空間的多個模式新增到文件中 |
key |
指定作為鍵的屬性或元素值(在例項文件中作為唯一、非空且始終存在的) |
keyref |
指定屬性或元素值與指定鍵或唯一元素的值相對應 |
list |
將簡單型別元素定義為值列表 |
notation |
描述 XML 文件中非 XML 資料的格式 |
redefine |
從外部模式中重新定義簡單和複雜型別、組和屬性組 |
restriction |
在 simpleType、simpleContent 或 complexContent 上定義限制 |
schema |
定義模式的根元素 |
selector |
指定選擇一組元素以進行標識約束的 XPath 表示式 |
sequence |
指定子元素必須按順序出現。每個子元素可以出現 0 次到任意次數 |
simpleContent |
包含僅擴充套件或限制文字型別複雜型別或簡單型別的內容,並且不包含元素 |
simpleType |
定義簡單型別並指定有關屬性或僅文字元素的值的約束和資訊 |
union |
將簡單型別定義為指定簡單資料型別的值集合(聯合) |
unique |
定義元素或屬性值必須在範圍內是唯一的 |
XSD 資料型別的限制/特徵
約束 | 描述 |
---|---|
enumeration |
定義可接受值的列表 |
fractionDigits |
指定允許的最大小數位數。必須等於或大於零 |
length |
指定允許的精確字元或列表項數目。必須等於或大於零 |
maxExclusive |
指定數值的上限(該值必須小於此值) |
maxInclusive |
指定數值的上限(該值必須小於或等於此值) |
maxLength |
指定允許的最大字元或列表項數目。必須等於或大於零 |
minExclusive |
指定數值的下限(該值必須大於此值) |
minInclusive |
指定數值的下限(該值必須大於或等於此值) |
minLength |
指定允許的最小字元或列表項數目。必須等於或大於零 |
pattern |
定義可接受的確切字元序列 |
totalDigits |
指定允許的最大數字位數。必須大於零 |
whiteSpace |
指定如何處理空格(換行符、製表符、空格和回車符) |
最後
為了方便其他裝置和平臺的小夥伴觀看往期文章:
微信公眾號搜尋:Let us Coding
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關注