ReactOS  0.4.15-dev-1177-g6cb3b62
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);
121 XMLPUBFUN void XMLCALL
122  xmlRelaxNGCleanupTypes (void);
123 
124 /*
125  * Interfaces for parsing.
126  */
127 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
128  xmlRelaxNGNewParserCtxt (const char *URL);
129 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
130  xmlRelaxNGNewMemParserCtxt (const char *buffer,
131  int size);
132 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
133  xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
134 
135 XMLPUBFUN int XMLCALL
136  xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
137  int flag);
138 
139 XMLPUBFUN void XMLCALL
140  xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
141 XMLPUBFUN void XMLCALL
142  xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
143  xmlRelaxNGValidityErrorFunc err,
144  xmlRelaxNGValidityWarningFunc warn,
145  void *ctx);
146 XMLPUBFUN int XMLCALL
147  xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
148  xmlRelaxNGValidityErrorFunc *err,
149  xmlRelaxNGValidityWarningFunc *warn,
150  void **ctx);
151 XMLPUBFUN void XMLCALL
152  xmlRelaxNGSetParserStructuredErrors(
153  xmlRelaxNGParserCtxtPtr ctxt,
154  xmlStructuredErrorFunc serror,
155  void *ctx);
156 XMLPUBFUN xmlRelaxNGPtr XMLCALL
157  xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
158 XMLPUBFUN void XMLCALL
159  xmlRelaxNGFree (xmlRelaxNGPtr schema);
160 #ifdef LIBXML_OUTPUT_ENABLED
161 XMLPUBFUN void XMLCALL
162  xmlRelaxNGDump (FILE *output,
163  xmlRelaxNGPtr schema);
164 XMLPUBFUN void XMLCALL
165  xmlRelaxNGDumpTree (FILE * output,
166  xmlRelaxNGPtr schema);
167 #endif /* LIBXML_OUTPUT_ENABLED */
168 /*
169  * Interfaces for validating
170  */
171 XMLPUBFUN void XMLCALL
172  xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
173  xmlRelaxNGValidityErrorFunc err,
174  xmlRelaxNGValidityWarningFunc warn,
175  void *ctx);
176 XMLPUBFUN int XMLCALL
177  xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
178  xmlRelaxNGValidityErrorFunc *err,
179  xmlRelaxNGValidityWarningFunc *warn,
180  void **ctx);
181 XMLPUBFUN void XMLCALL
182  xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
183  xmlStructuredErrorFunc serror, void *ctx);
184 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
185  xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
186 XMLPUBFUN void XMLCALL
187  xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
188 XMLPUBFUN int XMLCALL
189  xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
190  xmlDocPtr doc);
191 /*
192  * Interfaces for progressive validation when possible
193  */
194 XMLPUBFUN int XMLCALL
195  xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
196  xmlDocPtr doc,
197  xmlNodePtr elem);
198 XMLPUBFUN int XMLCALL
199  xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
200  const xmlChar *data,
201  int len);
202 XMLPUBFUN int XMLCALL
203  xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
204  xmlDocPtr doc,
205  xmlNodePtr elem);
206 XMLPUBFUN int XMLCALL
207  xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
208  xmlDocPtr doc,
209  xmlNodePtr elem);
210 
211 #ifdef __cplusplus
212 }
213 #endif
214 
215 #endif /* LIBXML_SCHEMAS_ENABLED */
216 
217 #endif /* __XML_RELAX_NG__ */
static UCHAR ULONG UCHAR ULONG UCHAR * output
Definition: bcrypt.c:29
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
#define warn(...)
GLuint buffer
Definition: glext.h:5915
#define XMLPUBFUN
Definition: xmlexports.h:30
static size_t elem
Definition: string.c:68
#define LIBXML_ATTR_FORMAT(fmt, args)
Definition: xmlversion.h:477
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:49
Definition: tree.h:551
#define msg(x)
Definition: auth_time.c:54
#define XMLCALL