Haskell Core Libraries (network package)ContentsIndex
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
This 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.ietf.org/rfc/rfc2396.txt.
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 :: String
http
authority :: String
www.haskell.org
path :: String
/ghc
query :: String
query
fragment :: String
frag
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
:: Stringthe 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.6