1998-07-24 23:24:09 +04:00
/*
* entities . h : interface for the XML entities handking
*
* See Copyright for the status of this software .
*
1999-01-17 22:11:59 +03:00
* Daniel . Veillard @ w3 . org
1998-07-24 23:24:09 +04:00
*/
# ifndef __XML_ENTITIES_H__
# define __XML_ENTITIES_H__
1998-10-27 09:21:04 +03:00
# include "parser.h"
1998-07-24 23:24:09 +04:00
# ifdef __cplusplus
extern " C " {
# endif
1998-08-13 07:39:55 +04: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 08:51:30 +03:00
# define XML_INTERNAL_PREDEFINED_ENTITY 6
1998-08-13 07:39:55 +04:00
1998-07-24 23:24:09 +04: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 07:39:55 +04: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 */
1999-02-22 13:33:01 +03:00
} xmlEntity ;
typedef xmlEntity * xmlEntityPtr ;
1998-07-24 23:24:09 +04:00
/*
* 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 09:39:50 +03:00
xmlEntityPtr table ; /* the table of entities */
1999-02-22 13:33:01 +03:00
} xmlEntitiesTable ;
typedef xmlEntitiesTable * xmlEntitiesTablePtr ;
1998-07-24 23:24:09 +04:00
1998-10-27 09:21:04 +03:00
1998-07-24 23:24:09 +04:00
/*
* External functions :
*/
1999-02-22 13:33:01 +03:00
void xmlAddDocEntity ( xmlDocPtr doc , const CHAR * name , int type ,
1998-08-13 07:39:55 +04:00
const CHAR * ExternalID , const CHAR * SystemID , CHAR * content ) ;
1999-02-22 13:33:01 +03:00
void xmlAddDtdEntity ( xmlDocPtr doc , const CHAR * name , int type ,
1998-08-13 07:39:55 +04:00
const CHAR * ExternalID , const CHAR * SystemID , CHAR * content ) ;
1999-02-22 13:33:01 +03:00
xmlEntityPtr xmlGetPredefinedEntity ( const CHAR * name ) ;
xmlEntityPtr xmlGetDocEntity ( xmlDocPtr doc , const CHAR * name ) ;
xmlEntityPtr xmlGetDtdEntity ( xmlDocPtr doc , const CHAR * name ) ;
CHAR * xmlEncodeEntities ( xmlDocPtr doc , const CHAR * input ) ;
xmlEntitiesTablePtr xmlCreateEntitiesTable ( void ) ;
xmlEntitiesTablePtr xmlCopyEntitiesTable ( xmlEntitiesTablePtr table ) ;
void xmlFreeEntitiesTable ( xmlEntitiesTablePtr table ) ;
void xmlDumpEntitiesTable ( xmlEntitiesTablePtr table ) ;
xmlParserInputPtr xmlNewEntityInputStream ( xmlParserCtxtPtr ctxt ,
1998-10-27 09:21:04 +03:00
xmlEntityPtr entity ) ;
1999-02-22 13:33:01 +03:00
xmlEntitiesTablePtr xmlCopyEntitiesTable ( xmlEntitiesTablePtr table ) ;
1998-07-24 23:24:09 +04:00
# ifdef __cplusplus
}
# endif
# endif /* __XML_ENTITIES_H__ */