ReactOS 0.4.15-dev-7924-g5949c20
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
20extern "C" {
21#endif
22
23typedef struct _xmlRelaxNG xmlRelaxNG;
24typedef xmlRelaxNG *xmlRelaxNGPtr;
25
26
35typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx,
36 const char *msg,
37 ...) LIBXML_ATTR_FORMAT(2,3);
38
47typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx,
48 const char *msg,
49 ...) LIBXML_ATTR_FORMAT(2,3);
50
54typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
55typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
56
57typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
58typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
59
60/*
61 * xmlRelaxNGValidErr:
62 *
63 * List of possible Relax NG validation errors
64 */
65typedef 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 */
113typedef enum {
114 XML_RELAXNGP_NONE = 0,
115 XML_RELAXNGP_FREE_DOC = 1,
116 XML_RELAXNGP_CRNG = 2
117} xmlRelaxNGParserFlag;
118
120 xmlRelaxNGInitTypes (void);
123 xmlRelaxNGCleanupTypes (void);
124
125/*
126 * Interfaces for parsing.
127 */
128XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
129 xmlRelaxNGNewParserCtxt (const char *URL);
130XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
131 xmlRelaxNGNewMemParserCtxt (const char *buffer,
132 int size);
133XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
134 xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
135
137 xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
138 int flag);
139
141 xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
143 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
144 xmlRelaxNGValidityErrorFunc err,
145 xmlRelaxNGValidityWarningFunc warn,
146 void *ctx);
148 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
149 xmlRelaxNGValidityErrorFunc *err,
150 xmlRelaxNGValidityWarningFunc *warn,
151 void **ctx);
153 xmlRelaxNGSetParserStructuredErrors(
154 xmlRelaxNGParserCtxtPtr ctxt,
156 void *ctx);
157XMLPUBFUN xmlRelaxNGPtr XMLCALL
158 xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
160 xmlRelaxNGFree (xmlRelaxNGPtr schema);
161#ifdef LIBXML_OUTPUT_ENABLED
163 xmlRelaxNGDump (FILE *output,
164 xmlRelaxNGPtr schema);
166 xmlRelaxNGDumpTree (FILE * output,
167 xmlRelaxNGPtr schema);
168#endif /* LIBXML_OUTPUT_ENABLED */
169/*
170 * Interfaces for validating
171 */
173 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
174 xmlRelaxNGValidityErrorFunc err,
175 xmlRelaxNGValidityWarningFunc warn,
176 void *ctx);
178 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
179 xmlRelaxNGValidityErrorFunc *err,
180 xmlRelaxNGValidityWarningFunc *warn,
181 void **ctx);
183 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
184 xmlStructuredErrorFunc serror, void *ctx);
185XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
186 xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
188 xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
190 xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
191 xmlDocPtr doc);
192/*
193 * Interfaces for progressive validation when possible
194 */
196 xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
197 xmlDocPtr doc,
200 xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
201 const xmlChar *data,
202 int len);
204 xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
205 xmlDocPtr doc,
208 xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
209 xmlDocPtr doc,
211
212#ifdef __cplusplus
213}
214#endif
215
216#endif /* LIBXML_SCHEMAS_ENABLED */
217
218#endif /* __XML_RELAX_NG__ */
#define msg(x)
Definition: auth_time.c:54
#define XMLCALL
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
GLuint buffer
Definition: glext.h:5915
GLenum GLsizei len
Definition: glext.h:6722
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
const WCHAR * schema
static size_t elem
Definition: string.c:68
#define warn(...)
#define err(...)
Definition: tree.h:551
Definition: tree.h:489
void(XMLCDECL *) typedef void(XMLCALL * xmlStructuredErrorFunc)(void *userData, xmlErrorPtr error)
Definition: xmlerror.h:858
#define XMLPUBFUN
Definition: xmlexports.h:61
#define XMLCDECL
Definition: xmlexports.h:52
unsigned char xmlChar
Definition: xmlstring.h:28
#define LIBXML_ATTR_FORMAT(fmt, args)
Definition: xmlversion.h:486
#define XML_DEPRECATED
Definition: xmlversion.h:494