source: NonGTP/FCollada/libxml/relaxng.h @ 964

Revision 964, 5.1 KB checked in by igarcia, 18 years ago (diff)
Line 
1/*
2 * Summary: implementation of the Relax-NG validation
3 * Description: implementation of the Relax-NG validation
4 *
5 * Copy: See Copyright for the status of this software.
6 *
7 * Author: Daniel Veillard
8 */
9
10#ifndef __XML_RELAX_NG__
11#define __XML_RELAX_NG__
12
13#include <libxml/xmlversion.h>
14#include <libxml/hash.h>
15#include <libxml/xmlstring.h>
16
17#ifdef LIBXML_SCHEMAS_ENABLED
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23typedef struct _xmlRelaxNG xmlRelaxNG;
24typedef xmlRelaxNG *xmlRelaxNGPtr;
25
26
27/**
28 * A schemas validation context
29 */
30typedef void (*xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
31typedef void (*xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
32
33typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
34typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
35
36typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
37typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
38
39/*
40 * xmlRelaxNGValidErr:
41 *
42 * List of possible Relax NG validation errors
43 */
44typedef enum {
45    XML_RELAXNG_OK = 0,
46    XML_RELAXNG_ERR_MEMORY,
47    XML_RELAXNG_ERR_TYPE,
48    XML_RELAXNG_ERR_TYPEVAL,
49    XML_RELAXNG_ERR_DUPID,
50    XML_RELAXNG_ERR_TYPECMP,
51    XML_RELAXNG_ERR_NOSTATE,
52    XML_RELAXNG_ERR_NODEFINE,
53    XML_RELAXNG_ERR_LISTEXTRA,
54    XML_RELAXNG_ERR_LISTEMPTY,
55    XML_RELAXNG_ERR_INTERNODATA,
56    XML_RELAXNG_ERR_INTERSEQ,
57    XML_RELAXNG_ERR_INTEREXTRA,
58    XML_RELAXNG_ERR_ELEMNAME,
59    XML_RELAXNG_ERR_ATTRNAME,
60    XML_RELAXNG_ERR_ELEMNONS,
61    XML_RELAXNG_ERR_ATTRNONS,
62    XML_RELAXNG_ERR_ELEMWRONGNS,
63    XML_RELAXNG_ERR_ATTRWRONGNS,
64    XML_RELAXNG_ERR_ELEMEXTRANS,
65    XML_RELAXNG_ERR_ATTREXTRANS,
66    XML_RELAXNG_ERR_ELEMNOTEMPTY,
67    XML_RELAXNG_ERR_NOELEM,
68    XML_RELAXNG_ERR_NOTELEM,
69    XML_RELAXNG_ERR_ATTRVALID,
70    XML_RELAXNG_ERR_CONTENTVALID,
71    XML_RELAXNG_ERR_EXTRACONTENT,
72    XML_RELAXNG_ERR_INVALIDATTR,
73    XML_RELAXNG_ERR_DATAELEM,
74    XML_RELAXNG_ERR_VALELEM,
75    XML_RELAXNG_ERR_LISTELEM,
76    XML_RELAXNG_ERR_DATATYPE,
77    XML_RELAXNG_ERR_VALUE,
78    XML_RELAXNG_ERR_LIST,
79    XML_RELAXNG_ERR_NOGRAMMAR,
80    XML_RELAXNG_ERR_EXTRADATA,
81    XML_RELAXNG_ERR_LACKDATA,
82    XML_RELAXNG_ERR_INTERNAL,
83    XML_RELAXNG_ERR_ELEMWRONG,
84    XML_RELAXNG_ERR_TEXTWRONG
85} xmlRelaxNGValidErr;
86
87/*
88 * xmlRelaxNGParserFlags:
89 *
90 * List of possible Relax NG Parser flags
91 */
92typedef enum {
93    XML_RELAXNGP_NONE = 0,
94    XML_RELAXNGP_FREE_DOC = 1,
95    XML_RELAXNGP_CRNG = 2
96} xmlRelaxNGParserFlag;
97
98XMLPUBFUN int XMLCALL
99                    xmlRelaxNGInitTypes         (void);
100XMLPUBFUN void XMLCALL                 
101                    xmlRelaxNGCleanupTypes      (void);
102
103/*
104 * Interfaces for parsing.
105 */
106XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
107                    xmlRelaxNGNewParserCtxt     (const char *URL);
108XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
109                    xmlRelaxNGNewMemParserCtxt  (const char *buffer,
110                                                 int size);
111XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL   
112                    xmlRelaxNGNewDocParserCtxt  (xmlDocPtr doc);
113
114XMLPUBFUN int XMLCALL
115                    xmlRelaxParserSetFlag       (xmlRelaxNGParserCtxtPtr ctxt,
116                                                 int flag);
117
118XMLPUBFUN void XMLCALL         
119                    xmlRelaxNGFreeParserCtxt    (xmlRelaxNGParserCtxtPtr ctxt);
120XMLPUBFUN void XMLCALL                 
121                    xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
122                                         xmlRelaxNGValidityErrorFunc err,
123                                         xmlRelaxNGValidityWarningFunc warn,
124                                         void *ctx);
125XMLPUBFUN int XMLCALL
126                    xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
127                                         xmlRelaxNGValidityErrorFunc *err,
128                                         xmlRelaxNGValidityWarningFunc *warn,
129                                         void **ctx);
130XMLPUBFUN xmlRelaxNGPtr XMLCALL
131                    xmlRelaxNGParse             (xmlRelaxNGParserCtxtPtr ctxt);
132XMLPUBFUN void XMLCALL         
133                    xmlRelaxNGFree              (xmlRelaxNGPtr schema);
134#ifdef LIBXML_OUTPUT_ENABLED
135XMLPUBFUN void XMLCALL         
136                    xmlRelaxNGDump              (FILE *output,
137                                         xmlRelaxNGPtr schema);
138XMLPUBFUN void XMLCALL
139                    xmlRelaxNGDumpTree  (FILE * output,
140                                         xmlRelaxNGPtr schema);
141#endif /* LIBXML_OUTPUT_ENABLED */
142/*
143 * Interfaces for validating
144 */
145XMLPUBFUN void XMLCALL         
146                    xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
147                                         xmlRelaxNGValidityErrorFunc err,
148                                         xmlRelaxNGValidityWarningFunc warn,
149                                         void *ctx);
150XMLPUBFUN int XMLCALL   
151                    xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
152                                         xmlRelaxNGValidityErrorFunc *err,
153                                         xmlRelaxNGValidityWarningFunc *warn,
154                                         void **ctx);
155XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL       
156                    xmlRelaxNGNewValidCtxt      (xmlRelaxNGPtr schema);
157XMLPUBFUN void XMLCALL                 
158                    xmlRelaxNGFreeValidCtxt     (xmlRelaxNGValidCtxtPtr ctxt);
159XMLPUBFUN int XMLCALL                   
160                    xmlRelaxNGValidateDoc       (xmlRelaxNGValidCtxtPtr ctxt,
161                                                 xmlDocPtr doc);
162/*
163 * Interfaces for progressive validation when possible
164 */
165XMLPUBFUN int XMLCALL   
166                    xmlRelaxNGValidatePushElement       (xmlRelaxNGValidCtxtPtr ctxt,
167                                         xmlDocPtr doc,
168                                         xmlNodePtr elem);
169XMLPUBFUN int XMLCALL   
170                    xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
171                                         const xmlChar *data,
172                                         int len);
173XMLPUBFUN int XMLCALL   
174                    xmlRelaxNGValidatePopElement        (xmlRelaxNGValidCtxtPtr ctxt,
175                                         xmlDocPtr doc,
176                                         xmlNodePtr elem);
177XMLPUBFUN int XMLCALL   
178                    xmlRelaxNGValidateFullElement       (xmlRelaxNGValidCtxtPtr ctxt,
179                                         xmlDocPtr doc,
180                                         xmlNodePtr elem);
181
182#ifdef __cplusplus
183}
184#endif
185
186#endif /* LIBXML_SCHEMAS_ENABLED */
187
188#endif /* __XML_RELAX_NG__ */
Note: See TracBrowser for help on using the repository browser.