Name

xs:token — Whitespace-replaced and collapsed strings.

Derived from:

xs:normalizedString

Primary:

xs:string

Known subtypes:

xs:language, xs:NMTOKEN, xs:Name

Facets:

xs:enumeration, xs:length, xs:maxLength, xs:minLength, xs:pattern, xs:whiteSpace

<xs:simpleType name="token" id="token">
  <xs:restriction base="xs:normalizedString">
    <xs:whiteSpace value="collapse"/>
  </xs:restriction>
</xs:simpleType>

Description

The lexical and value spaces of xs:token are the sets of all the strings after whitespace replacement—i.e., after any occurrence of #x9 (tab), #xA (linefeed), and #xD (carriage return) is replaced by an occurrence of #x20 (space) and collapsing (i.e., the contiguous occurrences of spaces are replaced by a single space, and leading and trailing spaces are removed).

More simply said, xs:token is the most appropriate datatype to use for strings that do not care about whitespaces.

Restrictions

The name xs:token is misleading since whitespaces are allowed within xs:token. xs:NMTOKEN is the type corresponding to what is usually called “tokens.”

Example

The element:

<title lang="en">
  Being a Dog Is 
  a Full-Time Job
</title>

is a valid xs:token and its value is the string "Being a Dog Is a Full-Time Job", where all the whitespaces have been replaced by spaces, leading and trailing spaces have been removed and contiguous sequences of spaces have been replaced by single spaces.

Get XML Schema now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.