1998-07-24 19:24:09 +00:00
/*
* 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__
1998-10-27 06:21:04 +00:00
# include "parser.h"
1998-07-24 19:24:09 +00:00
# ifdef __cplusplus
extern " C " {
# endif
1998-08-13 03:39:55 +00:00
# define XML_INTERNAL_GENERAL_ENTITY 1
# define XML_EXTERNAL_GENERAL_PARSED_ENTITY 2
# define XML_EXTERNAL_GENERAL_UNPARSED_ENTITY 3
# define XML_INTERNAL_PARAMETER_ENTITY 4
# define XML_EXTERNAL_PARAMETER_ENTITY 5
1998-10-29 05:51:30 +00:00
# define XML_INTERNAL_PREDEFINED_ENTITY 6
1998-08-13 03:39:55 +00:00
1998-07-24 19:24:09 +00:00
/*
* 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 {
1998-08-13 03:39:55 +00:00
int type ; /* The entity type */
int len ; /* The lenght of the name */
const CHAR * name ; /* Name of the entity */
const CHAR * ExternalID ; /* External identifier for PUBLIC Entity */
const CHAR * SystemID ; /* URI for a SYSTEM or PUBLIC Entity */
CHAR * content ; /* The entity content or ndata if unparsed */
1998-07-24 19:24:09 +00:00
} 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 */
1998-11-27 06:39:50 +00:00
xmlEntityPtr table ; /* the table of entities */
1998-07-24 19:24:09 +00:00
} xmlEntitiesTable , * xmlEntitiesTablePtr ;
1998-10-27 06:21:04 +00:00
1998-07-24 19:24:09 +00:00
/*
* External functions :
*/
1998-08-13 03:39:55 +00:00
extern void xmlAddDocEntity ( xmlDocPtr doc , const CHAR * name , int type ,
const CHAR * ExternalID , const CHAR * SystemID , CHAR * content ) ;
extern void xmlAddDtdEntity ( xmlDocPtr doc , const CHAR * name , int type ,
const CHAR * ExternalID , const CHAR * SystemID , CHAR * content ) ;
1998-10-27 06:21:04 +00:00
extern xmlEntityPtr xmlGetPredefinedEntity ( const CHAR * name ) ;
1998-08-13 03:39:55 +00:00
extern xmlEntityPtr xmlGetDocEntity ( xmlDocPtr doc , const CHAR * name ) ;
extern xmlEntityPtr xmlGetDtdEntity ( xmlDocPtr doc , const CHAR * name ) ;
1998-07-24 19:24:09 +00:00
extern CHAR * xmlEncodeEntities ( xmlDocPtr doc , const CHAR * input ) ;
extern xmlEntitiesTablePtr xmlCreateEntitiesTable ( void ) ;
1998-11-27 06:39:50 +00:00
extern xmlEntitiesTablePtr xmlCopyEntitiesTable ( xmlEntitiesTablePtr table ) ;
1998-07-24 19:24:09 +00:00
extern void xmlFreeEntitiesTable ( xmlEntitiesTablePtr table ) ;
1998-08-13 03:39:55 +00:00
extern void xmlDumpEntitiesTable ( xmlEntitiesTablePtr table ) ;
1998-10-27 06:21:04 +00:00
extern xmlParserInputPtr xmlNewEntityInputStream ( xmlParserCtxtPtr ctxt ,
xmlEntityPtr entity ) ;
1998-11-27 06:39:50 +00:00
extern xmlEntitiesTablePtr xmlCopyEntitiesTable ( xmlEntitiesTablePtr table ) ;
1998-07-24 19:24:09 +00:00
# ifdef __cplusplus
}
# endif
# endif /* __XML_ENTITIES_H__ */