blob: a0b24ac2ac00903636b76ddd72183ace7b50ee3a [file] [log] [blame]
/*
* entities.h : interface for the XML entities handking
*
* See Copyright for the status of this software.
*
* $Id$
*/
#ifndef __XML_ENTITIES_H__
#define __XML_ENTITIES_H__
#include "xml_parser.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
* An unit of storage for an entity, contains the string, the value
* and the linkind data needed for the linking in the hash table.
*/
typedef struct xmlEntity {
const CHAR *id; /* The entity name */
CHAR *value; /* The entity CHAR equivalent */
} xmlEntity, *xmlEntityPtr;
/*
* ALl entities are stored in a table there is one table per DTD
* and one extra per document.
*/
#define XML_MIN_ENTITIES_TABLE 32
typedef struct xmlEntitiesTable {
int nb_entities; /* number of elements stored */
int max_entities; /* maximum number of elements */
xmlEntityPtr table; /* the table of entities */
} xmlEntitiesTable, *xmlEntitiesTablePtr;
/*
* External functions :
*/
extern void xmlAddDocEntity(xmlDocPtr doc, CHAR *value, const CHAR *id);
extern void xmlAddDtdEntity(xmlDtdPtr dtd, CHAR *value, const CHAR *id);
extern CHAR *xmlGetEntity(xmlDocPtr doc, const CHAR *id);
extern CHAR *xmlSubstituteEntities(xmlDocPtr doc, const CHAR *input);
extern CHAR *xmlEncodeEntities(xmlDocPtr doc, const CHAR *input);
extern CHAR *xmlDecodeEntities(xmlDocPtr doc, const CHAR *input, int len);
extern xmlEntitiesTablePtr xmlCreateEntitiesTable(void);
extern void xmlFreeEntitiesTable(xmlEntitiesTablePtr table);
#ifdef __cplusplus
}
#endif
# endif /* __XML_ENTITIES_H__ */