A scheme consists of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus (+, period (.), or hyphen (-).

Although schemes are case-insensitive, the canonical form is lowercase and documents that specify schemes must do so with lowercase letters. It is followed by a colon (:).


@:value(cast "data")@:enum@:implinlineread onlyData:Scheme = "data"

@:value(cast "file")@:enum@:implinlineread onlyFile:Scheme = "file"

@:value(cast "ftp")@:enum@:implinlineread onlyFtp:Scheme = "ftp"

@:value(cast "http")@:enum@:implinlineread onlyHttp:Scheme = "http"

@:value(cast "https")@:enum@:implinlineread onlyHttps:Scheme = "https"

@:value(cast "mailto")@:enum@:implinlineread onlyMailTo:Scheme = "mailto"