XSD 字符串 數(shù)據(jù)類型


字符串?dāng)?shù)據(jù)類型用于可包含字符串的值。


字符串?dāng)?shù)據(jù)類型(String Data Type)

字符串?dāng)?shù)據(jù)類型可包含字符、換行、回車以及制表符。

下面是一個關(guān)于某個 scheme 中字符串聲明的例子:

<xs:element name="customer" type="xs:string"/>

文檔中的元素看上去應(yīng)該類似這樣:

<customer>John Smith</customer>

或者類似這樣:

<customer>       John Smith     </customer>

注意:如果您使用字符串?dāng)?shù)據(jù)類型,XML 處理器就不會更改其中的值。


規(guī)格化字符串?dāng)?shù)據(jù)類型(NormalizedString Data Type)

規(guī)格化字符串?dāng)?shù)據(jù)類型源自于字符串?dāng)?shù)據(jù)類型。

規(guī)格化字符串?dāng)?shù)據(jù)類型同樣可包含字符,但是 XML 處理器會移除折行,回車以及制表符。

下面是一個關(guān)于在某個 schema 中規(guī)格化字符串?dāng)?shù)據(jù)類型的例子:

<xs:element name="customer" type="xs:normalizedString"/>

文檔中的元素看上去應(yīng)該類似這樣:

<customer>John Smith</customer>

或者類似這樣:

<customer>     John Smith     </customer>

注意:在上面的例子中,XML 處理器會使用空格替換所有的制表符。


Token 數(shù)據(jù)類型(Token Data Type)

Token 數(shù)據(jù)類型同樣源自于字符串?dāng)?shù)據(jù)類型。

Token 數(shù)據(jù)類型同樣可包含字符,但是 XML 處理器會移除換行符、回車、制表符、開頭和結(jié)尾的空格以及(連續(xù)的)空格。

下面是在 schema 中一個有關(guān) token 聲明的例子:

<xs:element name="customer" type="xs:token"/>

文檔中的元素看上去應(yīng)該類似這樣:

<customer>John Smith</customer>

或者類似這樣:

<customer>     John Smith     </customer>

注意:>在上面這個例子中,XML 解析器會移除制表符。


字符串?dāng)?shù)據(jù)類型

請注意,所有以下的數(shù)據(jù)類型均衍生于字符串?dāng)?shù)據(jù)類型(除了字符串?dāng)?shù)據(jù)類型本身)!

名稱描述
ENTITIES 
ENTITY 
ID在 XML 中提交 ID 屬性的字符串 (僅與 schema 屬性一同使用)
IDREF在 XML 中提交 IDREF 屬性的字符串(僅與 schema 屬性一同使用)
IDREFS language包含合法的語言 id 的字符串
Name包含合法 XML 名稱的字符串
NCName 
NMTOKEN在 XML 中提交 NMTOKEN 屬性的字符串 (僅與 schema 屬性一同使用)
NMTOKENS 
normalizedString不包含換行符、回車或制表符的字符串
QName 
string字符串
token不包含換行符、回車或制表符、開頭或結(jié)尾空格或者多個連續(xù)空格的字符串


對字符串?dāng)?shù)據(jù)類型的限定(Restriction)

可與字符串?dāng)?shù)據(jù)類型一同使用的限定:

  • enumeration

  • length

  • maxLength

  • minLength

  • pattern (NMTOKENS、IDREFS 以及 ENTITIES 無法使用此約束)

  • whiteSpace