2
* Summary: interface for the XML entities handling
3
* Description: this module provides some of the entity API needed
4
* for the parser and applications.
6
* Copy: See Copyright for the status of this software.
8
* Author: Daniel Veillard
11
#ifndef __XML_ENTITIES_H__
12
#define __XML_ENTITIES_H__
14
#include <libxml/xmlversion.h>
15
#include <libxml/tree.h>
22
* The different valid entity types.
25
XML_INTERNAL_GENERAL_ENTITY = 1,
26
XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
27
XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
28
XML_INTERNAL_PARAMETER_ENTITY = 4,
29
XML_EXTERNAL_PARAMETER_ENTITY = 5,
30
XML_INTERNAL_PREDEFINED_ENTITY = 6
34
* An unit of storage for an entity, contains the string, the value
35
* and the linkind data needed for the linking in the hash table.
39
void *_private; /* application data */
40
xmlElementType type; /* XML_ENTITY_DECL, must be second ! */
41
const xmlChar *name; /* Entity name */
42
struct _xmlNode *children; /* First child link */
43
struct _xmlNode *last; /* Last child link */
44
struct _xmlDtd *parent; /* -> DTD */
45
struct _xmlNode *next; /* next sibling link */
46
struct _xmlNode *prev; /* previous sibling link */
47
struct _xmlDoc *doc; /* the containing document */
49
xmlChar *orig; /* content without ref substitution */
50
xmlChar *content; /* content or ndata if unparsed */
51
int length; /* the content length */
52
xmlEntityType etype; /* The entity type */
53
const xmlChar *ExternalID; /* External identifier for PUBLIC */
54
const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */
56
struct _xmlEntity *nexte; /* unused */
57
const xmlChar *URI; /* the full URI as computed */
58
int owner; /* does the entity own the childrens */
62
* All entities are stored in an hash table.
63
* There is 2 separate hash tables for global and parameter entities.
66
typedef struct _xmlHashTable xmlEntitiesTable;
67
typedef xmlEntitiesTable *xmlEntitiesTablePtr;
73
#ifdef LIBXML_LEGACY_ENABLED
74
XMLPUBFUN void XMLCALL
75
xmlInitializePredefinedEntities (void);
76
#endif /* LIBXML_LEGACY_ENABLED */
77
XMLPUBFUN xmlEntityPtr XMLCALL
78
xmlAddDocEntity (xmlDocPtr doc,
81
const xmlChar *ExternalID,
82
const xmlChar *SystemID,
83
const xmlChar *content);
84
XMLPUBFUN xmlEntityPtr XMLCALL
85
xmlAddDtdEntity (xmlDocPtr doc,
88
const xmlChar *ExternalID,
89
const xmlChar *SystemID,
90
const xmlChar *content);
91
XMLPUBFUN xmlEntityPtr XMLCALL
92
xmlGetPredefinedEntity (const xmlChar *name);
93
XMLPUBFUN xmlEntityPtr XMLCALL
94
xmlGetDocEntity (xmlDocPtr doc,
96
XMLPUBFUN xmlEntityPtr XMLCALL
97
xmlGetDtdEntity (xmlDocPtr doc,
99
XMLPUBFUN xmlEntityPtr XMLCALL
100
xmlGetParameterEntity (xmlDocPtr doc,
101
const xmlChar *name);
102
#ifdef LIBXML_LEGACY_ENABLED
103
XMLPUBFUN const xmlChar * XMLCALL
104
xmlEncodeEntities (xmlDocPtr doc,
105
const xmlChar *input);
106
#endif /* LIBXML_LEGACY_ENABLED */
107
XMLPUBFUN xmlChar * XMLCALL
108
xmlEncodeEntitiesReentrant(xmlDocPtr doc,
109
const xmlChar *input);
110
XMLPUBFUN xmlChar * XMLCALL
111
xmlEncodeSpecialChars (xmlDocPtr doc,
112
const xmlChar *input);
113
XMLPUBFUN xmlEntitiesTablePtr XMLCALL
114
xmlCreateEntitiesTable (void);
115
#ifdef LIBXML_TREE_ENABLED
116
XMLPUBFUN xmlEntitiesTablePtr XMLCALL
117
xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
118
#endif /* LIBXML_TREE_ENABLED */
119
XMLPUBFUN void XMLCALL
120
xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
121
#ifdef LIBXML_OUTPUT_ENABLED
122
XMLPUBFUN void XMLCALL
123
xmlDumpEntitiesTable (xmlBufferPtr buf,
124
xmlEntitiesTablePtr table);
125
XMLPUBFUN void XMLCALL
126
xmlDumpEntityDecl (xmlBufferPtr buf,
128
#endif /* LIBXML_OUTPUT_ENABLED */
129
#ifdef LIBXML_LEGACY_ENABLED
130
XMLPUBFUN void XMLCALL
131
xmlCleanupPredefinedEntities(void);
132
#endif /* LIBXML_LEGACY_ENABLED */
139
# endif /* __XML_ENTITIES_H__ */