1      * Summary: interface for the XML entities handling
2      * Description: this module provides some of the entity API needed
3      *              for the parser and applications.
4      *
5      * Copy: See Copyright for the status of this software.
6      *
7      * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
8
9      /if not defined(XML_ENTITIES_H__)
10      /define XML_ENTITIES_H__
11
12      /include "libxmlrpg/xmlversion"
13      /include "libxmlrpg/tree"
14
15      * The different valid entity types.
16
17     d xmlEntityType   s             10i 0 based(######typedef######)           enum
18     d  XML_INTERNAL_GENERAL_ENTITY...
19     d                 c                   1
20     d  XML_EXTERNAL_GENERAL_PARSED_ENTITY...
21     d                 c                   2
22     d  XML_EXTERNAL_GENERAL_UNPARSED_ENTITY...
23     d                 c                   3
24     d  XML_INTERNAL_PARAMETER_ENTITY...
25     d                 c                   4
26     d  XML_EXTERNAL_PARAMETER_ENTITY...
27     d                 c                   5
28     d  XML_INTERNAL_PREDEFINED_ENTITY...
29     d                 c                   6
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     d xmlEntity       ds                  based(xmlEntityPtr)
35     d                                     align qualified
36     d  #private                       *                                        void *
37     d  type                               like(xmlElementType)                 XML_ENTITY_DECL
38     d  name                           *                                        const xmlChar *
39     d  children                           like(xmlNodePtr)                     First child link
40     d  last                               like(xmlNodePtr)                     Last child link
41     d  parent                             like(xmlDtdPtr)                      -> DTD
42     d  next                               like(xmlNodePtr)                     next sibling link
43     d  prev                               like(xmlNodePtr)                     prev sibling link
44     d  doc                                like(xmlDocPtr)                      containing document
45     d  orig                           *                                        xmlChar *
46     d  content                        *                                        xmlChar *
47     d  length                       10i 0                                      content length
48     d  etype                              like(xmlEntityType)                  The entity type
49     d  ExternalID                     *                                        const xmlChar *
50     d  SystemlID                      *                                        const xmlChar *
51     d  nexte                              like(xmlEntityPtr)                   unused
52     d  URI                            *                                        const xmlChar *
53     d  owner                        10i 0                                      Owns children ?
54     d  checked                      10i 0                                      Content checked ?
55
56      * All entities are stored in an hash table.
57      * There is 2 separate hash tables for global and parameter entities.
58
59     d xmlEntitiesTablePtr...
60     d                 s               *   based(######typedef######)
61
62      * External functions:
63
64      /if defined(LIBXML_LEGACY_ENABLED)
65     d xmlInitializePredefinedEntities...
66     d                 pr                  extproc(
67     d                                      'xmlInitializePredefinedEntities')
68      /endif                                                                    LIBXML_LEGACY_ENABLD
69
70     d xmlNewEntity    pr                  extproc('xmlNewEntity')
71     d                                     like(xmlEntityPtr)
72     d  doc                                value like(xmlDocPtr)
73     d  name                           *   value options(*string)               const xmlChar *
74     d  type                         10i 0 value
75     d  ExternalID                     *   value options(*string)               const xmlChar *
76     d  SystemID                       *   value options(*string)               const xmlChar *
77     d  content                        *   value options(*string)               const xmlChar *
78
79     d xmlAddDocEntity...
80     d                 pr                  extproc('xmlAddDocEntity')
81     d                                     like(xmlEntityPtr)
82     d  doc                                value like(xmlDocPtr)
83     d  name                           *   value options(*string)               const xmlChar *
84     d  type                         10i 0 value
85     d  ExternalID                     *   value options(*string)               const xmlChar *
86     d  SystemID                       *   value options(*string)               const xmlChar *
87     d  content                        *   value options(*string)               const xmlChar *
88
89     d xmlAddDtdEntity...
90     d                 pr                  extproc('xmlAddDtdEntity')
91     d                                     like(xmlEntityPtr)
92     d  doc                                value like(xmlDocPtr)
93     d  name                           *   value options(*string)               const xmlChar *
94     d  type                         10i 0 value
95     d  ExternalID                     *   value options(*string)               const xmlChar *
96     d  SystemID                       *   value options(*string)               const xmlChar *
97     d  content                        *   value options(*string)               const xmlChar *
98
99     d xmlGetPredefinedEntity...
100     d                 pr                  extproc('xmlGetPredefinedEntity')
101     d                                     like(xmlEntityPtr)
102     d  name                           *   value options(*string)               const xmlChar *
103
104     d xmlGetDocEntity...
105     d                 pr                  extproc('xmlGetDocEntity')
106     d                                     like(xmlEntityPtr)
107     d  doc                                value like(xmlDocPtr)
108     d  name                           *   value options(*string)               const xmlChar *
109
110     d xmlGetDtdEntity...
111     d                 pr                  extproc('xmlGetDtdEntity')
112     d                                     like(xmlEntityPtr)
113     d  doc                                value like(xmlDocPtr)
114     d  name                           *   value options(*string)               const xmlChar *
115
116     d xmlGetParameterEntity...
117     d                 pr                  extproc('xmlGetParameterEntity')
118     d                                     like(xmlEntityPtr)
119     d  doc                                value like(xmlDocPtr)
120     d  name                           *   value options(*string)               const xmlChar *
121
122
123      /if defined(LIBXML_LEGACY_ENABLED)
124     d xmlEncodeEntities...
125     d                 pr              *   extproc('xmlEncodeEntities')         xmlChar *
126     d  doc                                value like(xmlDocPtr)
127     d  input                          *   value options(*string)               const xmlChar *
128      /endif                                                                    LIBXML_LEGACY_ENABLD
129
130     d xmlEncodeEntitiesReentrant...
131     d                 pr              *   extproc(                             xmlChar *
132     d                                      'xmlEncodeEntitiesReentrant')
133     d  doc                                value like(xmlDocPtr)
134     d  input                          *   value options(*string)               const xmlChar *
135XMLPU
136     d xmlEncodeSpecialChars...
137     d                 pr              *   extproc('xmlSpecialChars')           xmlChar *
138     d  doc                                value like(xmlDocPtr)
139     d  input                          *   value options(*string)               const xmlChar *
140XMLPU
141     d xmlCreateEntitiesTable...
142     d                 pr                  extproc('xmlCreateEntitiesTable')
143     d                                     like(xmlEntitiesTablePtr)
144
145      /if defined(LIBXML_TREE_ENABLED)
146     d xmlCopyEntitiesTable...
147     d                 pr                  extproc('xmlCopyEntitiesTable')
148     d                                     like(xmlEntitiesTablePtr)
149     d  table                              value like(xmlEntitiesTablePtr)
150      /endif                                                                    LIBXML_TREE_ENABLED
151
152     d xmlFreeEntitiesTable...
153     d                 pr                  extproc('xmlFreeEntitiesTable')
154     d  table                              value like(xmlEntitiesTablePtr)
155XMLPU
156      /if defined(LIBXML_OUTPUT_ENABLED)
157     d xmlDumpEntitiesTable...
158     d                 pr                  extproc('xmlDumpEntitiesTable')
159     d  buf                                value like(xmlBufferPtr)
160     d  table                              value like(xmlEntitiesTablePtr)
161XMLPU
162     d xmlDumpEntityDecl...
163     d                 pr                  extproc('xmlDumpEntityDecl')
164     d  buf                                value like(xmlBufferPtr)
165     d  ent                                value like(xmlEntityPtr)
166      /endif                                                                    LIBXML_OUTPUT_ENABLD
167
168      /if defined(LIBXML_LEGACY_ENABLED)
169     d xmlCleanupPredefinedEntities...
170     d                 pr                  extproc(
171XMLPUd                                      'xmlCleanupPredefinedEntities')
172      /endif                                                                    LIBXML_LEGACY_ENABLD
173
174      /endif                                                                    XML_ENTITIES_H__
175