This is a set of XML Schema simple types corresponding to
various useful parts of URIs, so that their syntax can be
accurately described.
Note that xs:pattern only allows "simple" regex, so it's not
possible to accurately constrain percent-escaped characters.
They are, however, allowed by these types.
All rules were derived from RFC 3986's ABNF.
A URI path segment; corresponds to the RFC3986 "segment" rule.
E.g., "http://example.com/{path-segment}/".
Note that an empty segment is acceptable.
A matrix URI argument name.
E.g., "http://example.com/people;{matrix-name}=bob".
A matrix URI argument value.
E.g., "http://example.com/people;name={matrix-value}".
Note that an empty value is acceptable.
A URI Query string; corresponds to the RFC3986 "query" rule.
E.g., "http://example.com/where?{query-string}".
Note that an empty query is acceptable.
A control name to be encoded, as specified in HTML 4.01.
E.g., "http://example.com/where?{query-name}=there".
A control value to be encoded, as specified in HTML 4.01.
E.g., "http://example.com/where?here={query-arg}".
Note that an empty value is acceptable.