ReactOS  0.4.15-dev-5500-g82cf6c2
relaxng.h
Go to the documentation of this file.
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
20 extern "C" {
21 #endif
22 
23 typedef struct _xmlRelaxNG xmlRelaxNG;
24 typedef xmlRelaxNG *xmlRelaxNGPtr;
25 
26 
35 typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx,
36  const char *msg,
37  ...) LIBXML_ATTR_FORMAT(2,3);
38 
47 typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx,
48  const char *msg,
49  ...) LIBXML_ATTR_FORMAT(2,3);
50 
54 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
55 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
56 
57 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
58 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
59 
60 /*
61  * xmlRelaxNGValidErr:
62  *
63  * List of possible Relax NG validation errors
64  */
65 typedef enum {
66  XML_RELAXNG_OK = 0,
67  XML_RELAXNG_ERR_MEMORY,
68  XML_RELAXNG_ERR_TYPE,
69  XML_RELAXNG_ERR_TYPEVAL,
70  XML_RELAXNG_ERR_DUPID,
71  XML_RELAXNG_ERR_TYPECMP,
72  XML_RELAXNG_ERR_NOSTATE,
73  XML_RELAXNG_ERR_NODEFINE,
74  XML_RELAXNG_ERR_LISTEXTRA,
75  XML_RELAXNG_ERR_LISTEMPTY,
76  XML_RELAXNG_ERR_INTERNODATA,
77  XML_RELAXNG_ERR_INTERSEQ,
78  XML_RELAXNG_ERR_INTEREXTRA,
79  XML_RELAXNG_ERR_ELEMNAME,
80  XML_RELAXNG_ERR_ATTRNAME,
81  XML_RELAXNG_ERR_ELEMNONS,
82  XML_RELAXNG_ERR_ATTRNONS,
83  XML_RELAXNG_ERR_ELEMWRONGNS,
84  XML_RELAXNG_ERR_ATTRWRONGNS,
85  XML_RELAXNG_ERR_ELEMEXTRANS,
86  XML_RELAXNG_ERR_ATTREXTRANS,
87  XML_RELAXNG_ERR_ELEMNOTEMPTY,
88  XML_RELAXNG_ERR_NOELEM,
89  XML_RELAXNG_ERR_NOTELEM,
90  XML_RELAXNG_ERR_ATTRVALID,
91  XML_RELAXNG_ERR_CONTENTVALID,
92  XML_RELAXNG_ERR_EXTRACONTENT,
93  XML_RELAXNG_ERR_INVALIDATTR,
94  XML_RELAXNG_ERR_DATAELEM,
95  XML_RELAXNG_ERR_VALELEM,
96  XML_RELAXNG_ERR_LISTELEM,
97  XML_RELAXNG_ERR_DATATYPE,
98  XML_RELAXNG_ERR_VALUE,
99  XML_RELAXNG_ERR_LIST,
100  XML_RELAXNG_ERR_NOGRAMMAR,
101  XML_RELAXNG_ERR_EXTRADATA,
102  XML_RELAXNG_ERR_LACKDATA,
103  XML_RELAXNG_ERR_INTERNAL,
104  XML_RELAXNG_ERR_ELEMWRONG,
105  XML_RELAXNG_ERR_TEXTWRONG
106 } xmlRelaxNGValidErr;
107 
108 /*
109  * xmlRelaxNGParserFlags:
110  *
111  * List of possible Relax NG Parser flags
112  */
113 typedef enum {
114  XML_RELAXNGP_NONE = 0,
115  XML_RELAXNGP_FREE_DOC = 1,
116  XML_RELAXNGP_CRNG = 2
117 } xmlRelaxNGParserFlag;
118 
119 XMLPUBFUN int XMLCALL
120  xmlRelaxNGInitTypes (void);
122 XMLPUBFUN void XMLCALL
123  xmlRelaxNGCleanupTypes (void);
124 
125 /*
126  * Interfaces for parsing.
127  */
128 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
129  xmlRelaxNGNewParserCtxt (const char *URL);
130 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
131  xmlRelaxNGNewMemParserCtxt (const char *buffer,
132  int size);
133 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
134  xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
135 
136 XMLPUBFUN int XMLCALL
137  xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
138  int flag);
139 
140 XMLPUBFUN void XMLCALL
141  xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
142 XMLPUBFUN void XMLCALL
143  xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
144  xmlRelaxNGValidityErrorFunc err,
145  xmlRelaxNGValidityWarningFunc warn,
146  void *ctx);
147 XMLPUBFUN int XMLCALL
148  xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
149  xmlRelaxNGValidityErrorFunc *err,
150  xmlRelaxNGValidityWarningFunc *warn,
151  void **ctx);
152 XMLPUBFUN void XMLCALL
153  xmlRelaxNGSetParserStructuredErrors(
154  xmlRelaxNGParserCtxtPtr ctxt,
155  xmlStructuredErrorFunc serror,
156  void *ctx);
157 XMLPUBFUN xmlRelaxNGPtr XMLCALL
158  xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
159 XMLPUBFUN void XMLCALL
160  xmlRelaxNGFree (xmlRelaxNGPtr schema);
161 #ifdef LIBXML_OUTPUT_ENABLED
162 XMLPUBFUN void XMLCALL
163  xmlRelaxNGDump (FILE *output,
164  xmlRelaxNGPtr schema);
165 XMLPUBFUN void XMLCALL
166  xmlRelaxNGDumpTree (FILE * output,
167  xmlRelaxNGPtr schema);
168 #endif /* LIBXML_OUTPUT_ENABLED */
169 /*
170  * Interfaces for validating
171  */
172 XMLPUBFUN void XMLCALL
173  xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
174  xmlRelaxNGValidityErrorFunc err,
175  xmlRelaxNGValidityWarningFunc warn,
176  void *ctx);
177 XMLPUBFUN int XMLCALL
178  xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
179  xmlRelaxNGValidityErrorFunc *err,
180  xmlRelaxNGValidityWarningFunc *warn,
181  void **ctx);
182 XMLPUBFUN void XMLCALL
183  xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
184  xmlStructuredErrorFunc serror, void *ctx);
185 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
186  xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
187 XMLPUBFUN void XMLCALL
188  xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
189 XMLPUBFUN int XMLCALL
190  xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
191  xmlDocPtr doc);
192 /*
193  * Interfaces for progressive validation when possible
194  */
195 XMLPUBFUN int XMLCALL
196  xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
197  xmlDocPtr doc,
198  xmlNodePtr elem);
199 XMLPUBFUN int XMLCALL
200  xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
201  const xmlChar *data,
202  int len);
203 XMLPUBFUN int XMLCALL
204  xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
205  xmlDocPtr doc,
206  xmlNodePtr elem);
207 XMLPUBFUN int XMLCALL
208  xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
209  xmlDocPtr doc,
210  xmlNodePtr elem);
211 
212 #ifdef __cplusplus
213 }
214 #endif
215 
216 #endif /* LIBXML_SCHEMAS_ENABLED */
217 
218 #endif /* __XML_RELAX_NG__ */
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
#define XML_DEPRECATED
Definition: xmlversion.h:494
#define warn(...)
GLuint buffer
Definition: glext.h:5915
#define XMLPUBFUN
Definition: xmlexports.h:61
static size_t elem
Definition: string.c:68
#define LIBXML_ATTR_FORMAT(fmt, args)
Definition: xmlversion.h:486
GLsizeiptr size
Definition: glext.h:5919
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
Definition: tree.h:489
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
Definition: glfuncs.h:52
unsigned char xmlChar
Definition: xmlstring.h:28
GLenum GLsizei len
Definition: glext.h:6722
#define err(...)
const WCHAR * schema
#define XMLCDECL
Definition: xmlexports.h:52
Definition: tree.h:551
#define msg(x)
Definition: auth_time.c:54
#define XMLCALL