## dict

dict - string dictionary

dictionary of reusable strings, just used to avoid allocation and freeing operations.

Author(s): Daniel Veillard

## Synopsis

    typedef struct _xmlDict xmlDict;
    typedef xmlDict * xmlDictPtr;
    void	xmlDictCleanup			(void);
    xmlDictPtr	xmlDictCreate		(void);
    xmlDictPtr	xmlDictCreateSub	(xmlDictPtr sub);
    const xmlChar *	xmlDictExists		(xmlDictPtr dict,
    					 const xmlChar * name,
    					 int len);
    void	xmlDictFree			(xmlDictPtr dict);
    size_t	xmlDictGetUsage			(xmlDictPtr dict);
    const xmlChar *	xmlDictLookup		(xmlDictPtr dict,
    					 const xmlChar * name,
    					 int len);
    int	xmlDictOwns			(xmlDictPtr dict,
    					 const xmlChar * str);
    const xmlChar *	xmlDictQLookup		(xmlDictPtr dict,
    					 const xmlChar * prefix,
    					 const xmlChar * name);
    int	xmlDictReference		(xmlDictPtr dict);
    size_t	xmlDictSetLimit			(xmlDictPtr dict,
    					 size_t limit);
    int	xmlDictSize			(xmlDictPtr dict);
    int	xmlInitializeDict		(void);

## Description

## Details

### Structure xmlDict

    struct _xmlDict {
    The content of this structure is not made public by the API.
    } xmlDict;

### Typedef xmlDictPtr

    xmlDict * xmlDictPtr;

### xmlDictCleanup ()

    void	xmlDictCleanup			(void)

DEPRECATED: This function will be made private. Call xmlCleanupParser to free global state but see the warnings there. xmlCleanupParser should be only called once at program exit. In most cases, you don't have call cleanup functions at all. Free the dictionary mutex. Do not call unless sure the library is not in use anymore !

### xmlDictCreate ()

    xmlDictPtr	xmlDictCreate		(void)

Create a new dictionary

`Returns`: | the newly created dictionary, or NULL if an error occurred.

### xmlDictCreateSub ()

    xmlDictPtr	xmlDictCreateSub	(xmlDictPtr sub)

Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.

`sub`: | an existing dictionary
`Returns`: | the newly created dictionary, or NULL if an error occurred.

### xmlDictExists ()

    const xmlChar *	xmlDictExists		(xmlDictPtr dict,
    					 const xmlChar * name,
    					 int len)

Check if the @name exists in the dictionary @dict.

`dict`: | the dictionary
`name`: | the name of the userdata
`len`: | the length of the name, if -1 it is recomputed
`Returns`: | the internal copy of the name or NULL if not found.

### xmlDictFree ()

    void	xmlDictFree			(xmlDictPtr dict)

Free the hash @dict and its contents. The userdata is deallocated with @f if provided.

`dict`: | the dictionary

### xmlDictGetUsage ()

    size_t	xmlDictGetUsage			(xmlDictPtr dict)

Get how much memory is used by a dictionary for strings Added in 2.9.0

`dict`: | the dictionary
`Returns`: | the amount of strings allocated

### xmlDictLookup ()

    const xmlChar *	xmlDictLookup		(xmlDictPtr dict,
    					 const xmlChar * name,
    					 int len)

Add the @name to the dictionary @dict if not present.

`dict`: | the dictionary
`name`: | the name of the userdata
`len`: | the length of the name, if -1 it is recomputed
`Returns`: | the internal copy of the name or NULL in case of internal error

### xmlDictOwns ()

    int	xmlDictOwns			(xmlDictPtr dict,
    					 const xmlChar * str)

check if a string is owned by the dictionary

`dict`: | the dictionary
`str`: | the string
`Returns`: | 1 if true, 0 if false and -1 in case of error -1 in case of error

### xmlDictQLookup ()

    const xmlChar *	xmlDictQLookup		(xmlDictPtr dict,
    					 const xmlChar * prefix,
    					 const xmlChar * name)

Add the QName @prefix:@name to the hash @dict if not present.

`dict`: | the dictionary
`prefix`: | the prefix
`name`: | the name
`Returns`: | the internal copy of the QName or NULL in case of internal error

### xmlDictReference ()

    int	xmlDictReference		(xmlDictPtr dict)

Increment the reference counter of a dictionary

`dict`: | the dictionary
`Returns`: | 0 in case of success and -1 in case of error

### xmlDictSetLimit ()

    size_t	xmlDictSetLimit			(xmlDictPtr dict,
    					 size_t limit)

Set a size limit for the dictionary Added in 2.9.0

`dict`: | the dictionary
`limit`: | the limit in bytes
`Returns`: | the previous limit of the dictionary or 0

### xmlDictSize ()

    int	xmlDictSize			(xmlDictPtr dict)

Query the number of elements installed in the hash @dict.

`dict`: | the dictionary
`Returns`: | the number of elements in the dictionary or -1 in case of error

### xmlInitializeDict ()

    int	xmlInitializeDict		(void)

DEPRECATED: This function will be made private. Call xmlInitParser to initialize the library. Do the dictionary mutex initialization.

`Returns`: | 0 if initialization was already done, and 1 if that call led to the initialization