Blame include/libxml/entities.h

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