* DOM Module: URI Generic

[1] The [DFN@en[URI Generic Module]] provides a number of
interfaces to extract components of URIs.

[2] '''Feature'''.

@@ <http://suika.fam.cx/www/2006/feature/uri>, version 4.0

** The [CODE(DOMi)@en[URIImplementation]] interface

[3]
The [DFN@en[[CODE(DOMi)@en[[[URIImplementation]]]] interface]]
provides factory methods to create 
[CODE(DOMi)@en[[[URIReference]]]] objects.

[4]

@@ cast

[5]
The [DFN@en[[CODE(DOMm)@en[[[createURIReference]]]] method]]
returns a [CODE(DOMi)@en[[[URIReference]]]] object.
It creates a [CODE(DOMi)@en[[[URIReference]]]] object
with specified [[DOM URI]].

This method takes a parameter [CODE(DOMp)@en[[[uri]]]],
of [CODE(DOMi)@en[[[DOMString]]]],
which is the [[DOM URI]] of the created object.

[6]
The method [['''MUST''']] return a new 
[CODE(DOMi)@en[[[URIReference]]]] object whose
[CODE(DOMa)@en[[[uriReference]]]] attribute is
set to [CODE(DOMp)@en[[[uri]]]].

[7]
In Perl binding, the following value [['''MUST''']]
be set to the [CODE(DOMa)@en[[[uriReference]]]] attribute
of the returned object:
[PRE(code perl)[
UNIVERSAL::isa ($uri, 'Message::IF::URIReference')
    ? $uri->uri_reference
    : ref $uri eq 'SCALAR'
        ? [SPAN[']][SPAN[']].$$uri
        : [SPAN[']][SPAN[']].$uri
]PRE]
... where [CODE(perl)@en[$[[uri]]]] is the value
of the [CODE(DOMp)@en[[[uri]]]] parameter.

* The [CODE(DOMi)@en[URIReference]] interface

See [CODE(DOMi)@en[[[URIReference]]]]

* memo
