af662aa6923d845c30336b31536496034526ab4e
[platform/upstream/libxml2.git] / os400 / libxmlrpg / relaxng.rpgle
1       * Summary: implementation of the Relax-NG validation
2       * Description: implementation of the Relax-NG validation
3       *
4       * Copy: See Copyright for the status of this software.
5       *
6       * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
7
8       /if not defined(XML_RELAX_NG__)
9       /define XML_RELAX_NG__
10
11       /include "libxmlrpg/xmlversion"
12       /include "libxmlrpg/hash"
13       /include "libxmlrpg/xmlstring"
14
15       /if defined(LIBXML_SCHEMAS_ENABLED)
16
17      d xmlRelaxNGPtr   s               *   based(######typedef######)
18
19       * xmlRelaxNGValidityErrorFunc:
20       * @ctx: the validation context
21       * @msg: the message
22       * @...: extra arguments
23       *
24       * Signature of an error callback from a Relax-NG validation
25
26      d xmlRelaxNGValidityErrorFunc...
27      d                 s               *   based(######typedef######)
28      d                                     procptr
29
30       * xmlRelaxNGValidityWarningFunc:
31       * @ctx: the validation context
32       * @msg: the message
33       * @...: extra arguments
34       *
35       * Signature of a warning callback from a Relax-NG validation
36
37      d xmlRelaxNGValidityWarningFunc...
38      d                 s               *   based(######typedef######)
39      d                                     procptr
40
41       * A schemas validation context
42
43      d xmlRelaxNGParserCtxtPtr...
44      d                 s               *   based(######typedef######)
45
46      d xmlRelaxNGValidCtxtPtr...
47      d                 s               *   based(######typedef######)
48
49       * xmlRelaxNGValidErr:
50       *
51       * List of possible Relax NG validation errors
52
53      d xmlRelaxNGValidErr...
54      d                 s             10i 0 based(######typedef######)           enum
55      d  XML_RELAXNG_OK...
56      d                 c                   0
57      d  XML_RELAXNG_ERR_MEMORY...
58      d                 c                   1
59      d  XML_RELAXNG_ERR_TYPE...
60      d                 c                   2
61      d  XML_RELAXNG_ERR_TYPEVAL...
62      d                 c                   3
63      d  XML_RELAXNG_ERR_DUPID...
64      d                 c                   4
65      d  XML_RELAXNG_ERR_TYPECMP...
66      d                 c                   5
67      d  XML_RELAXNG_ERR_NOSTATE...
68      d                 c                   6
69      d  XML_RELAXNG_ERR_NODEFINE...
70      d                 c                   7
71      d  XML_RELAXNG_ERR_LISTEXTRA...
72      d                 c                   8
73      d  XML_RELAXNG_ERR_LISTEMPTY...
74      d                 c                   9
75      d  XML_RELAXNG_ERR_INTERNODATA...
76      d                 c                   10
77      d  XML_RELAXNG_ERR_INTERSEQ...
78      d                 c                   11
79      d  XML_RELAXNG_ERR_INTEREXTRA...
80      d                 c                   12
81      d  XML_RELAXNG_ERR_ELEMNAME...
82      d                 c                   13
83      d  XML_RELAXNG_ERR_ATTRNAME...
84      d                 c                   14
85      d  XML_RELAXNG_ERR_ELEMNONS...
86      d                 c                   15
87      d  XML_RELAXNG_ERR_ATTRNONS...
88      d                 c                   16
89      d  XML_RELAXNG_ERR_ELEMWRONGNS...
90      d                 c                   17
91      d  XML_RELAXNG_ERR_ATTRWRONGNS...
92      d                 c                   18
93      d  XML_RELAXNG_ERR_ELEMEXTRANS...
94      d                 c                   19
95      d  XML_RELAXNG_ERR_ATTREXTRANS...
96      d                 c                   20
97      d  XML_RELAXNG_ERR_ELEMNOTEMPTY...
98      d                 c                   21
99      d  XML_RELAXNG_ERR_NOELEM...
100      d                 c                   22
101      d  XML_RELAXNG_ERR_NOTELEM...
102      d                 c                   23
103      d  XML_RELAXNG_ERR_ATTRVALID...
104      d                 c                   24
105      d  XML_RELAXNG_ERR_CONTENTVALID...
106      d                 c                   25
107      d  XML_RELAXNG_ERR_EXTRACONTENT...
108      d                 c                   26
109      d  XML_RELAXNG_ERR_INVALIDATTR...
110      d                 c                   27
111      d  XML_RELAXNG_ERR_DATAELEM...
112      d                 c                   28
113      d  XML_RELAXNG_ERR_VALELEM...
114      d                 c                   29
115      d  XML_RELAXNG_ERR_LISTELEM...
116      d                 c                   30
117      d  XML_RELAXNG_ERR_DATATYPE...
118      d                 c                   31
119      d  XML_RELAXNG_ERR_VALUE...
120      d                 c                   32
121      d  XML_RELAXNG_ERR_LIST...
122      d                 c                   33
123      d  XML_RELAXNG_ERR_NOGRAMMAR...
124      d                 c                   34
125      d  XML_RELAXNG_ERR_EXTRADATA...
126      d                 c                   35
127      d  XML_RELAXNG_ERR_LACKDATA...
128      d                 c                   36
129      d  XML_RELAXNG_ERR_INTERNAL...
130      d                 c                   37
131      d  XML_RELAXNG_ERR_ELEMWRONG...
132      d                 c                   38
133      d  XML_RELAXNG_ERR_TEXTWRONG...
134      d                 c                   39
135
136       * xmlRelaxNGParserFlags:
137       *
138       * List of possible Relax NG Parser flags
139
140      d xmlRelaxNGParserFlag...
141      d                 s             10i 0 based(######typedef######)           enum
142      d  XML_RELAXNGP_NONE...
143      d                 c                   0
144      d  XML_RELAXNGP_FREE_DOC...
145      d                 c                   1
146      d  XML_RELAXNGP_CRNG...
147      d                 c                   2
148
149      d xmlRelaxNGInitTypes...
150      d                 pr            10i 0 extproc('xmlRelaxNGInitTypes')
151
152      d xmlRelaxNGCleanupTypes...
153      d                 pr                  extproc('xmlRelaxNGCleanupTypes')
154
155
156       * Interfaces for parsing.
157
158      d xmlRelaxNGNewParserCtxt...
159      d                 pr                  extproc('xmlRelaxNGNewParserCtxt')
160      d                                     like(xmlRelaxNGParserCtxtPtr)
161      d  URL                            *   value options(*string)               const char *
162
163      d xmlRelaxNGNewMemParserCtxt...
164      d                 pr                  extproc('xmlRelaxNGNewMemParserCtxt')
165      d                                     like(xmlRelaxNGParserCtxtPtr)
166      d  buffer                         *   value options(*string)               const char *
167      d  size                         10i 0 value
168
169      d xmlRelaxNGNewDocParserCtxt...
170      d                 pr                  extproc('xmlRelaxNGNewDocParserCtxt')
171      d                                     like(xmlRelaxNGParserCtxtPtr)
172      d  doc                                value like(xmlDocPtr)
173
174      d xmlRelaxParserSetFlag...
175      d                 pr            10i 0 extproc('xmlRelaxParserSetFlag')
176      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
177      d  flag                         10i 0 value
178
179      d xmlRelaxNGFreeParserCtxt...
180      d                 pr                  extproc('xmlRelaxNGFreeParserCtxt')
181      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
182
183      d xmlRelaxNGSetParserErrors...
184      d                 pr                  extproc('xmlRelaxNGSetParserErrors')
185      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
186      d  err                                value
187      d                                     like(xmlRelaxNGValidityErrorFunc)
188      d  warn                               value
189      d                                     like(xmlRelaxNGValidityWarningFunc)
190      d  ctx                            *   value                                void *
191
192      d xmlRelaxNGGetParserErrors...
193      d                 pr            10i 0 extproc('xmlRelaxNGGetParserErrors')
194      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
195      d  err                                like(xmlRelaxNGValidityErrorFunc)
196      d  warn                               like(xmlRelaxNGValidityWarningFunc)
197      d  ctx                            *                                        void *(*)
198
199      d xmlRelaxNGSetParserStructuredErrors...
200      d                 pr                  extproc(
201      d                                     'xmlRelaxNGSetParserStructuredErrors'
202      d                                     )
203      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
204      d  serror                             value like(xmlStructuredErrorFunc)
205      d  ctx                            *   value                                void *
206
207      d xmlRelaxNGParse...
208      d                 pr                  extproc('xmlRelaxNGParse')
209      d                                     like(xmlRelaxNGPtr)
210      d  ctxt                               value like(xmlRelaxNGParserCtxtPtr)
211
212      d xmlRelaxNGFree  pr                  extproc('xmlRelaxNGFree')
213      d  schema                             value like(xmlRelaxNGPtr)
214
215
216       /if defined(LIBXML_OUTPUT_ENABLED)
217      d xmlRelaxNGDump  pr                  extproc('xmlRelaxNGDump')
218      d  output                         *   value                                FILE *
219      d  schema                             value like(xmlRelaxNGPtr)
220
221      d xmlRelaxNGDumpTree...
222      d                 pr                  extproc('xmlRelaxNGDumpTree')
223      d  output                         *   value                                FILE *
224      d  schema                             value like(xmlRelaxNGPtr)
225       /endif                                                                    LIBXML_OUTPUT_ENABLD
226
227       * Interfaces for validating
228
229      d xmlRelaxNGSetValidErrors...
230      d                 pr                  extproc('xmlRelaxNGSetValidErrors')
231      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
232      d  err                                value
233      d                                     like(xmlRelaxNGValidityErrorFunc)
234      d  warn                               value
235      d                                     like(xmlRelaxNGValidityWarningFunc)
236      d  ctx                            *   value                                void *
237
238      d xmlRelaxNGGetValidErrors...
239      d                 pr            10i 0 extproc('xmlRelaxNGGetValidErrors')
240      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
241      d  err                                like(xmlRelaxNGValidityErrorFunc)
242      d  warn                               like(xmlRelaxNGValidityWarningFunc)
243      d  ctx                            *   value                                void * *
244
245      d xmlRelaxNGSetValidStructuredErrors...
246      d                 pr                  extproc(
247      d                                     'xmlRelaxNGSetValidStructuredErrors')
248      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
249      d  serror                             value like(xmlStructuredErrorFunc)
250      d  ctx                            *   value                                void *
251
252      d xmlRelaxNGNewValidCtxt...
253      d                 pr                  extproc('xmlRelaxNGNewValidCtxt')
254      d                                     like(xmlRelaxNGValidCtxtPtr)
255      d  schema                             value like(xmlRelaxNGPtr)
256
257      d xmlRelaxNGFreeValidCtxt...
258      d                 pr                  extproc('xmlRelaxNGFreeValidCtxt')
259      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
260
261      d xmlRelaxNGValidateDoc...
262      d                 pr            10i 0 extproc('xmlRelaxNGValidateDoc')
263      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
264      d  doc                                value like(xmlDocPtr)
265
266       * Interfaces for progressive validation when possible
267
268      d xmlRelaxNGValidatePushElement...
269      d                 pr            10i 0 extproc(
270      d                                     'xmlRelaxNGValidatePushElement')
271      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
272      d  doc                                value like(xmlDocPtr)
273      d  elem                               value like(xmlNodePtr)
274
275      d xmlRelaxNGValidatePushCData...
276      d                 pr            10i 0 extproc(
277      d                                     'xmlRelaxNGValidatePushCData')
278      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
279      d  data                           *   value options(*string)               const xmlChar *
280      d  len                          10i 0 value
281
282      d xmlRelaxNGValidatePopElement...
283      d                 pr            10i 0 extproc(
284      d                                     'xmlRelaxNGValidatePopElement')
285      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
286      d  doc                                value like(xmlDocPtr)
287      d  elem                               value like(xmlNodePtr)
288
289      d xmlRelaxNGValidateFullElement...
290      d                 pr            10i 0 extproc(
291      d                                     'xmlRelaxNGValidateFullElement')
292      d  ctxt                               value like(xmlRelaxNGValidCtxtPtr)
293      d  doc                                value like(xmlDocPtr)
294      d  elem                               value like(xmlNodePtr)
295
296       /endif                                                                    LIBXML_SCHEMAS_ENBLD
297       /endif                                                                    XML_RELAX_NG__