123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /*
- * Summary: interface for the XML entities handling
- * Description: this module provides some of the entity API needed
- * for the parser and applications.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
- #ifndef __XML_ENTITIES_H__
- #define __XML_ENTITIES_H__
- #include <libxml/xmlversion.h>
- #include <libxml/tree.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * The different valid entity types.
- */
- typedef enum {
- XML_INTERNAL_GENERAL_ENTITY = 1,
- XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
- XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
- XML_INTERNAL_PARAMETER_ENTITY = 4,
- XML_EXTERNAL_PARAMETER_ENTITY = 5,
- XML_INTERNAL_PREDEFINED_ENTITY = 6
- } xmlEntityType;
- /*
- * An unit of storage for an entity, contains the string, the value
- * and the linkind data needed for the linking in the hash table.
- */
- struct _xmlEntity {
- void *_private; /* application data */
- xmlElementType type; /* XML_ENTITY_DECL, must be second ! */
- const xmlChar *name; /* Entity name */
- struct _xmlNode *children; /* First child link */
- struct _xmlNode *last; /* Last child link */
- struct _xmlDtd *parent; /* -> DTD */
- struct _xmlNode *next; /* next sibling link */
- struct _xmlNode *prev; /* previous sibling link */
- struct _xmlDoc *doc; /* the containing document */
- xmlChar *orig; /* content without ref substitution */
- xmlChar *content; /* content or ndata if unparsed */
- int length; /* the content length */
- xmlEntityType etype; /* The entity type */
- const xmlChar *ExternalID; /* External identifier for PUBLIC */
- const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */
- struct _xmlEntity *nexte; /* unused */
- const xmlChar *URI; /* the full URI as computed */
- int owner; /* does the entity own the childrens */
- int checked; /* was the entity content checked */
- /* this is also used to count entites
- * references done from that entity */
- };
- /*
- * All entities are stored in an hash table.
- * There is 2 separate hash tables for global and parameter entities.
- */
- typedef struct _xmlHashTable xmlEntitiesTable;
- typedef xmlEntitiesTable *xmlEntitiesTablePtr;
- /*
- * External functions:
- */
- #ifdef LIBXML_LEGACY_ENABLED
- XMLPUBFUN void XMLCALL
- xmlInitializePredefinedEntities (void);
- #endif /* LIBXML_LEGACY_ENABLED */
- XMLPUBFUN xmlEntityPtr XMLCALL
- xmlNewEntity (xmlDocPtr doc,
- const xmlChar *name,
- int type,
- const xmlChar *ExternalID,
- const xmlChar *SystemID,
- const xmlChar *content);
- XMLPUBFUN xmlEntityPtr XMLCALL
- xmlAddDocEntity (xmlDocPtr doc,
- const xmlChar *name,
- int type,
- const xmlChar *ExternalID,
- const xmlChar *SystemID,
- const xmlChar *content);
- XMLPUBFUN xmlEntityPtr XMLCALL
- xmlAddDtdEntity (xmlDocPtr doc,
- const xmlChar *name,
- int type,
- const xmlChar *ExternalID,
- const xmlChar *SystemID,
- const xmlChar *content);
- XMLPUBFUN xmlEntityPtr XMLCALL
- xmlGetPredefinedEntity (const xmlChar *name);
- XMLPUBFUN xmlEntityPtr XMLCALL
- xmlGetDocEntity (xmlDocPtr doc,
- const xmlChar *name);
- XMLPUBFUN xmlEntityPtr XMLCALL
- xmlGetDtdEntity (xmlDocPtr doc,
- const xmlChar *name);
- XMLPUBFUN xmlEntityPtr XMLCALL
- xmlGetParameterEntity (xmlDocPtr doc,
- const xmlChar *name);
- #ifdef LIBXML_LEGACY_ENABLED
- XMLPUBFUN const xmlChar * XMLCALL
- xmlEncodeEntities (xmlDocPtr doc,
- const xmlChar *input);
- #endif /* LIBXML_LEGACY_ENABLED */
- XMLPUBFUN xmlChar * XMLCALL
- xmlEncodeEntitiesReentrant(xmlDocPtr doc,
- const xmlChar *input);
- XMLPUBFUN xmlChar * XMLCALL
- xmlEncodeSpecialChars (xmlDocPtr doc,
- const xmlChar *input);
- XMLPUBFUN xmlEntitiesTablePtr XMLCALL
- xmlCreateEntitiesTable (void);
- #ifdef LIBXML_TREE_ENABLED
- XMLPUBFUN xmlEntitiesTablePtr XMLCALL
- xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
- #endif /* LIBXML_TREE_ENABLED */
- XMLPUBFUN void XMLCALL
- xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
- #ifdef LIBXML_OUTPUT_ENABLED
- XMLPUBFUN void XMLCALL
- xmlDumpEntitiesTable (xmlBufferPtr buf,
- xmlEntitiesTablePtr table);
- XMLPUBFUN void XMLCALL
- xmlDumpEntityDecl (xmlBufferPtr buf,
- xmlEntityPtr ent);
- #endif /* LIBXML_OUTPUT_ENABLED */
- #ifdef LIBXML_LEGACY_ENABLED
- XMLPUBFUN void XMLCALL
- xmlCleanupPredefinedEntities(void);
- #endif /* LIBXML_LEGACY_ENABLED */
- #ifdef __cplusplus
- }
- #endif
- # endif /* __XML_ENTITIES_H__ */
|