http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Release Info

Installation
Download
Build

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

CVS Repository
Mail Archive

API Docs for SAX and DOM
 

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

XMLString Class Reference

Class for representing native character strings and handling common string operations. More...

Collaboration diagram for XMLString:

Collaboration graph
[legend]
List of all members.

Static Public Methods

String concatenation functions
void catString (char *const target, const char *const src)
 Concatenates two strings. More...

void catString (XMLCh *const target, const XMLCh *const src)
 Concatenates two strings. More...

String comparison functions
int compareIString (const char *const str1, const char *const str2)
 Lexicographically compares lowercase versions of str1 and str2 and returns a value indicating their relationship. More...

int compareIString (const XMLCh *const str1, const XMLCh *const str2)
 Lexicographically compares lowercase versions of str1 and str2 and returns a value indicating their relationship. More...

int compareNString (const char *const str1, const char *const str2, const unsigned int count)
 Lexicographically compares, at most, the first count characters in str1 and str2 and returns a value indicating the relationship between the substrings. More...

int compareNString (const XMLCh *const str1, const XMLCh *const str2, const unsigned int count)
 Lexicographically compares, at most, the first count characters in str1 and str2 and returns a value indicating the relationship between the substrings. More...

int compareNIString (const char *const str1, const char *const str2, const unsigned int count)
 Lexicographically compares, at most, the first count characters in str1 and str2 without regard to case and returns a value indicating the relationship between the substrings. More...

int compareNIString (const XMLCh *const str1, const XMLCh *const str2, const unsigned int count)
 Lexicographically compares, at most, the first count characters in str1 and str2 without regard to case and returns a value indicating the relationship between the substrings. More...

int compareString (const char *const str1, const char *const str2)
 Lexicographically compares str1 and str2 and returns a value indicating their relationship. More...

int compareString (const XMLCh *const str1, const XMLCh *const str2)
 Lexicographically compares str1 and str2 and returns a value indicating their relationship. More...

bool equals (const XMLCh *const str1, const XMLCh *const str2)
 compares str1 and str2. More...

bool equals (const char *const str1, const char *const str2)
bool regionMatches (const XMLCh *const str1, const int offset1, const XMLCh *const str2, const int offset2, const unsigned int charCount)
 Lexicographically compares str1 and str2 regions and returns true if they are equal, otherwise false. More...

bool regionIMatches (const XMLCh *const str1, const int offset1, const XMLCh *const str2, const int offset2, const unsigned int charCount)
 Lexicographically compares str1 and str2 regions without regard to case and returns true if they are equal, otherwise false. More...

String copy functions
void copyString (char *const target, const char *const src)
 Copies src, including the terminating null character, to the location specified by target. More...

void copyString (XMLCh *const target, const XMLCh *const src)
 Copies src, including the terminating null character, to the location specified by target. More...

bool copyNString (XMLCh *const target, const XMLCh *const src, const unsigned int maxChars)
 Copies src, upto a fixed number of characters, to the location specified by target. More...

