added Info.plist
[TestXSLT.git] / libxml2 / include / libxml / entities.h
1 /*
2  * entities.h : interface for the XML entities handling
3  *
4  * See Copyright for the status of this software.
5  *
6  * daniel@veillard.com
7  */
8
9 #ifndef __XML_ENTITIES_H__
10 #define __XML_ENTITIES_H__
11
12 #include <libxml/tree.h>
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 /*
19  * The different valid entity types.
20  */
21 typedef enum {
22     XML_INTERNAL_GENERAL_ENTITY = 1,
23     XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
24     XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
25     XML_INTERNAL_PARAMETER_ENTITY = 4,
26     XML_EXTERNAL_PARAMETER_ENTITY = 5,
27     XML_INTERNAL_PREDEFINED_ENTITY = 6
28 } xmlEntityType;
29
30 /*
31  * An unit of storage for an entity, contains the string, the value
32  * and the linkind data needed for the linking in the hash table.
33  */
34
35 struct _xmlEntity {
36     void           *_private;           /* application data */
37     xmlElementType          type;       /* XML_ENTITY_DECL, must be second ! */
38     const xmlChar          *name;       /* Entity name */
39     struct _xmlNode    *children;       /* First child link */
40     struct _xmlNode        *last;       /* Last child link */
41     struct _xmlDtd       *parent;       /* -> DTD */
42     struct _xmlNode        *next;       /* next sibling link  */
43     struct _xmlNode        *prev;       /* previous sibling link  */
44     struct _xmlDoc          *doc;       /* the containing document */
45
46     xmlChar                *orig;       /* content without ref substitution */
47     xmlChar             *content;       /* content or ndata if unparsed */
48     int                   length;       /* the content length */
49     xmlEntityType          etype;       /* The entity type */
50     const xmlChar    *ExternalID;       /* External identifier for PUBLIC */
51     const xmlChar      *SystemID;       /* URI for a SYSTEM or PUBLIC Entity */
52
53     struct _xmlEntity     *nexte;       /* unused */
54     const xmlChar           *URI;       /* the full URI as computed */
55     int                    owner;       /* does the entity own the childrens */
56 };
57
58 /*
59  * All entities are stored in an hash table.
60  * There is 2 separate hash tables for global and parameter entities.
61  */
62
63 typedef struct _xmlHashTable xmlEntitiesTable;
64 typedef xmlEntitiesTable *xmlEntitiesTablePtr;
65
66 /*
67  * External functions:
68  */
69
70 void            xmlInitializePredefinedEntities (void);
71 xmlEntityPtr            xmlAddDocEntity         (xmlDocPtr doc,
72                                                  const xmlChar *name,
73                                                  int type,
74                                                  const xmlChar *ExternalID,
75                                                  const xmlChar *SystemID,
76                                                  const xmlChar *content);
77 xmlEntityPtr            xmlAddDtdEntity         (xmlDocPtr doc,
78                                                  const xmlChar *name,
79                                                  int type,
80                                                  const xmlChar *ExternalID,
81                                                  const xmlChar *SystemID,
82                                                  const xmlChar *content);
83 xmlEntityPtr            xmlGetPredefinedEntity  (const xmlChar *name);
84 xmlEntityPtr            xmlGetDocEntity         (xmlDocPtr doc,
85                                                  const xmlChar *name);
86 xmlEntityPtr            xmlGetDtdEntity         (xmlDocPtr doc,
87                                                  const xmlChar *name);
88 xmlEntityPtr            xmlGetParameterEntity   (xmlDocPtr doc,
89                                                  const xmlChar *name);
90 const xmlChar *         xmlEncodeEntities       (xmlDocPtr doc,
91                                                  const xmlChar *input);
92 xmlChar *               xmlEncodeEntitiesReentrant(xmlDocPtr doc,
93                                                  const xmlChar *input);
94 xmlChar *               xmlEncodeSpecialChars   (xmlDocPtr doc,
95                                                  const xmlChar *input);
96 xmlEntitiesTablePtr     xmlCreateEntitiesTable  (void);
97 xmlEntitiesTablePtr     xmlCopyEntitiesTable    (xmlEntitiesTablePtr table);
98 void                    xmlFreeEntitiesTable    (xmlEntitiesTablePtr table);
99 void                    xmlDumpEntitiesTable    (xmlBufferPtr buf,
100                                                  xmlEntitiesTablePtr table);
101 void                    xmlDumpEntityDecl       (xmlBufferPtr buf,
102                                                  xmlEntityPtr ent);
103 void                    xmlCleanupPredefinedEntities(void);
104
105
106 #ifdef __cplusplus
107 }
108 #endif
109
110 # endif /* __XML_ENTITIES_H__ */