Return handler instance that matches the specified URI. WSchemeCollection.NoHandlerFound and
		WSchemeCollection.SchemeIncompatible may be raised.

		:param uri: URI to search handler for
		:param kwargs: additional arguments that may be used by a handler specialization
		:return: WSchemeHandler

def open(self, uri, **kwargs):
		""" Return handler instance that matches the specified URI. WSchemeCollection.NoHandlerFound and
		WSchemeCollection.SchemeIncompatible may be raised.

		:param uri: URI to search handler for
		:param kwargs: additional arguments that may be used by a handler specialization
		:return: WSchemeHandler
		"""
		handler = self.handler(uri.scheme())
		if handler is None:
			raise WSchemeCollection.NoHandlerFound(uri)

		if uri.scheme() is None:
			uri.component('scheme', handler.scheme_specification().scheme_name())

		if handler.scheme_specification().is_compatible(uri) is False:
			raise WSchemeCollection.SchemeIncompatible(uri)

		return handler.create_handler(uri, **kwargs)