non-technical publications as a synonym for a URI that uses the http or https schemes. Such assumptions can lead to confusion, for example, in the case of XML namespaces that have a visual similarity to resolvable URIs. Specifications produced by the WHATWG prefer URL over URI, and so newer HTML5 APIs use URL over URI. While most URI schemes were originally designed to be used with a particular protocol, and often have the same name, they are semantically different from protocols. For example, the scheme http is generally used for interacting with web resources using HTTP, but the scheme file has no protocol. Syntax A URI has a scheme that refers to a specification for assigning identifiers within that scheme. As such, the URI syntax is a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme. The URI generic syntax is a superset of the syntax of all URI schemes. It was first defined in , published in August 1998, and finalized in , published in January 2005. A URI is composed from an allowed set of ASCII characters consisting of reserved characters (generic: :, /, ?, #, [, ], and @; scheme- or implementation-specific: !, $, &, ', (, ), *, +, ,, ;, and =), unreserved characters (uppercase and lowercase letters, decimal digits, -, ., _, and ~), and the character %. Syntax components and subcomponents are separated by delimiters from the reserved characters (only from generic reserved characters for components) and define identifying data represented as unreserved characters, reserved characters that do not act as delimiters in the component and subcomponent respectively, and percent-encodings when the corresponding character is outside the allowed set or is being used as a delimiter of, or within, the component. A percent-encoding of an identifying data octet is a sequence of three characters, consisting of the character % followed by the two hexadecimal digits representing that octet's numeric value. The URI generic syntax consists of five components organized hierarchically in order of decreasing significance from left to right: URI = scheme ":" ["//" authority] path ["?" query] ["#" fragment] A component is undefined if it has an associated delimiter and the delimiter does not appear in the URI; the scheme and path components are always defined. A component is empty if it has no characters; the scheme component is always