  
    
    
    
    
    
    
    
  
  
    
      
        
          
libxml2-xmlschemastypes.html            
Prev          
        
        
          
general.html            
Up          
        
        
          
index.html            
Home          
        
        
          
libxml2-xmlunicode.html            
Next          
        
        
libxml2 Reference Manual      
    
    
      
xmlstring    
    
xmlstring - set of routines to process strings
    
type and interfaces needed for the internal string handling of the library, especially UTF8 processing. 
    
Author(s): Daniel Veillard 
    
      
Synopsis
      
#define #BAD_CASTBAD_CAST ;
typedef unsigned char 
#xmlCharxmlChar ;
int	
#xmlStrcmpxmlStrcmp 			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlCharStrndupxmlCharStrndup 		(const char * cur, 					 int len);
const 
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrcasestrxmlStrcasestr 		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 libxml2-xmlstring.html#xmlCharxmlChar  * val);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrcatxmlStrcat 		( libxml2-xmlstring.html#xmlCharxmlChar  * cur, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * add);
int	
#xmlStrPrintfxmlStrPrintf 			( libxml2-xmlstring.html#xmlCharxmlChar  * buf, 					 int len, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * msg, 					 ... ...);
const 
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrstrxmlStrstr 		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * val);
int	
#xmlUTF8SizexmlUTF8Size 			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf);
int	
#xmlStrQEqualxmlStrQEqual 			(const libxml2-xmlstring.html#xmlCharxmlChar  * pref, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrncatNewxmlStrncatNew 		(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2, 					 int len);
const 
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlUTF8StrposxmlUTF8Strpos 		(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int pos);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrdupxmlStrdup 		(const libxml2-xmlstring.html#xmlCharxmlChar  * cur);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlCharStrdupxmlCharStrdup 		(const char * cur);
const 
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrchrxmlStrchr 		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 libxml2-xmlstring.html#xmlCharxmlChar  val);
int	
#xmlStrlenxmlStrlen 			(const libxml2-xmlstring.html#xmlCharxmlChar  * str);
int	
#xmlStrncmpxmlStrncmp 			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2, 					 int len);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrsubxmlStrsub 		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 int start, 					 int len);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrncatxmlStrncat 		( libxml2-xmlstring.html#xmlCharxmlChar  * cur, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * add, 					 int len);
int	
#xmlGetUTF8CharxmlGetUTF8Char 			(const unsigned char * utf, 					 int * len);
int	
#xmlStrcasecmpxmlStrcasecmp 			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlStrndupxmlStrndup 		(const libxml2-xmlstring.html#xmlCharxmlChar  * cur, 					 int len);
int	
#xmlStrVPrintfxmlStrVPrintf 			( libxml2-xmlstring.html#xmlCharxmlChar  * buf, 					 int len, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * msg, 					 va_list ap);
int	
#xmlUTF8StrsizexmlUTF8Strsize 			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int len);
int	
#xmlCheckUTF8xmlCheckUTF8 			(const unsigned char * utf);
int	
#xmlStrncasecmpxmlStrncasecmp 			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2, 					 int len);
int	
#xmlUTF8StrlenxmlUTF8Strlen 			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlUTF8StrsubxmlUTF8Strsub 		(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int start, 					 int len);
int	
#xmlStrEqualxmlStrEqual 			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2);
int	
#xmlUTF8CharcmpxmlUTF8Charcmp 			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * utf2);
libxml2-xmlstring.html#xmlCharxmlChar  *	#xmlUTF8StrndupxmlUTF8Strndup 		(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int len);
int	
#xmlUTF8StrlocxmlUTF8Strloc 			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * utfchar);
    
    
      
Description
    
    
      
Details
      
        
Macro BAD_CAST
#define #BAD_CASTBAD_CAST ;
Macro to cast a string to an libxml2-xmlstring.html#xmlCharxmlChar  * when one know its safe.
        
        
Typedef xmlChar
unsigned char xmlChar;
This is a basic byte in an UTF-8 encoded string. It's unsigned allowing to pinpoint case where char * are assigned to libxml2-xmlstring.html#xmlCharxmlChar  * (possibly making serialization back impossible).
        
        
xmlCharStrdup ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlCharStrdup		(const char * cur)a strdup for char's to xmlChar's
cur: the input char * Returns: a new libxml2-xmlstring.html#xmlCharxmlChar  * or NULL         
        
xmlCharStrndup ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlCharStrndup		(const char * cur, 					 int len)a strndup for char's to xmlChar's
cur: the input char * len: the len of @cur Returns: a new libxml2-xmlstring.html#xmlCharxmlChar  * or NULL         
        
xmlCheckUTF8 ()
int	xmlCheckUTF8			(const unsigned char * utf)Checks @utf for being valid UTF-8. @utf is assumed to be null-terminated. This function is not super-strict, as it will allow longer UTF-8 sequences than necessary. Note that Java is capable of producing these sequences if provoked. Also note, this routine checks for the 4-byte maximum size, but does not check for 0x10ffff maximum value.
utf: Pointer to putative UTF-8 encoded string. Returns: value: true if @utf is valid.         
        
xmlGetUTF8Char ()
int	xmlGetUTF8Char			(const unsigned char * utf, 					 int * len)Read the first UTF8 character from @utf
utf: a sequence of UTF-8 encoded bytes len: a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence. Returns: the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)         
        
