xs:anyURI
The primitive type xs:anyURI
represents a Uniform Resource Identifier (URI) reference. The value has to be a lexically valid URI reference. Since the bare minimum rules for valid URI references are fairly generic, most implementations accept most character strings, including a zero-length string. The only values that are not accepted are those that make inappropriate use of reserved characters, such as those that contain multiple #
characters or have %
characters that are not followed by two hexadecimal digits.
Some URI processors require that certain non-ASCII characters be escaped using a percent sign (%) followed by a two-digit Unicode code point. However, the xs:anyURI
type does accept these characters escaped or unescaped. Table B-1 shows some examples of valid and invalid URI references.
For more information on URIs, see "Working with URIs" in Chapter 20.
Table B-1. Values of the xs:anyURI type
Values |
Explanation |
---|---|
Valid | |
http://datypic.com |
Absolute URI (in this case, an HTTP URL) |
http://datypic.com/prod.html#shirt |
Absolute URI with fragment identifier |
mailto:info@datypic.com |
Absolute URI using |
../%C3%A9dition.html |
Relative URI with escaped non-ASCII character |
../édition.html |
Relative URI with unescaped non-ASCII character |
../prod.html#A557 |
Relative URI with fragment identifier |
urn:datypic:com |
Absolute URI (in this case, a URN) |
Empty values are allowed | |
Invalid | |
http://datypic.com#frag1#frag2 |
Too many fragment identifiers ( |
Get XQuery 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.