# XMLUri Class Reference

Inheritance diagram for XMLUri:

List of all members.

## Public Member Functions

| XMLUri (const XMLCh *const uriSpec, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
| Construct a new URI from a URI specification string.
| XMLUri (const XMLUri *const baseURI, const XMLCh *const uriSpec, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
| Construct a new URI from a base URI and a URI specification string.
| XMLUri (const XMLUri &toCopy)
| Copy constructor.
XMLUri & | operator= (const XMLUri &toAssign)
virtual | ~XMLUri ()
const XMLCh * | getUriText () const
| Get the URI as a string specification.
const XMLCh * | getScheme () const
| Get the scheme for this URI.
const XMLCh * | getUserInfo () const
| Get the userinfo for this URI.
const XMLCh * | getHost () const
| Get the host for this URI.
int | getPort () const
| Get the port for this URI.
const XMLCh * | getRegBasedAuthority () const
| Get the registry based authority for this URI.
const XMLCh * | getPath () const
| Get the path for this URI.
const XMLCh * | getQueryString () const
| Get the query string for this URI.
const XMLCh * | getFragment () const
| Get the fragment for this URI.
void | setScheme (const XMLCh *const newScheme)
| Set the scheme for this URI.
void | setUserInfo (const XMLCh *const newUserInfo)
| Set the userinfo for this URI.
void | setHost (const XMLCh *const newHost)
| Set the host for this URI.
void | setPort (int newPort)
| Set the port for this URI.
void | setRegBasedAuthority (const XMLCh *const newRegAuth)
| Sets the registry based authority for this URI.
void | setPath (const XMLCh *const newPath)
| Set the path for this URI.
void | setQueryString (const XMLCh *const newQueryString)
| Set the query string for this URI.
void | setFragment (const XMLCh *const newFragment)
| Set the fragment for this URI.
| XMLUri (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)

## Static Public Member Functions

static bool | isURIString (const XMLCh *const uric)
| Determine whether a given string contains only URI characters (also called "uric" in RFC 2396).
static bool | isValidURI (const XMLUri *const baseURI, const XMLCh *const uriStr, bool bAllowSpaces=false)
| Determine whether a given string is a valid URI.
static bool | isValidURI (bool haveBaseURI, const XMLCh *const uriStr, bool bAllowSpaces=false)
| Determine whether a given string is a valid URI.
static void | normalizeURI (const XMLCh *const systemURI, XMLBuffer &normalizedURI)

## Constructor & Destructor Documentation

XMLUri::XMLUri | ( | const XMLCh *const | uriSpec,
|  | MemoryManager *const | manager = `XMLPlatformUtils::fgMemoryManager` |
| ) |  |  |

Construct a new URI from a URI specification string.

If the specification follows the "generic URI" syntax, (two slashes following the first colon), the specification will be parsed accordingly - setting the scheme, userinfo, host, port, path, querystring and fragment fields as necessary.

If the specification does not follow the "generic URI" syntax, the specification is parsed into a scheme and scheme-specific part (stored as the path) only.

Parameters:

  | uriSpec | the URI specification string (cannot be null or empty)
  | manager | Pointer to the memory manager to be used to allocate objects.

ctor# 2

XMLUri::XMLUri | ( | const XMLUri *const | baseURI,
|  | const XMLCh *const | uriSpec,
|  | MemoryManager *const | manager = `XMLPlatformUtils::fgMemoryManager` |
| ) |  |  |

Construct a new URI from a base URI and a URI specification string.

The URI specification string may be a relative URI.

Parameters:

  | baseURI | the base URI (cannot be null if uriSpec is null or empty)
  | uriSpec | the URI specification string (cannot be null or empty if base is null)
  | manager | Pointer to the memory manager to be used to allocate objects.

ctor# 7 relative ctor

XMLUri::XMLUri | ( | const XMLUri & | toCopy | ) |

Copy constructor.

virtual XMLUri::~XMLUri | ( |  | ) | `[virtual]`

XMLUri::XMLUri | ( | MemoryManager *const | manager = `XMLPlatformUtils::fgMemoryManager` | ) |

## Member Function Documentation

XMLUri& XMLUri::operator= | ( | const XMLUri & | toAssign | ) |

const XMLCh * XMLUri::getUriText | ( |  | ) | const

Get the URI as a string specification.

See RFC 2396 Section 5.2.

Returns:
  the URI string specification

const XMLCh * XMLUri::getScheme | ( |  | ) | const

Get the scheme for this URI.

Returns:
  the scheme for this URI

const XMLCh * XMLUri::getUserInfo | ( |  | ) | const

Get the userinfo for this URI.

Returns:
  the userinfo for this URI (null if not specified).

const XMLCh * XMLUri::getHost | ( |  | ) | const

Get the host for this URI.

Returns:
  the host for this URI (null if not specified).

int XMLUri::getPort | ( |  | ) | const

Get the port for this URI.

Returns:
  the port for this URI (-1 if not specified).

const XMLCh * XMLUri::getRegBasedAuthority | ( |  | ) | const

Get the registry based authority for this URI.

Returns:
  the registry based authority (null if not specified).

const XMLCh * XMLUri::getPath | ( |  | ) | const

Get the path for this URI.

Note that the value returned is the path only and does not include the query string or fragment.

Returns:
  the path for this URI.

const XMLCh * XMLUri::getQueryString | ( |  | ) | const

Get the query string for this URI.

Returns:
  the query string for this URI. Null is returned if there was no "?" in the URI spec, empty string if there was a "?" but no query string following it.

const XMLCh * XMLUri::getFragment | ( |  | ) | const

Get the fragment for this URI.

Returns:
  the fragment for this URI. Null is returned if there was no "#" in the URI spec, empty string if there was a "#" but no fragment following it.

void XMLUri::setScheme | ( | const XMLCh *const | newScheme | ) |

Set the scheme for this URI.

The scheme is converted to lowercase before it is set.

Parameters:

  | newScheme | the scheme for this URI (cannot be null)

void XMLUri::setUserInfo | ( | const XMLCh *const | newUserInfo | ) |

Set the userinfo for this URI.

If a non-null value is passed in and the host value is null, then an exception is thrown.

Parameters:

  | newUserInfo | the userinfo for this URI

void XMLUri::setHost | ( | const XMLCh *const | newHost | ) |

Set the host for this URI.

If null is passed in, the userinfo field is also set to null and the port is set to -1.

Note: This method overwrites registry based authority if it previously existed in this URI.

Parameters:

  | newHost | the host for this URI

void XMLUri::setPort | ( | int | newPort | ) |

Set the port for this URI.

-1 is used to indicate that the port is not specified, otherwise valid port numbers are between 0 and 65535. If a valid port number is passed in and the host field is null, an exception is thrown.

Parameters:

  | newPort | the port number for this URI

void XMLUri::setRegBasedAuthority | ( | const XMLCh *const | newRegAuth | ) |

Sets the registry based authority for this URI.

Note: This method overwrites server based authority if it previously existed in this URI.

Parameters:

  | newRegAuth | the registry based authority for this URI

void XMLUri::setPath | ( | const XMLCh *const | newPath | ) |

Set the path for this URI.

If the supplied path is null, then the query string and fragment are set to null as well.

If the supplied path includes a query string and/or fragment, these fields will be parsed and set as well.

Note:

For URIs following the "generic URI" syntax, the path specified should start with a slash.

For URIs that do not follow the generic URI syntax, this method sets the scheme-specific part.

Parameters:

  | newPath | the path for this URI (may be null)

void XMLUri::setQueryString | ( | const XMLCh *const | newQueryString | ) |

Set the query string for this URI.

A non-null value is valid only if this is an URI conforming to the generic URI syntax and the path value is not null.

Parameters:

  | newQueryString | the query string for this URI

void XMLUri::setFragment | ( | const XMLCh *const | newFragment | ) |

Set the fragment for this URI.

A non-null value is valid only if this is a URI conforming to the generic URI syntax and the path value is not null.

Parameters:

  | newFragment | the fragment for this URI

static bool XMLUri::isURIString | ( | const XMLCh *const | uric | ) | `[static]`

Determine whether a given string contains only URI characters (also called "uric" in RFC 2396).

uric consist of all reserved characters, unreserved characters and escaped characters.

Returns:
  true if the string is comprised of uric, false otherwise

static bool XMLUri::isValidURI | ( | const XMLUri *const | baseURI,
|  | const XMLCh *const | uriStr,
|  | bool | bAllowSpaces = `false` |
| ) |  |  | `[static]`

Determine whether a given string is a valid URI.

static bool XMLUri::isValidURI | ( | bool | haveBaseURI,
|  | const XMLCh *const | uriStr,
|  | bool | bAllowSpaces = `false` |
| ) |  |  | `[static]`

Determine whether a given string is a valid URI.

static void XMLUri::normalizeURI | ( | const XMLCh *const | systemURI,
|  | XMLBuffer & | normalizedURI |
| ) |  |  | `[static]`

The documentation for this class was generated from the following file:

- XMLUri.hpp