1      * Summary: incomplete XML Schemas structure implementation
2      * Description: interface to the XML Schemas handling and schema validity
3      *              checking, it is incomplete right now.
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_SCHEMA_H__)
10      /define XML_SCHEMA_H__
11
12      /include "libxmlrpg/xmlversion"
13
14      /if defined(LIBXML_SCHEMAS_ENABLED)
15
16      /include "libxmlrpg/tree"
17
18      * This error codes are obsolete; not used any more.
19
20     d xmlSchemaValidError...
21     d                 s             10i 0 based(######typedef######)           enum
22     d  XML_SCHEMAS_ERR_OK...
23     d                 c                   0
24     d  XML_SCHEMAS_ERR_NOROOT...
25     d                 c                   1
26     d  XML_SCHEMAS_ERR_UNDECLAREDELEM...
27     d                 c                   2
28     d  XML_SCHEMAS_ERR_NOTTOPLEVEL...
29     d                 c                   3
30     d  XML_SCHEMAS_ERR_MISSING...
31     d                 c                   4
32     d  XML_SCHEMAS_ERR_WRONGELEM...
33     d                 c                   5
34     d  XML_SCHEMAS_ERR_NOTYPE...
35     d                 c                   6
36     d  XML_SCHEMAS_ERR_NOROLLBACK...
37     d                 c                   7
38     d  XML_SCHEMAS_ERR_ISABSTRACT...
39     d                 c                   8
40     d  XML_SCHEMAS_ERR_NOTEMPTY...
41     d                 c                   9
42     d  XML_SCHEMAS_ERR_ELEMCONT...
43     d                 c                   10
44     d  XML_SCHEMAS_ERR_HAVEDEFAULT...
45     d                 c                   11
46     d  XML_SCHEMAS_ERR_NOTNILLABLE...
47     d                 c                   12
48     d  XML_SCHEMAS_ERR_EXTRACONTENT...
49     d                 c                   13
50     d  XML_SCHEMAS_ERR_INVALIDATTR...
51     d                 c                   14
52     d  XML_SCHEMAS_ERR_INVALIDELEM...
53     d                 c                   15
54     d  XML_SCHEMAS_ERR_NOTDETERMINIST...
55     d                 c                   16
56     d  XML_SCHEMAS_ERR_CONSTRUCT...
57     d                 c                   17
58     d  XML_SCHEMAS_ERR_INTERNAL...
59     d                 c                   18
60     d  XML_SCHEMAS_ERR_NOTSIMPLE...
61     d                 c                   19
62     d  XML_SCHEMAS_ERR_ATTRUNKNOWN...
63     d                 c                   20
64     d  XML_SCHEMAS_ERR_ATTRINVALID...
65     d                 c                   21
66     d  XML_SCHEMAS_ERR_VALUE...
67     d                 c                   22
68     d  XML_SCHEMAS_ERR_FACET...
69     d                 c                   23
70     d  XML_SCHEMAS_ERR_...
71     d                 c                   24
72     d  XML_SCHEMAS_ERR_XXX...
73     d                 c                   25
74
75      * ATTENTION: Change xmlSchemaSetValidOptions's check
76      * for invalid values, if adding to the validation
77      * options below.
78
79      * xmlSchemaValidOption:
80      *
81      * This is the set of XML Schema validation options.
82
83     d xmlSchemaValidOption...
84     d                 s             10i 0 based(######typedef######)           enum
85      *
86      * Default/fixed: create an attribute node
87      * or an element's text node on the instance.
88      *
89     d  XML_SCHEMA_VAL_VC_I_CREATE...
90     d                 c                   X'0001'
91      /if defined(DISABLED)
92      *
93      * assemble schemata using
94      * xsi:schemaLocation and
95      * xsi:noNamespaceSchemaLocation
96      *
97     d  XML_SCHEMA_VAL_XSI_ASSEMBLE...
98     d                 c                   X'0002'
99      /endif
100
101      * The schemas related types are kept internal
102
103     d xmlSchemaPtr    s               *   based(######typedef######)
104
105      * xmlSchemaValidityErrorFunc:
106      * @ctx: the validation context
107      * @msg: the message
108      * @...: extra arguments
109      *
110      * Signature of an error callback from an XSD validation
111
112     d xmlSchemaValidityErrorFunc...
113     d                 s               *   based(######typedef######)
114     d                                     procptr
115
116      * xmlSchemaValidityWarningFunc:
117      * @ctx: the validation context
118      * @msg: the message
119      * @...: extra arguments
120      *
121      * Signature of a warning callback from an XSD validation
122
123     d xmlSchemaValidityWarningFunc...
124     d                 s               *   based(######typedef######)
125     d                                     procptr
126
127      * A schemas validation context
128
129     d xmlSchemaParserCtxtPtr...
130     d                 s               *   based(######typedef######)
131
132     d xmlSchemaValidCtxtPtr...
133     d                 s               *   based(######typedef######)
134
135      * xmlSchemaValidityLocatorFunc:
136      * @ctx: user provided context
137      * @file: returned file information
138      * @line: returned line information
139      *
140      * A schemas validation locator, a callback called by the validator.
141      * This is used when file or node informations are not available
142      * to find out what file and line number are affected
143      *
144      * Returns: 0 in case of success and -1 in case of error
145
146     d xmlSchemaValidityLocatorFunc...
147     d                 s               *   based(######typedef######)
148     d                                     procptr
149
150      * Interfaces for parsing.
151
152     d xmlSchemaNewParserCtxt...
153     d                 pr                  extproc('xmlSchemaNewParserCtxt')
154     d                                     like(xmlSchemaParserCtxtPtr)
155     d URL                             *   value options(*string)               const char *
156
157     d xmlSchemaNewMemParserCtxt...
158     d                 pr                  extproc('xmlSchemaNewMemParserCtxt')
159     d                                     like(xmlSchemaParserCtxtPtr)
160     d buffer                          *   value options(*string)               const char *
161     d size                          10i 0 value
162
163     d xmlSchemaNewDocParserCtxt...
164     d                 pr                  extproc('xmlSchemaNewDocParserCtxt')
165     d                                     like(xmlSchemaParserCtxtPtr)
166     d doc                                 value like(xmlDocPtr)
167
168     d xmlSchemaFreeParserCtxt...
169     d                 pr                  extproc('xmlSchemaFreeParserCtxt')
170     d ctxt                                value like(xmlSchemaParserCtxtPtr)
171
172     d xmlSchemaSetParserErrors...
173     d                 pr                  extproc('xmlSchemaSetParserErrors')
174     d ctxt                                value like(xmlSchemaParserCtxtPtr)
175     d err                                 value
176     d                                     like(xmlSchemaValidityErrorFunc)
177     d warn                                value
178     d                                     like(xmlSchemaValidityWarningFunc)
179     d ctx                             *   value                                void *
180
181     d xmlSchemaSetParserStructuredErrors...
182     d                 pr                  extproc(
183     d                                     'xmlSchemaSetParserStructuredErrors')
184     d ctxt                                value like(xmlSchemaParserCtxtPtr)
185     d serror                              value like(xmlStructuredErrorFunc)
186     d ctx                             *   value                                void *
187
188     d xmlSchemaGetParserErrors...
189     d                 pr            10i 0 extproc('xmlSchemaGetParserErrors')
190     d ctxt                                value like(xmlSchemaParserCtxtPtr)
191     d err                                 like(xmlSchemaValidityErrorFunc)
192     d warn                                like(xmlSchemaValidityWarningFunc)
193     d ctx                             *                                        void *(*)
194
195     d xmlSchemaIsValid...
196     d                 pr            10i 0 extproc('xmlSchemaIsValid')
197     d ctxt                                value like(xmlSchemaValidCtxtPtr)
198
199     d xmlSchemaParse  pr                  extproc('xmlSchemaParse')
200     d                                     like(xmlSchemaPtr)
201     d ctxt                                value like(xmlSchemaParserCtxtPtr)
202
203     d xmlSchemaFree   pr                  extproc('xmlSchemaFree')
204     d schema                              value like(xmlSchemaPtr)
205
206      /if defined(LIBXML_OUTPUT_ENABLED)
207     d xmlSchemaDump   pr                  extproc('xmlSchemaDump')
208     d output                          *   value                                FILE *
209     d schema                              value like(xmlSchemaPtr)
210      /endif                                                                    LIBXML_OUTPUT_ENABLD
211
212      * Interfaces for validating
213
214     d xmlSchemaSetValidErrors...
215     d                 pr                  extproc('xmlSchemaSetValidErrors')
216     d ctxt                                value like(xmlSchemaValidCtxtPtr)
217     d err                                 value
218     d                                     like(xmlSchemaValidityErrorFunc)
219     d warn                                value
220     d                                     like(xmlSchemaValidityWarningFunc)
221     d ctx                             *   value                                void *
222
223     d xmlSchemaSetValidStructuredErrors...
224     d                 pr                  extproc(
225     d                                     'xmlSchemaSetValidStructuredErrors')
226     d ctxt                                value like(xmlSchemaValidCtxtPtr)
227     d serror                              value like(xmlStructuredErrorFunc)
228     d ctx                             *   value                                void *
229
230     d xmlSchemaGetValidErrors...
231     d                 pr            10i 0 extproc('xmlSchemaGetValidErrors')
232     d ctxt                                value like(xmlSchemaValidCtxtPtr)
233     d err                                 like(xmlSchemaValidityErrorFunc)
234     d warn                                like(xmlSchemaValidityWarningFunc)
235     d ctx                             *                                        void *(*)
236
237     d xmlSchemaSetValidOptions...
238     d                 pr            10i 0 extproc('xmlSchemaSetValidOptions')
239     d ctxt                                value like(xmlSchemaValidCtxtPtr)
240     d options                       10i 0 value
241
242     d xmlSchemaValidateSetFilename...
243     d                 pr                  extproc(
244     d                                     'xmlSchemaValidateSetFilename')
245     d vctxt                               value like(xmlSchemaValidCtxtPtr)
246     d filename                        *   value options(*string)               const char *
247
248     d xmlSchemaValidCtxtGetOptions...
249     d                 pr            10i 0 extproc(
250     d                                     'xmlSchemaValidCtxtGetOptions')
251     d ctxt                                value like(xmlSchemaValidCtxtPtr)
252
253     d xmlSchemaNewValidCtxt...
254     d                 pr                  extproc('xmlSchemaNewValidCtxt')
255     d                                     like(xmlSchemaValidCtxtPtr)
256     d schema                              value like(xmlSchemaPtr)
257
258     d xmlSchemaFreeValidCtxt...
259     d                 pr                  extproc('xmlSchemaFreeValidCtxt')
260     d ctxt                                value like(xmlSchemaValidCtxtPtr)
261
262     d xmlSchemaValidateDoc...
263     d                 pr            10i 0 extproc('xmlSchemaValidateDoc')
264     d ctxt                                value like(xmlSchemaValidCtxtPtr)
265     d instance                            value like(xmlDocPtr)
266
267     d xmlSchemaValidateOneElement...
268     d                 pr            10i 0 extproc(
269     d                                     'xmlSchemaValidateOneElement')
270     d ctxt                                value like(xmlSchemaValidCtxtPtr)
271     d elem                                value like(xmlNodePtr)
272
273     d xmlSchemaValidateStream...
274     d                 pr            10i 0 extproc('xmlSchemaValidateStream')
275     d ctxt                                value like(xmlSchemaValidCtxtPtr)
276     d input                               value like(xmlParserInputBufferPtr)
277     d enc                                 value like(xmlCharEncoding)
278     d sax                                 value like(xmlSAXHandlerPtr)
279     d user_data                       *   value                                void *
280
281     d xmlSchemaValidateFile...
282     d                 pr            10i 0 extproc('xmlSchemaValidateFile')
283     d ctxt                                value like(xmlSchemaValidCtxtPtr)
284     d filename                        *   value options(*string)               const char *
285     d options                       10i 0 value
286
287     d xmlSchemaValidCtxtGetParserCtxt...
288     d                 pr                  extproc(
289     d                                     'xmlSchemaValidCtxtGetParserCtxt')
290     d                                     like(xmlParserCtxtPtr)
291     d ctxt                                value like(xmlSchemaValidCtxtPtr)
292
293      * Interface to insert Schemas SAX validation in a SAX stream
294
295     d xmlSchemaSAXPlugPtr...
296     d                 s               *   based(######typedef######)
297
298     d xmlSchemaSAXPlug...
299     d                 pr                  extproc('xmlSchemaSAXPlug')
300     d                                     like(xmlSchemaSAXPlugPtr)
301     d ctxt                                value like(xmlSchemaValidCtxtPtr)
302     d sax                                 like(xmlSAXHandlerPtr)
303     d user_data                       *                                        void *(*)
304
305     d xmlSchemaSAXUnplug...
306     d                 pr            10i 0 extproc('xmlSchemaSAXUnplug')
307     d plug                                value like(xmlSchemaSAXPlugPtr)
308
309     d xmlSchemaValidateSetLocator...
310     d                 pr                  extproc(
311     d                                     'xmlSchemaValidateSetLocator')
312     d vctxt                               value like(xmlSchemaValidCtxtPtr)
313     d f                                   value
314     d                                     like(xmlSchemaValidityLocatorFunc)
315     d ctxt                            *   value                                void *
316
317      /endif                                                                    LIBXML_SCHEMAS_ENBLD
318      /endif                                                                    XML_SCHEMA_H__
319