Haskell Core Libraries (network package)ParentContentsIndex
Network.URI
Portability non-portable (needs Text.Regex)
Stability provisional
Maintainer libraries@haskell.org
Contents
The URI type
Parsing a URI
Computing relative URIs
Operations on URI strings
Description
The URI library provides utilities for parsing and manipulating Uniform Resource Identifiers (a more general form of Uniform Resource Locators, or URLs). URIs are described in RFC 2396 http://www.faqs.org/rfcs/rfc2396.html.
Synopsis
data URI = URI {
scheme :: String
authority :: String
path :: String
query :: String
fragment :: String
}
parseURI :: String -> Maybe URI
relativeTo :: URI -> URI -> Maybe URI
reserved :: Char -> Bool
unreserved :: Char -> Bool
isAllowedInURI :: Char -> Bool
escapeString :: String -> (Char -> Bool) -> String
unEscapeString :: String -> String
The URI type
data URI

The decomposition of a general universal resource identifier. For example, for the URI

   http://www.haskell.org/ghc?query#frag

the components are ...

Constructors
URI
scheme :: Stringhttp
authority :: Stringwww.haskell.org
path :: String/ghc
query :: Stringquery
fragment :: Stringfrag
Instances
Show URI
Parsing a URI
parseURI :: String -> Maybe URI
Turns a string into a URI. It returns Nothing if the string isn't a valid URI.
Computing relative URIs
relativeTo :: URI -> URI -> Maybe URI

Returns a new URI which represents the value of the first URI relative to the second URI. For example

  "foo" `relativeTo` "http://bar.org/" = "http://bar.org/foo"
Operations on URI strings
support for putting strings into URI-friendly escaped format and getting them back again. This can't be done transparently, because certain characters have different meanings in different kinds of URI.
reserved :: Char -> Bool
Returns True if the character is a "reserved" character in a URI. To include a literal instance of one of these characters in a component of a URI, it must be escaped.
unreserved :: Char -> Bool
Returns True if the character is an "unreserved" character in a URI. These characters do not need to be escaped in a URI. The only characters allowed in a URI are either reserved, unreserved, or an escape sequence (% followed by two hex digits).
isAllowedInURI :: Char -> Bool
Returns True if the character is allowed in a URI.
escapeString
:: String the string to process
-> (Char -> Bool) a predicate which returns False if the character should be escaped
-> String
Can be used to make a string valid for use in a URI.
unEscapeString :: String -> String
Turns all instances of escaped characters in the string back into literal characters.
Produced by Haddock version 0.3