Annotation of embedaddon/libxml2/include/libxml/entities.h, revision 1.1.1.1
1.1 misho 1: /*
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.
5: *
6: * Copy: See Copyright for the status of this software.
7: *
8: * Author: Daniel Veillard
9: */
10:
11: #ifndef __XML_ENTITIES_H__
12: #define __XML_ENTITIES_H__
13:
14: #include <libxml/xmlversion.h>
15: #include <libxml/tree.h>
16:
17: #ifdef __cplusplus
18: extern "C" {
19: #endif
20:
21: /*
22: * The different valid entity types.
23: */
24: typedef enum {
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
31: } xmlEntityType;
32:
33: /*
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.
36: */
37:
38: struct _xmlEntity {
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 */
48:
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 */
55:
56: struct _xmlEntity *nexte; /* unused */
57: const xmlChar *URI; /* the full URI as computed */
58: int owner; /* does the entity own the childrens */
59: int checked; /* was the entity content checked */
60: /* this is also used to count entites
61: * references done from that entity */
62: };
63:
64: /*
65: * All entities are stored in an hash table.
66: * There is 2 separate hash tables for global and parameter entities.
67: */
68:
69: typedef struct _xmlHashTable xmlEntitiesTable;
70: typedef xmlEntitiesTable *xmlEntitiesTablePtr;
71:
72: /*
73: * External functions:
74: */
75:
76: #ifdef LIBXML_LEGACY_ENABLED
77: XMLPUBFUN void XMLCALL
78: xmlInitializePredefinedEntities (void);
79: #endif /* LIBXML_LEGACY_ENABLED */
80:
81: XMLPUBFUN xmlEntityPtr XMLCALL
82: xmlNewEntity (xmlDocPtr doc,
83: const xmlChar *name,
84: int type,
85: const xmlChar *ExternalID,
86: const xmlChar *SystemID,
87: const xmlChar *content);
88: XMLPUBFUN xmlEntityPtr XMLCALL
89: xmlAddDocEntity (xmlDocPtr doc,
90: const xmlChar *name,
91: int type,
92: const xmlChar *ExternalID,
93: const xmlChar *SystemID,
94: const xmlChar *content);
95: XMLPUBFUN xmlEntityPtr XMLCALL
96: xmlAddDtdEntity (xmlDocPtr doc,
97: const xmlChar *name,
98: int type,
99: const xmlChar *ExternalID,
100: const xmlChar *SystemID,
101: const xmlChar *content);
102: XMLPUBFUN xmlEntityPtr XMLCALL
103: xmlGetPredefinedEntity (const xmlChar *name);
104: XMLPUBFUN xmlEntityPtr XMLCALL
105: xmlGetDocEntity (xmlDocPtr doc,
106: const xmlChar *name);
107: XMLPUBFUN xmlEntityPtr XMLCALL
108: xmlGetDtdEntity (xmlDocPtr doc,
109: const xmlChar *name);
110: XMLPUBFUN xmlEntityPtr XMLCALL
111: xmlGetParameterEntity (xmlDocPtr doc,
112: const xmlChar *name);
113: #ifdef LIBXML_LEGACY_ENABLED
114: XMLPUBFUN const xmlChar * XMLCALL
115: xmlEncodeEntities (xmlDocPtr doc,
116: const xmlChar *input);
117: #endif /* LIBXML_LEGACY_ENABLED */
118: XMLPUBFUN xmlChar * XMLCALL
119: xmlEncodeEntitiesReentrant(xmlDocPtr doc,
120: const xmlChar *input);
121: XMLPUBFUN xmlChar * XMLCALL
122: xmlEncodeSpecialChars (xmlDocPtr doc,
123: const xmlChar *input);
124: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
125: xmlCreateEntitiesTable (void);
126: #ifdef LIBXML_TREE_ENABLED
127: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
128: xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
129: #endif /* LIBXML_TREE_ENABLED */
130: XMLPUBFUN void XMLCALL
131: xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
132: #ifdef LIBXML_OUTPUT_ENABLED
133: XMLPUBFUN void XMLCALL
134: xmlDumpEntitiesTable (xmlBufferPtr buf,
135: xmlEntitiesTablePtr table);
136: XMLPUBFUN void XMLCALL
137: xmlDumpEntityDecl (xmlBufferPtr buf,
138: xmlEntityPtr ent);
139: #endif /* LIBXML_OUTPUT_ENABLED */
140: #ifdef LIBXML_LEGACY_ENABLED
141: XMLPUBFUN void XMLCALL
142: xmlCleanupPredefinedEntities(void);
143: #endif /* LIBXML_LEGACY_ENABLED */
144:
145:
146: #ifdef __cplusplus
147: }
148: #endif
149:
150: # endif /* __XML_ENTITIES_H__ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>