xmlStrEqual ()
int	xmlStrEqual			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2)Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()
str1: the first libxml2-xmlstring.html#xmlCharxmlChar  * str2: the second libxml2-xmlstring.html#xmlCharxmlChar  * Returns: 1 if they are equal, 0 if they are different         
        
xmlStrPrintf ()
int	xmlStrPrintf			( libxml2-xmlstring.html#xmlCharxmlChar  * buf, 					 int len, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * msg, 					 ... ...)Formats @msg and places result into @buf.
buf: the result buffer. len: the result buffer length. msg: the message with printf formatting. ...: extra parameters for the message. Returns: the number of libxml2-SAX.html#characterscharacters  written to @buf or -1 if an error occurs.         
        
xmlStrQEqual ()
int	xmlStrQEqual			(const libxml2-xmlstring.html#xmlCharxmlChar  * pref, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str)Check if a QName is Equal to a given string
pref: the prefix of the QName name: the localname of the QName str: the second libxml2-xmlstring.html#xmlCharxmlChar  * Returns: 1 if they are equal, 0 if they are different         
        
xmlStrVPrintf ()
int	xmlStrVPrintf			( libxml2-xmlstring.html#xmlCharxmlChar  * buf, 					 int len, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * msg, 					 va_list ap)Formats @msg and places result into @buf.
buf: the result buffer. len: the result buffer length. msg: the message with printf formatting. ap: extra parameters for the message. Returns: the number of libxml2-SAX.html#characterscharacters  written to @buf or -1 if an error occurs.         
        
xmlStrcasecmp ()
int	xmlStrcasecmp			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2)a strcasecmp for xmlChar's
str1: the first libxml2-xmlstring.html#xmlCharxmlChar  * str2: the second libxml2-xmlstring.html#xmlCharxmlChar  * Returns: the integer result of the comparison         
        
xmlStrcasestr ()
const libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrcasestr		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 libxml2-xmlstring.html#xmlCharxmlChar  * val)a case-ignoring strstr for xmlChar's
str: the libxml2-xmlstring.html#xmlCharxmlChar  * array (haystack) val: the libxml2-xmlstring.html#xmlCharxmlChar  to search (needle) Returns: the libxml2-xmlstring.html#xmlCharxmlChar  * for the first occurrence or NULL.         
        
xmlStrcat ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrcat		( libxml2-xmlstring.html#xmlCharxmlChar  * cur, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * add)a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.
cur: the original libxml2-xmlstring.html#xmlCharxmlChar  * array add: the libxml2-xmlstring.html#xmlCharxmlChar  * array added Returns: a new libxml2-xmlstring.html#xmlCharxmlChar  * containing the concatenated string.         
        
xmlStrchr ()
const libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrchr		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 libxml2-xmlstring.html#xmlCharxmlChar  val)a strchr for xmlChar's
str: the libxml2-xmlstring.html#xmlCharxmlChar  * array val: the libxml2-xmlstring.html#xmlCharxmlChar  to search Returns: the libxml2-xmlstring.html#xmlCharxmlChar  * for the first occurrence or NULL.         
        
xmlStrcmp ()
int	xmlStrcmp			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2)a strcmp for xmlChar's
str1: the first libxml2-xmlstring.html#xmlCharxmlChar  * str2: the second libxml2-xmlstring.html#xmlCharxmlChar  * Returns: the integer result of the comparison         
        
xmlStrdup ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrdup		(const libxml2-xmlstring.html#xmlCharxmlChar  * cur)a strdup for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.
cur: the input libxml2-xmlstring.html#xmlCharxmlChar  * Returns: a new libxml2-xmlstring.html#xmlCharxmlChar  * or NULL         
        
xmlStrlen ()
int	xmlStrlen			(const libxml2-xmlstring.html#xmlCharxmlChar  * str)length of a xmlChar's string
str: the libxml2-xmlstring.html#xmlCharxmlChar  * array Returns: the number of libxml2-xmlstring.html#xmlCharxmlChar  contained in the ARRAY.         
        
xmlStrncasecmp ()
int	xmlStrncasecmp			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2, 					 int len)a strncasecmp for xmlChar's
str1: the first libxml2-xmlstring.html#xmlCharxmlChar  * str2: the second libxml2-xmlstring.html#xmlCharxmlChar  * len: the max comparison length Returns: the integer result of the comparison         
        
xmlStrncat ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrncat		( libxml2-xmlstring.html#xmlCharxmlChar  * cur, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * add, 					 int len)a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len < 0 then this is an API error and NULL will be returned.
cur: the original libxml2-xmlstring.html#xmlCharxmlChar  * array add: the libxml2-xmlstring.html#xmlCharxmlChar  * array added len: the length of @add Returns: a new libxml2-xmlstring.html#xmlCharxmlChar  *, the original @cur is reallocated if needed and should not be freed         
        
xmlStrncatNew ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrncatNew		(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2, 					 int len)same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is < 0 then the length will be calculated automatically.
str1: first libxml2-xmlstring.html#xmlCharxmlChar  string str2: second libxml2-xmlstring.html#xmlCharxmlChar  string len: the len of @str2 or < 0 Returns: a new libxml2-xmlstring.html#xmlCharxmlChar  * or NULL         
        
xmlStrncmp ()
int	xmlStrncmp			(const libxml2-xmlstring.html#xmlCharxmlChar  * str1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * str2, 					 int len)a strncmp for xmlChar's
str1: the first libxml2-xmlstring.html#xmlCharxmlChar  * str2: the second libxml2-xmlstring.html#xmlCharxmlChar  * len: the max comparison length Returns: the integer result of the comparison         
        
xmlStrndup ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrndup		(const libxml2-xmlstring.html#xmlCharxmlChar  * cur, 					 int len)a strndup for array of xmlChar's
cur: the input libxml2-xmlstring.html#xmlCharxmlChar  * len: the len of @cur Returns: a new libxml2-xmlstring.html#xmlCharxmlChar  * or NULL         
        
xmlStrstr ()
const libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrstr		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * val)a strstr for xmlChar's
str: the libxml2-xmlstring.html#xmlCharxmlChar  * array (haystack) val: the libxml2-xmlstring.html#xmlCharxmlChar  to search (needle) Returns: the libxml2-xmlstring.html#xmlCharxmlChar  * for the first occurrence or NULL.         
        
xmlStrsub ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlStrsub		(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 int start, 					 int len)Extract a substring of a given string
str: the libxml2-xmlstring.html#xmlCharxmlChar  * array (haystack) start: the index of the first char (zero based) len: the length of the substring Returns: the libxml2-xmlstring.html#xmlCharxmlChar  * for the first occurrence or NULL.         
        
xmlUTF8Charcmp ()
int	xmlUTF8Charcmp			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf1, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * utf2)compares the two UCS4 values
utf1: pointer to first UTF8 char utf2: pointer to second UTF8 char Returns: result of the compare as with libxml2-xmlstring.html#xmlStrncmpxmlStrncmp         
        
xmlUTF8Size ()
int	xmlUTF8Size			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf)calculates the internal size of a UTF8 character
utf: pointer to the UTF8 character Returns: the numbers of bytes in the character, -1 on format error         
        
xmlUTF8Strlen ()
int	xmlUTF8Strlen			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf)compute the length of an UTF8 string, it doesn't do a full UTF8 checking of the content of the string.
utf: a sequence of UTF-8 encoded bytes Returns: the number of libxml2-SAX.html#characterscharacters  in the string or -1 in case of error         
        
xmlUTF8Strloc ()
int	xmlUTF8Strloc			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 const libxml2-xmlstring.html#xmlCharxmlChar  * utfchar)a function to provide the relative location of a UTF8 char
utf: the input UTF8 * utfchar: the UTF8 character to be found Returns: the relative character position of the desired char or -1 if not found         
        
xmlUTF8Strndup ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlUTF8Strndup		(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int len)a strndup for array of UTF8's
utf: the input UTF8 * len: the len of @utf (in chars) Returns: a new UTF8 * or NULL         
        
xmlUTF8Strpos ()
const libxml2-xmlstring.html#xmlCharxmlChar  *	xmlUTF8Strpos		(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int pos)a function to provide the equivalent of fetching a character from a string array
utf: the input UTF8 * pos: the position of the desired UTF8 char (in chars) Returns: a pointer to the UTF8 character or NULL         
        
xmlUTF8Strsize ()
int	xmlUTF8Strsize			(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int len)storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8
utf: a sequence of UTF-8 encoded bytes len: the number of libxml2-SAX.html#characterscharacters  in the array Returns: the storage size of the first 'len' libxml2-SAX.html#characterscharacters  of ARRAY         
        
xmlUTF8Strsub ()
libxml2-xmlstring.html#xmlCharxmlChar  *	xmlUTF8Strsub		(const libxml2-xmlstring.html#xmlCharxmlChar  * utf, 					 int start, 					 int len)Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars
utf: a sequence of UTF-8 encoded bytes start: relative pos of first char len: total number to copy Returns: a pointer to a newly created string or NULL if any problem         
      
    
  