Hash functions
unsigned int hash (const char *const toHash, const unsigned int hashModulus, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Hashes a string given a modulus. More...

unsigned int hash (const XMLCh *const toHash, const unsigned int hashModulus, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Hashes a string given a modulus. More...

unsigned int hashN (const XMLCh *const toHash, const unsigned int numChars, const unsigned int hashModulus, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Hashes a string given a modulus taking a maximum number of characters as the limit. More...

Search functions
int indexOf (const char *const toSearch, const char ch)
 Provides the index of the first occurance of a character within a string. More...

int indexOf (const XMLCh *const toSearch, const XMLCh ch)
 Provides the index of the first occurance of a character within a string. More...

int indexOf (const char *const toSearch, const char chToFind, const unsigned int fromIndex, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Provides the index of the first occurance of a character within a string starting from a given index. More...

int indexOf (const XMLCh *const toSearch, const XMLCh chToFind, const unsigned int fromIndex, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Provides the index of the first occurance of a character within a string starting from a given index. More...

int lastIndexOf (const char *const toSearch, const char ch)
 Provides the index of the last occurance of a character within a string. More...

int lastIndexOf (const XMLCh *const toSearch, const XMLCh ch)
 Provides the index of the last occurance of a character within a string. More...

int lastIndexOf (const XMLCh ch, const XMLCh *const toSearch, const unsigned int toSearchLen)
 Provides the index of the last occurance of a character within a string. More...

int lastIndexOf (const char *const toSearch, const char chToFind, const unsigned int fromIndex, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Provides the index of the last occurance of a character within a string starting backward from a given index. More...

int lastIndexOf (const XMLCh *const toSearch, const XMLCh ch, const unsigned int fromIndex, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Provides the index of the last occurance of a character within a string starting backward from a given index. More...

Fixed size string movement
void moveChars (XMLCh *const targetStr, const XMLCh *const srcStr, const unsigned int count)
 Moves X number of chars. More...

Substring function
void subString (char *const targetStr, const char *const srcStr, const int startIndex, const int endIndex, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Create a substring of a givend string. More...

void subString (XMLCh *const targetStr, const XMLCh *const srcStr, const int startIndex, const int endIndex, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Create a substring of a givend string. More...

Replication function
char * replicate (const char *const toRep)
 Replicates a string NOTE: The returned buffer is dynamically allocated and is the responsibility of the caller to delete it when not longer needed. More...

char * replicate (const char *const toRep, MemoryManager *const manager)
 Replicates a string NOTE: The returned buffer is allocated with the MemoryManager. More...

XMLCh * replicate (const XMLCh *const toRep)
 Replicates a string NOTE: The returned buffer is dynamically allocated and is the responsibility of the caller to delete it when not longer needed. More...

XMLCh * replicate (const XMLCh *const toRep, MemoryManager *const manager)
 Replicates a string NOTE: The returned buffer is allocated with the MemoryManager. More...

String query function
bool startsWith (const char *const toTest, const char *const prefix)
 Tells if the sub-string appears within a string at the beginning. More...

bool startsWith (const XMLCh *const toTest, const XMLCh *const prefix)
 Tells if the sub-string appears within a string at the beginning. More...

bool startsWithI (const char *const toTest, const char *const prefix)
 Tells if the sub-string appears within a string at the beginning without regard to case. More...

bool startsWithI (const XMLCh *const toTest, const XMLCh *const prefix)
 Tells if the sub-string appears within a string at the beginning without regard to case. More...

bool endsWith (const XMLCh *const toTest, const XMLCh *const suffix)
 Tells if the sub-string appears within a string at the end. More...

const XMLCh * findAny (const XMLCh *const toSearch, const XMLCh *const searchList)
 Tells if a string has any occurance of any character of another string within itself. More...

XMLCh * findAny (XMLCh *const toSearch, const XMLCh *const searchList)
 Tells if a string has any occurance of any character of another string within itself. More...

int patternMatch (const XMLCh *const toSearch, const XMLCh *const pattern)
 Tells if a string has pattern within itself. More...

unsigned int stringLen (const char *const src)
 Get the length of the string. More...

unsigned int stringLen (const XMLCh *const src)
 Get the length of the string. More...

bool isValidNOTATION (const XMLCh *const name, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Checks whether an name is a valid NOTATION according to XML 1.0. More...

bool isValidNCName (const XMLCh *const name)
 Deprecated: please use XMLChar1_0::isValidNCName. More...

bool isValidName (const XMLCh *const name)
 Deprecated: please use XMLChar1_0::isValidName. More...

bool isValidEncName (const XMLCh *const name)
 Checks whether an name is a valid EncName. More...

bool isValidQName (const XMLCh *const name)
 Deprecated: please use XMLChar1_0::isValidQName. More...

bool isAlpha (XMLCh const theChar)
 Checks whether a character is within [a-zA-Z]. More...

bool isDigit (XMLCh const theChar)
 Checks whether a character is within [0-9]. More...

bool isAlphaNum (XMLCh const theChar)
 Checks whether a character is within [0-9a-zA-Z]. More...

bool isHex (XMLCh const theChar)
 Checks whether a character is within [0-9a-fA-F]. More...

bool isAllWhiteSpace (const XMLCh *const toCheck)
 Deprecated: please use XMLChar1_0::isAllWhiteSpace. More...

bool isInList (const XMLCh *const toFind, const XMLCh *const enumList)
 Find is the string appears in the enum list. More...

Conversion functions
void binToText (const unsigned int toFormat, char *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

void binToText (const unsigned int toFormat, XMLCh *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

void binToText (const unsigned long toFormat, char *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

void binToText (const unsigned long toFormat, XMLCh *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

void binToText (const long toFormat, char *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

void binToText (const long toFormat, XMLCh *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

void binToText (const int toFormat, char *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

void binToText (const int toFormat, XMLCh *const toFill, const unsigned int maxChars, const unsigned int radix, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts binary data to a text string based a given radix. More...

bool textToBin (const XMLCh *const toConvert, unsigned int &toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts a string of decimal chars to a binary value. More...

int parseInt (const XMLCh *const toConvert, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Converts a string of decimal chars to a binary value. More...

void cut (XMLCh *const toCutFrom, const unsigned int count)
 Cut leading chars from a string. More...

char * transcode (const XMLCh *const toTranscode)
 Transcodes a string to native code-page. More...

char * transcode (const XMLCh *const toTranscode, MemoryManager *const manager)
bool transcode (const XMLCh *const toTranscode, char *const toFill, const unsigned int maxChars, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Transcodes a string to native code-page. More...

XMLCh * transcode (const char *const toTranscode)
 Transcodes a string to native code-page. More...

XMLCh * transcode (const char *const toTranscode, MemoryManager *const manager)
bool transcode (const char *const toTranscode, XMLCh *const toFill, const unsigned int maxChars, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Transcodes a string to native code-page. More...

void trim (char *const toTrim)
 Trims off extra space characters from the start and end of the string, moving the non-space string content back to the start. More...

void trim (XMLCh *const toTrim)
 Trims off extra space characters from the start and end of the string, moving the non-space string content back to the start. More...

BaseRefVectorOf< XMLCh > * tokenizeString (const XMLCh *const tokenizeSrc, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Break a string into tokens with space as delimiter, and stored in a string vector. More...

Formatting functions
XMLCh * makeUName (const XMLCh *const pszURI, const XMLCh *const pszName)
 Creates a UName from a URI and base name. More...

unsigned int replaceTokens (XMLCh *const errText, const unsigned int maxChars, const XMLCh *const text1, const XMLCh *const text2, const XMLCh *const text3, const XMLCh *const text4, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Internal function to perform token replacement for strings. More...

void upperCase (XMLCh *const toUpperCase)
 Converts a string to uppercase. More...

void lowerCase (XMLCh *const toLowerCase)
 Converts a string to lowercase. More...

bool isWSReplaced (const XMLCh *const toCheck)
 Check if string is WhiteSpace:replace. More...

bool isWSCollapsed (const XMLCh *const toCheck)
 Check if string is WhiteSpace:collapse. More...

void replaceWS (XMLCh *const toConvert, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Replace whitespace. More...

void collapseWS (XMLCh *const toConvert, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Collapse whitespace. More...

void removeWS (XMLCh *const toConvert, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Remove whitespace. More...

void removeChar (const XMLCh *const srcString, const XMLCh &toRemove, XMLBuffer &dstBuffer)
 Remove character. More...

void fixURI (const XMLCh *const str, XMLCh *const target)
 Fixes a platform dependent absolute path filename to standard URI form. More...

String Memory Management functions
void release (char **buf)
 Release the parameter char string that was allocated by the implementation (i.e.the parser). More...

void release (XMLCh **buf)
 Release the parameter XMLCh string that was allocated by the implementation (i.e.the parser). More...

void release (XMLByte **buf)
 Release the parameter XMLByte string that was allocated by the implementation (i.e.the parser). More...


Friends

class XMLPlatformUtils

Detailed Description

Class for representing native character strings and handling common string operations.

This class is Unicode compliant. This class is designed primarily for internal use, but due to popular demand, it is being made publicly available. Users of this class must understand that this is not an officially supported class. All public methods of this class are static functions.


Member Function Documentation

void XMLString::binToText const int    toFormat,
XMLCh *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::binToText const int    toFormat,
char *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::binToText const long    toFormat,
XMLCh *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::binToText const long    toFormat,
char *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::binToText const unsigned long    toFormat,
XMLCh *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::binToText const unsigned long    toFormat,
char *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::binToText const unsigned int    toFormat,
XMLCh *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::binToText const unsigned int    toFormat,
char *const    toFill,
const unsigned int    maxChars,
const unsigned int    radix,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts binary data to a text string based a given radix.

Parameters:
toFormat  The number to convert
toFill  The buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxChars  The maximum number of output characters that can be accepted. If the result will not fit, it is an error.
radix  The radix of the input data, based on which the conversion
manager  The MemoryManager to use to allocate objects will be done

void XMLString::catString XMLCh *const    target,
const XMLCh *const    src
[static]
 

Concatenates two strings.

catString appends src to target and terminates the resulting string with a null character. The initial character of src overwrites the terminating character of target. No overflow checking is performed when strings are copied or appended. The behavior of catString is undefined if source and destination strings overlap.

Parameters:
target  Null-terminated destination string
src  Null-terminated source string

void XMLString::catString char *const    target,
const char *const    src
[static]
 

Concatenates two strings.

catString appends src to target and terminates the resulting string with a null character. The initial character of src overwrites the terminating character of target .

No overflow checking is performed when strings are copied or appended. The behavior of catString is undefined if source and destination strings overlap.

Parameters:
target  Null-terminated destination string
src  Null-terminated source string

void XMLString::collapseWS XMLCh *const    toConvert,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Collapse whitespace.

Parameters:
toConvert  The string which needs to be whitespace collapsed. On return , this buffer also holds the converted string
manager  The MemoryManager to use to allocate objects

int XMLString::compareIString const XMLCh *const    str1,
const XMLCh *const    str2
[static]
 

Lexicographically compares lowercase versions of str1 and str2 and returns a value indicating their relationship.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

int XMLString::compareIString const char *const    str1,
const char *const    str2
[static]
 

Lexicographically compares lowercase versions of str1 and str2 and returns a value indicating their relationship.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

int XMLString::compareNIString const XMLCh *const    str1,
const XMLCh *const    str2,
const unsigned int    count
[static]
 

Lexicographically compares, at most, the first count characters in str1 and str2 without regard to case and returns a value indicating the relationship between the substrings.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
count  The number of characters to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

int XMLString::compareNIString const char *const    str1,
const char *const    str2,
const unsigned int    count
[static]
 

Lexicographically compares, at most, the first count characters in str1 and str2 without regard to case and returns a value indicating the relationship between the substrings.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
count  The number of characters to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

int XMLString::compareNString const XMLCh *const    str1,
const XMLCh *const    str2,
const unsigned int    count
[static]
 

Lexicographically compares, at most, the first count characters in str1 and str2 and returns a value indicating the relationship between the substrings.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
count  The number of characters to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

int XMLString::compareNString const char *const    str1,
const char *const    str2,
const unsigned int    count
[static]
 

Lexicographically compares, at most, the first count characters in str1 and str2 and returns a value indicating the relationship between the substrings.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
count  The number of characters to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

int XMLString::compareString const XMLCh *const    str1,
const XMLCh *const    str2
[static]
 

Lexicographically compares str1 and str2 and returns a value indicating their relationship.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

int XMLString::compareString const char *const    str1,
const char *const    str2
[static]
 

Lexicographically compares str1 and str2 and returns a value indicating their relationship.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
Returns:
The return value indicates the relation of str1 to str2 as follows Less than 0 means str1 is less than str2 Equal to 0 means str1 is identical to str2 Greater than 0 means str1 is more than str2

bool XMLString::copyNString XMLCh *const    target,
const XMLCh *const    src,
const unsigned int    maxChars
[static]
 

Copies src, upto a fixed number of characters, to the location specified by target.

No overflow checking is performed when strings are copied or appended. The behavior of copyNString is undefined if the source and destination strings overlap.

Parameters:
target  Destination string. The size of the buffer should atleast be 'maxChars + 1'.
src  Null-terminated source string
maxChars  The maximum number of characters to copy

void XMLString::copyString XMLCh *const    target,
const XMLCh *const    src
[static]
 

Copies src, including the terminating null character, to the location specified by target.

No overflow checking is performed when strings are copied or appended. The behavior of copyString is undefined if the source and destination strings overlap.

Parameters:
target  Destination string
src  Null-terminated source string

void XMLString::copyString char *const    target,
const char *const    src
[static]
 

Copies src, including the terminating null character, to the location specified by target.

No overflow checking is performed when strings are copied or appended. The behavior of strcpy is undefined if the source and destination strings overlap.

Parameters:
target  Destination string
src  Null-terminated source string

void XMLString::cut XMLCh *const    toCutFrom,
const unsigned int    count
[static]
 

Cut leading chars from a string.

Parameters:
toCutFrom  The string to cut chars from
count  The count of leading chars to cut

bool XMLString::endsWith const XMLCh *const    toTest,
const XMLCh *const    suffix
[static]
 

Tells if the sub-string appears within a string at the end.

Parameters:
toTest  The string to test
suffix  The sub-string that needs to be checked
Returns:
Returns true if the sub-string was found at the end of toTest, else false

bool XMLString::equals const char *const    str1,
const char *const    str2
[static]
 

bool XMLString::equals const XMLCh *const    str1,
const XMLCh *const    str2
[static]
 

compares str1 and str2.

Parameters:
str1  Null-terminated string to compare
str2  Null-terminated string to compare
Returns:
true if two strings are equal, false if not If one string is null, while the other is zero-length string, it is considered as equal.

XMLCh* XMLString::findAny XMLCh *const    toSearch,
const XMLCh *const    searchList
[static]
 

Tells if a string has any occurance of any character of another string within itself.

Parameters:
toSearch  The string to be searched
searchList  The string from which characters to be searched for are drawn
Returns:
Returns the pointer to the location where the first occurrence of any character from searchList is found, else returns 0

const XMLCh* XMLString::findAny const XMLCh *const    toSearch,
const XMLCh *const    searchList
[static]
 

Tells if a string has any occurance of any character of another string within itself.

Parameters:
toSearch  The string to be searched
searchList  The string from which characters to be searched for are drawn
Returns:
Returns the pointer to the location where the first occurrence of any character from searchList is found, else returns 0

void XMLString::fixURI const XMLCh *const    str,
XMLCh *const    target
[static]
 

Fixes a platform dependent absolute path filename to standard URI form.

1. Windows: fix 'x:' to 'file:///x:' and convert any backslash to forward slash 2. UNIX: fix '/blah/blahblah' to 'file:///blah/blahblah'

Parameters:
str  The string that has the absolute path filename
target  The target string pre-allocated to store the fixed uri

unsigned int XMLString::hash const XMLCh *const    toHash,
const unsigned int    hashModulus,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Hashes a string given a modulus.

Parameters:
toHash  The string to hash
hashModulus  The divisor to be used for hashing
manager  The MemoryManager to use to allocate objects
Returns:
Returns the hash value

unsigned int XMLString::hash const char *const    toHash,
const unsigned int    hashModulus,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Hashes a string given a modulus.

Parameters:
toHash  The string to hash
hashModulus  The divisor to be used for hashing
manager  The MemoryManager to use to allocate objects
Returns:
Returns the hash value

unsigned int XMLString::hashN const XMLCh *const    toHash,
const unsigned int    numChars,
const unsigned int    hashModulus,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Hashes a string given a modulus taking a maximum number of characters as the limit.

Parameters:
toHash  The string to hash
numChars  The maximum number of characters to consider for hashing
hashModulus  The divisor to be used for hashing
manager  The MemoryManager to use to allocate objects
Returns:
Returns the hash value

int XMLString::indexOf const XMLCh *const    toSearch,
const XMLCh    chToFind,
const unsigned int    fromIndex,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Provides the index of the first occurance of a character within a string starting from a given index.

Parameters:
toSearch  The string to search
chToFind  The character to search within the string
fromIndex  The index to start searching from
manager  The MemoryManager to use to allocate objects
Returns:
If found, returns the index of the character within the string, else returns -1.

int XMLString::indexOf const char *const    toSearch,
const char    chToFind,
const unsigned int    fromIndex,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Provides the index of the first occurance of a character within a string starting from a given index.

Parameters:
toSearch  The string to search
chToFind  The character to search within the string
fromIndex  The index to start searching from
manager  The MemoryManager to use to allocate objects
Returns:
If found, returns the index of the character within the string, else returns -1.

int XMLString::indexOf const XMLCh *const    toSearch,
const XMLCh    ch
[static]
 

Provides the index of the first occurance of a character within a string.

Parameters:
toSearch  The string to search
ch  The character to search within the string
Returns:
If found, returns the index of the character within the string, else returns -1.

int XMLString::indexOf const char *const    toSearch,
const char    ch
[static]
 

Provides the index of the first occurance of a character within a string.

Parameters:
toSearch  The string to search
ch  The character to search within the string
Returns:
If found, returns the index of the character within the string, else returns -1.

bool XMLString::isAllWhiteSpace const XMLCh *const    toCheck [static]
 

Deprecated: please use XMLChar1_0::isAllWhiteSpace.

Checks whether aa string contains only whitespace according to XML 1.0

Parameters:
toCheck  the string to check
Returns:
Returns true if it is, otherwise false

bool XMLString::isAlpha XMLCh const    theChar [static]
 

Checks whether a character is within [a-zA-Z].

Parameters:
theChar  the character to check
Returns:
Returns true if within the range, otherwise false

bool XMLString::isAlphaNum XMLCh const    theChar [static]
 

Checks whether a character is within [0-9a-zA-Z].

Parameters:
theChar  the character to check
Returns:
Returns true if within the range, otherwise false

bool XMLString::isDigit XMLCh const    theChar [static]
 

Checks whether a character is within [0-9].

Parameters:
theChar  the character to check
Returns:
Returns true if within the range, otherwise false

bool XMLString::isHex XMLCh const    theChar [static]
 

Checks whether a character is within [0-9a-fA-F].

Parameters:
theChar  the character to check
Returns:
Returns true if within the range, otherwise false

bool XMLString::isInList const XMLCh *const    toFind,
const XMLCh *const    enumList
[static]
 

Find is the string appears in the enum list.

Parameters:
toFind  the string to be found
enumList  the list return true if found

bool XMLString::isValidEncName const XMLCh *const    name [static]
 

Checks whether an name is a valid EncName.

Parameters:
name  The string to check its EncName validity
Returns:
Returns true if name is EncName valid, otherwise false

bool XMLString::isValidName const XMLCh *const    name [static]
 

Deprecated: please use XMLChar1_0::isValidName.

Checks whether an name is a valid Name according to XML 1.0

Parameters:
name  The string to check its Name validity
Returns:
Returns true if name is Name valid, otherwise false

bool XMLString::isValidNCName const XMLCh *const    name [static]
 

Deprecated: please use XMLChar1_0::isValidNCName.

Checks whether an name is a valid NCName according to XML 1.0

Parameters:
name  The string to check its NCName validity
Returns:
Returns true if name is NCName valid, otherwise false

bool XMLString::isValidNOTATION const XMLCh *const    name,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Checks whether an name is a valid NOTATION according to XML 1.0.

Parameters:
name  The string to check its NOTATION validity
manager  The memory manager
Returns:
Returns true if name is NOTATION valid, otherwise false

bool XMLString::isValidQName const XMLCh *const    name [static]
 

Deprecated: please use XMLChar1_0::isValidQName.

Checks whether an name is a valid QName according to XML 1.0

Parameters:
name  The string to check its QName validity
Returns:
Returns true if name is QName valid, otherwise false

bool XMLString::isWSCollapsed const XMLCh *const    toCheck [static]
 

Check if string is WhiteSpace:collapse.

Parameters:
toCheck  The string which needs to be checked.

bool XMLString::isWSReplaced const XMLCh *const    toCheck [static]
 

Check if string is WhiteSpace:replace.

Parameters:
toCheck  The string which needs to be checked.

int XMLString::lastIndexOf const XMLCh *const    toSearch,
const XMLCh    ch,
const unsigned int    fromIndex,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Provides the index of the last occurance of a character within a string starting backward from a given index.

Parameters:
toSearch  The string to search
ch  The character to search within the string
fromIndex  The index to start backward search from
manager  The MemoryManager to use to allocate objects
Returns:
If found, returns the index of the character within the string, else returns -1.

int XMLString::lastIndexOf const char *const    toSearch,
const char    chToFind,
const unsigned int    fromIndex,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Provides the index of the last occurance of a character within a string starting backward from a given index.

Parameters:
toSearch  The string to search
chToFind  The character to search within the string
fromIndex  The index to start backward search from
manager  The MemoryManager to use to allocate objects
Returns:
If found, returns the index of the character within the string, else returns -1.

int XMLString::lastIndexOf const XMLCh    ch,
const XMLCh *const    toSearch,
const unsigned int    toSearchLen
[static]
 

Provides the index of the last occurance of a character within a string.

Parameters:
ch  The character to search within the string
toSearch  The string to search
toSearchLen  The length of the string to search
Returns:
If found, returns the index of the character within the string, else returns -1.

int XMLString::lastIndexOf const XMLCh *const    toSearch,
const XMLCh    ch
[static]
 

Provides the index of the last occurance of a character within a string.

Parameters:
toSearch  The string to search
ch  The character to search within the string
Returns:
If found, returns the index of the character within the string, else returns -1.

int XMLString::lastIndexOf const char *const    toSearch,
const char    ch
[static]
 

Provides the index of the last occurance of a character within a string.

Parameters:
toSearch  The string to search
ch  The character to search within the string
Returns:
If found, returns the index of the character within the string, else returns -1.

void XMLString::lowerCase XMLCh *const    toLowerCase [static]
 

Converts a string to lowercase.

Parameters:
toLowerCase  The string which needs to be converted to lowercase. On return, this buffer also holds the converted lowercase string

XMLCh* XMLString::makeUName const XMLCh *const    pszURI,
const XMLCh *const    pszName
[static]
 

Creates a UName from a URI and base name.

It is in the form {url}name, and is commonly used internally to represent fully qualified names when namespaces are enabled.

Parameters:
pszURI  The URI part of the name
pszName  The base part of the name
Returns:
Returns the complete formatted UName

void XMLString::moveChars XMLCh *const    targetStr,
const XMLCh *const    srcStr,
const unsigned int    count
[static]
 

Moves X number of chars.

Parameters:
targetStr  The string to copy the chars to
srcStr  The string to copy the chars from
count  The number of chars to move

int XMLString::parseInt const XMLCh *const    toConvert,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts a string of decimal chars to a binary value.

Note that leading and trailng whitespace is legal and will be ignored,

Only one and either of (+,-) after the leading whitespace, before any other characters are allowed.

but the remainder must be all decimal digits.

Parameters:
toConvert  The string of digits to convert
manager  The MemoryManager to use to allocate objects

int XMLString::patternMatch const XMLCh *const    toSearch,
const XMLCh *const    pattern
[static]
 

Tells if a string has pattern within itself.

Parameters:
toSearch  The string to be searched
pattern  The pattern to be located within the string
Returns:
Returns index to the location where the pattern was found, else returns -1

bool XMLString::regionIMatches const XMLCh *const    str1,
const int    offset1,
const XMLCh *const    str2,
const int    offset2,
const unsigned int    charCount
[static]
 

Lexicographically compares str1 and str2 regions without regard to case and returns true if they are equal, otherwise false.

A substring of str1 is compared to a substring of str2. The result is true if these substrings represent identical character sequences. The substring of str1 to be compared begins at offset1 and has length charCount. The substring of str2 to be compared begins at offset2 and has length charCount. The result is false if and only if at least one of the following is true: offset1 is negative. offset2 is negative. offset1+charCount is greater than the length of str1. offset2+charCount is greater than the length of str2. There is some nonnegative integer k less than charCount such that: str1.charAt(offset1+k) != str2.charAt(offset2+k)

Parameters:
str1  Null-terminated string to compare
offset1  Starting offset of str1
str2  Null-terminated string to compare
offset2  Starting offset of str2
charCount  The number of characters to compare
Returns:
true if the specified subregion of str1 exactly matches the specified subregion of str2>; false otherwise.

bool XMLString::regionMatches const XMLCh *const    str1,
const int    offset1,
const XMLCh *const    str2,
const int    offset2,
const unsigned int    charCount
[static]
 

Lexicographically compares str1 and str2 regions and returns true if they are equal, otherwise false.

A substring of str1 is compared to a substring of str2. The result is true if these substrings represent identical character sequences. The substring of str1 to be compared begins at offset1 and has length charCount. The substring of str2 to be compared begins at offset2 and has length charCount. The result is false if and only if at least one of the following is true: offset1 is negative. offset2 is negative. offset1+charCount is greater than the length of str1. offset2+charCount is greater than the length of str2. There is some nonnegative integer k less than charCount such that: str1.charAt(offset1+k) != str2.charAt(offset2+k)

Parameters:
str1  Null-terminated string to compare
offset1  Starting offset of str1
str2  Null-terminated string to compare
offset2  Starting offset of str2
charCount  The number of characters to compare
Returns:
true if the specified subregion of str1 exactly matches the specified subregion of str2>; false otherwise.

void XMLString::release XMLByte **    buf [static]
 

Release the parameter XMLByte string that was allocated by the implementation (i.e.the parser).

The implementation will call operator delete[] and then turn the string to a null pointer.

Parameters:
buf  The string to be deleted and become a null pointer.

void XMLString::release XMLCh **    buf [static]
 

Release the parameter XMLCh string that was allocated by the implementation (i.e.the parser).

The implementation will call operator delete[] and then turn the string to a null pointer.

Parameters:
buf  The string to be deleted and become a null pointer.

void XMLString::release char **    buf [static]
 

Release the parameter char string that was allocated by the implementation (i.e.the parser).

The implementation will call operator delete[] and then turn the string to a null pointer.

Parameters:
buf  The string to be deleted and become a null pointer.

void XMLString::removeChar const XMLCh *const    srcString,
const XMLCh &    toRemove,
XMLBuffer &    dstBuffer
[static]
 

Remove character.

Parameters:
srcString  The string
toRemove  The character needs to be removed from the string
dstBuffer  The buffer containning the result

void XMLString::removeWS XMLCh *const    toConvert,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Remove whitespace.

Parameters:
toConvert  The string which needs to be whitespace removed. On return , this buffer also holds the converted string
manager  The MemoryManager to use to allocate objects

unsigned int XMLString::replaceTokens XMLCh *const    errText,
const unsigned int    maxChars,
const XMLCh *const    text1,
const XMLCh *const    text2,
const XMLCh *const    text3,
const XMLCh *const    text4,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Internal function to perform token replacement for strings.

Parameters:
errText  The text (NULL terminated) where the replacement is to be done. The size of this buffer should be 'maxChars + 1' to account for the final NULL.
maxChars  The size of the output buffer, i.e. the maximum number of characters that it will hold. If the result is larger, it will be truncated.
text1  Replacement text-one
text2  Replacement text-two
text3  Replacement text-three
text4  Replacement text-four
manager  The MemoryManager to use to allocate objects
Returns:
Returns the count of characters that are outputted

void XMLString::replaceWS XMLCh *const    toConvert,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Replace whitespace.

Parameters:
toConvert  The string which needs to be whitespace replaced. On return , this buffer also holds the converted string
manager  The MemoryManager to use to allocate objects

XMLCh * XMLString::replicate const XMLCh *const    toRep,
MemoryManager *const    manager
[static]
 

Replicates a string NOTE: The returned buffer is allocated with the MemoryManager.

It is the responsibility of the caller to delete it when not longer needed.

Parameters:
toRep  The string to replicate
manager  The MemoryManager to use to allocate the string
Returns:
Returns a pointer to the replicated string

XMLCh* XMLString::replicate const XMLCh *const    toRep [static]
 

Replicates a string NOTE: The returned buffer is dynamically allocated and is the responsibility of the caller to delete it when not longer needed.

You can call XMLString::release to release this returned buffer.

Parameters:
toRep  The string to replicate
Returns:
Returns a pointer to the replicated string
See also:
XMLString::release(XMLCh**)

char* XMLString::replicate const char *const    toRep,
MemoryManager *const    manager
[static]
 

Replicates a string NOTE: The returned buffer is allocated with the MemoryManager.

It is the responsibility of the caller to delete it when not longer needed.

Parameters:
toRep  The string to replicate
manager  The MemoryManager to use to allocate the string
Returns:
Returns a pointer to the replicated string

char* XMLString::replicate const char *const    toRep [static]
 

Replicates a string NOTE: The returned buffer is dynamically allocated and is the responsibility of the caller to delete it when not longer needed.

You can call XMLString::release to release this returned buffer.

Parameters:
toRep  The string to replicate
Returns:
Returns a pointer to the replicated string
See also:
XMLString::release(char**)

bool XMLString::startsWith const XMLCh *const    toTest,
const XMLCh *const    prefix
[static]
 

Tells if the sub-string appears within a string at the beginning.

Parameters:
toTest  The string to test
prefix  The sub-string that needs to be checked
Returns:
Returns true if the sub-string was found at the beginning of toTest, else false

bool XMLString::startsWith const char *const    toTest,
const char *const    prefix
[static]
 

Tells if the sub-string appears within a string at the beginning.

Parameters:
toTest  The string to test
prefix  The sub-string that needs to be checked
Returns:
Returns true if the sub-string was found at the beginning of toTest, else false

bool XMLString::startsWithI const XMLCh *const    toTest,
const XMLCh *const    prefix
[static]
 

Tells if the sub-string appears within a string at the beginning without regard to case.

Parameters:
toTest  The string to test
prefix  The sub-string that needs to be checked
Returns:
Returns true if the sub-string was found at the beginning of toTest, else false

bool XMLString::startsWithI const char *const    toTest,
const char *const    prefix
[static]
 

Tells if the sub-string appears within a string at the beginning without regard to case.

Parameters:
toTest  The string to test
prefix  The sub-string that needs to be checked
Returns:
Returns true if the sub-string was found at the beginning of toTest, else false

unsigned int XMLString::stringLen const XMLCh *const    src [static]
 

Get the length of the string.

Parameters:
src  The string whose length is to be determined
Returns:
Returns the length of the string

unsigned int XMLString::stringLen const char *const    src [static]
 

Get the length of the string.

Parameters:
src  The string whose length is to be determined
Returns:
Returns the length of the string

void XMLString::subString XMLCh *const    targetStr,
const XMLCh *const    srcStr,
const int    startIndex,
const int    endIndex,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Create a substring of a givend string.

The substring begins at the specified beginIndex and extends to the character at index endIndex - 1.

Parameters:
targetStr  The string to copy the chars to
srcStr  The string to copy the chars from
startIndex  beginning index, inclusive.
endIndex  the ending index, exclusive.
manager  The MemoryManager to use to allocate objects

void XMLString::subString char *const    targetStr,
const char *const    srcStr,
const int    startIndex,
const int    endIndex,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Create a substring of a givend string.

The substring begins at the specified beginIndex and extends to the character at index endIndex - 1.

Parameters:
targetStr  The string to copy the chars to
srcStr  The string to copy the chars from
startIndex  beginning index, inclusive.
endIndex  the ending index, exclusive.
manager  The MemoryManager to use to allocate objects

bool XMLString::textToBin const XMLCh *const    toConvert,
unsigned int &    toFill,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Converts a string of decimal chars to a binary value.

Note that leading and trailng whitespace is legal and will be ignored but the remainder must be all decimal digits.

Parameters:
toConvert  The string of digits to convert
toFill  The unsigned int value to fill with the converted value.
manager  The MemoryManager to use to allocate objects

BaseRefVectorOf<XMLCh>* XMLString::tokenizeString const XMLCh *const    tokenizeSrc,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Break a string into tokens with space as delimiter, and stored in a string vector.

The caller owns the string vector that is returned, and is responsible for deleting it.

Parameters:
tokenizeSrc  String to be tokenized
manager  The MemoryManager to use to allocate objects
Returns:
a vector of all the tokenized string

bool XMLString::transcode const char *const    toTranscode,
XMLCh *const    toFill,
const unsigned int    maxChars,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Transcodes a string to native code-page.

Parameters:
toTranscode  The string tobe transcoded
toFill  The buffer that is filled with the transcoded value. The size of this buffer should atleast be 'maxChars + 1'.
maxChars  The maximum number of characters that the output buffer can hold (not including the null, which is why toFill should be at least maxChars+1.).
manager  The MemoryManager to use to allocate objects
Returns:
Returns true if successful, false if there was an error

XMLCh* XMLString::transcode const char *const    toTranscode,
MemoryManager *const    manager
[static]
 

XMLCh* XMLString::transcode const char *const    toTranscode [static]
 

Transcodes a string to native code-page.

NOTE: The returned buffer is dynamically allocated and is the responsibility of the caller to delete it when not longer needed. You can call XMLString::release to release this returned buffer.

Parameters:
toTranscode  The string to be transcoded
Returns:
Returns the transcoded string
See also:
XMLString::release(char**)

bool XMLString::transcode const XMLCh *const    toTranscode,
char *const    toFill,
const unsigned int    maxChars,
MemoryManager *const    manager = XMLPlatformUtils::fgMemoryManager
[static]
 

Transcodes a string to native code-page.

Be aware that when transcoding to an external encoding, that each Unicode char can create multiple output bytes. So you cannot assume a one to one correspondence of input chars to output bytes.

Parameters:
toTranscode  The string tobe transcoded
toFill  The buffer that is filled with the transcoded value. The size of this buffer should atleast be 'maxChars + 1'.
maxChars  The maximum number of bytes that the output buffer can hold (not including the null, which is why toFill should be at least maxChars+1.).
manager  The MemoryManager to use to allocate objects
Returns:
Returns true if successful, false if there was an error

char* XMLString::transcode const XMLCh *const    toTranscode,
MemoryManager *const    manager
[static]
 

char* XMLString::transcode const XMLCh *const    toTranscode [static]
 

Transcodes a string to native code-page.

NOTE: The returned buffer is dynamically allocated and is the responsibility of the caller to delete it when not longer needed. You can call XMLString::release to release this returned buffer.

Parameters:
toTranscode  The string to be transcoded
Returns:
Returns the transcoded string
See also:
XMLString::release(XMLCh**)

void XMLString::trim XMLCh *const    toTrim [static]
 

Trims off extra space characters from the start and end of the string, moving the non-space string content back to the start.

Parameters:
toTrim  The string to be trimmed. On return this contains the trimmed string

void XMLString::trim char *const    toTrim [static]
 

Trims off extra space characters from the start and end of the string, moving the non-space string content back to the start.

Parameters:
toTrim  The string to be trimmed. On return this contains the trimmed string

void XMLString::upperCase XMLCh *const    toUpperCase [static]
 

Converts a string to uppercase.

Parameters:
toUpperCase  The string which needs to be converted to uppercase. On return, this buffer also holds the converted uppercase string


Friends And Related Function Documentation

friend class XMLPlatformUtils [friend]
 


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


Copyright © 1994-2004 The Apache Software Foundation. All Rights Reserved.