字符串數據類型用于包含字符字符串的值。字符串數據類型可以包含字符、換行符、回車符和制表符。
以下是模式中字符串聲明的示例:
<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
,關注后即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關注