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__
1999-04-05 16:20:10 +04:00
# include "tree.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 */
1999-09-24 02:19:22 +04:00
const xmlChar * name ; /* Name of the entity */
const xmlChar * ExternalID ; /* External identifier for PUBLIC Entity */
const xmlChar * SystemID ; /* URI for a SYSTEM or PUBLIC Entity */
xmlChar * content ; /* The entity content or ndata if unparsed */
xmlChar * orig ; /* The entity cont without ref substitution */
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-04-05 16:20:10 +04:00
# include "parser.h"
1999-08-30 01:02:19 +04:00
void xmlAddDocEntity ( xmlDocPtr doc ,
1999-09-24 02:19:22 +04:00
const xmlChar * name ,
1999-08-30 01:02:19 +04:00
int type ,
1999-09-24 02:19:22 +04:00
const xmlChar * ExternalID ,
const xmlChar * SystemID ,
const xmlChar * content ) ;
1999-08-30 01:02:19 +04:00
void xmlAddDtdEntity ( xmlDocPtr doc ,
1999-09-24 02:19:22 +04:00
const xmlChar * name ,
1999-08-30 01:02:19 +04:00
int type ,
1999-09-24 02:19:22 +04:00
const xmlChar * ExternalID ,
const xmlChar * SystemID ,
const xmlChar * content ) ;
xmlEntityPtr xmlGetPredefinedEntity ( const xmlChar * name ) ;
1999-08-30 01:02:19 +04:00
xmlEntityPtr xmlGetDocEntity ( xmlDocPtr doc ,
1999-09-24 02:19:22 +04:00
const xmlChar * name ) ;
1999-08-30 01:02:19 +04:00
xmlEntityPtr xmlGetDtdEntity ( xmlDocPtr doc ,
1999-09-24 02:19:22 +04:00
const xmlChar * name ) ;
1999-08-30 01:02:19 +04:00
xmlEntityPtr xmlGetParameterEntity ( xmlDocPtr doc ,
1999-09-24 02:19:22 +04:00
const xmlChar * name ) ;
const xmlChar * xmlEncodeEntities ( xmlDocPtr doc ,
const xmlChar * input ) ;
xmlChar * xmlEncodeEntitiesReentrant ( xmlDocPtr doc ,
const xmlChar * input ) ;
1999-08-30 01:02:19 +04:00
xmlEntitiesTablePtr xmlCreateEntitiesTable ( void ) ;
xmlEntitiesTablePtr xmlCopyEntitiesTable ( xmlEntitiesTablePtr table ) ;
void xmlFreeEntitiesTable ( xmlEntitiesTablePtr table ) ;
void xmlDumpEntitiesTable ( xmlBufferPtr buf ,
xmlEntitiesTablePtr table ) ;
xmlEntitiesTablePtr xmlCopyEntitiesTable ( xmlEntitiesTablePtr table ) ;
1998-07-24 23:24:09 +04:00
# ifdef __cplusplus
}
# endif
# endif /* __XML_ENTITIES_H__ */