• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/gettext-0.17/gnulib-local/lib/libxml/
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 (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
31typedef void (XMLCDECL *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 void XMLCALL
131		    xmlRelaxNGSetParserStructuredErrors(
132					 xmlRelaxNGParserCtxtPtr ctxt,
133					 xmlStructuredErrorFunc serror,
134					 void *ctx);
135XMLPUBFUN xmlRelaxNGPtr XMLCALL
136		    xmlRelaxNGParse		(xmlRelaxNGParserCtxtPtr ctxt);
137XMLPUBFUN void XMLCALL
138		    xmlRelaxNGFree		(xmlRelaxNGPtr schema);
139#ifdef LIBXML_OUTPUT_ENABLED
140XMLPUBFUN void XMLCALL
141		    xmlRelaxNGDump		(FILE *output,
142					 xmlRelaxNGPtr schema);
143XMLPUBFUN void XMLCALL
144		    xmlRelaxNGDumpTree	(FILE * output,
145					 xmlRelaxNGPtr schema);
146#endif /* LIBXML_OUTPUT_ENABLED */
147/*
148 * Interfaces for validating
149 */
150XMLPUBFUN void XMLCALL
151		    xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
152					 xmlRelaxNGValidityErrorFunc err,
153					 xmlRelaxNGValidityWarningFunc warn,
154					 void *ctx);
155XMLPUBFUN int XMLCALL
156		    xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
157					 xmlRelaxNGValidityErrorFunc *err,
158					 xmlRelaxNGValidityWarningFunc *warn,
159					 void **ctx);
160XMLPUBFUN void XMLCALL
161			xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
162					  xmlStructuredErrorFunc serror, void *ctx);
163XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
164		    xmlRelaxNGNewValidCtxt	(xmlRelaxNGPtr schema);
165XMLPUBFUN void XMLCALL
166		    xmlRelaxNGFreeValidCtxt	(xmlRelaxNGValidCtxtPtr ctxt);
167XMLPUBFUN int XMLCALL
168		    xmlRelaxNGValidateDoc	(xmlRelaxNGValidCtxtPtr ctxt,
169					 	 xmlDocPtr doc);
170/*
171 * Interfaces for progressive validation when possible
172 */
173XMLPUBFUN int XMLCALL
174		    xmlRelaxNGValidatePushElement	(xmlRelaxNGValidCtxtPtr ctxt,
175					 xmlDocPtr doc,
176					 xmlNodePtr elem);
177XMLPUBFUN int XMLCALL
178		    xmlRelaxNGValidatePushCData	(xmlRelaxNGValidCtxtPtr ctxt,
179					 const xmlChar *data,
180					 int len);
181XMLPUBFUN int XMLCALL
182		    xmlRelaxNGValidatePopElement	(xmlRelaxNGValidCtxtPtr ctxt,
183					 xmlDocPtr doc,
184					 xmlNodePtr elem);
185XMLPUBFUN int XMLCALL
186		    xmlRelaxNGValidateFullElement	(xmlRelaxNGValidCtxtPtr ctxt,
187					 xmlDocPtr doc,
188					 xmlNodePtr elem);
189
190#ifdef __cplusplus
191}
192#endif
193
194#endif /* LIBXML_SCHEMAS_ENABLED */
195
196#endif /* __XML_RELAX_NG__ */
197