xref: /aosp_15_r20/external/libxml2/include/libxml/schematron.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /*
2*7c568831SAndroid Build Coastguard Worker  * Summary: XML Schematron implementation
3*7c568831SAndroid Build Coastguard Worker  * Description: interface to the XML Schematron validity checking.
4*7c568831SAndroid Build Coastguard Worker  *
5*7c568831SAndroid Build Coastguard Worker  * Copy: See Copyright for the status of this software.
6*7c568831SAndroid Build Coastguard Worker  *
7*7c568831SAndroid Build Coastguard Worker  * Author: Daniel Veillard
8*7c568831SAndroid Build Coastguard Worker  */
9*7c568831SAndroid Build Coastguard Worker 
10*7c568831SAndroid Build Coastguard Worker 
11*7c568831SAndroid Build Coastguard Worker #ifndef __XML_SCHEMATRON_H__
12*7c568831SAndroid Build Coastguard Worker #define __XML_SCHEMATRON_H__
13*7c568831SAndroid Build Coastguard Worker 
14*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
15*7c568831SAndroid Build Coastguard Worker 
16*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SCHEMATRON_ENABLED
17*7c568831SAndroid Build Coastguard Worker 
18*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlerror.h>
19*7c568831SAndroid Build Coastguard Worker #include <libxml/tree.h>
20*7c568831SAndroid Build Coastguard Worker 
21*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
22*7c568831SAndroid Build Coastguard Worker extern "C" {
23*7c568831SAndroid Build Coastguard Worker #endif
24*7c568831SAndroid Build Coastguard Worker 
25*7c568831SAndroid Build Coastguard Worker typedef enum {
26*7c568831SAndroid Build Coastguard Worker     XML_SCHEMATRON_OUT_QUIET = 1 << 0,	/* quiet no report */
27*7c568831SAndroid Build Coastguard Worker     XML_SCHEMATRON_OUT_TEXT = 1 << 1,	/* build a textual report */
28*7c568831SAndroid Build Coastguard Worker     XML_SCHEMATRON_OUT_XML = 1 << 2,	/* output SVRL */
29*7c568831SAndroid Build Coastguard Worker     XML_SCHEMATRON_OUT_ERROR = 1 << 3,  /* output via xmlStructuredErrorFunc */
30*7c568831SAndroid Build Coastguard Worker     XML_SCHEMATRON_OUT_FILE = 1 << 8,	/* output to a file descriptor */
31*7c568831SAndroid Build Coastguard Worker     XML_SCHEMATRON_OUT_BUFFER = 1 << 9,	/* output to a buffer */
32*7c568831SAndroid Build Coastguard Worker     XML_SCHEMATRON_OUT_IO = 1 << 10	/* output to I/O mechanism */
33*7c568831SAndroid Build Coastguard Worker } xmlSchematronValidOptions;
34*7c568831SAndroid Build Coastguard Worker 
35*7c568831SAndroid Build Coastguard Worker /**
36*7c568831SAndroid Build Coastguard Worker  * The schemas related types are kept internal
37*7c568831SAndroid Build Coastguard Worker  */
38*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchematron xmlSchematron;
39*7c568831SAndroid Build Coastguard Worker typedef xmlSchematron *xmlSchematronPtr;
40*7c568831SAndroid Build Coastguard Worker 
41*7c568831SAndroid Build Coastguard Worker /**
42*7c568831SAndroid Build Coastguard Worker  * xmlSchematronValidityErrorFunc:
43*7c568831SAndroid Build Coastguard Worker  * @ctx: the validation context
44*7c568831SAndroid Build Coastguard Worker  * @msg: the message
45*7c568831SAndroid Build Coastguard Worker  * @...: extra arguments
46*7c568831SAndroid Build Coastguard Worker  *
47*7c568831SAndroid Build Coastguard Worker  * Signature of an error callback from a Schematron validation
48*7c568831SAndroid Build Coastguard Worker  */
49*7c568831SAndroid Build Coastguard Worker typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...);
50*7c568831SAndroid Build Coastguard Worker 
51*7c568831SAndroid Build Coastguard Worker /**
52*7c568831SAndroid Build Coastguard Worker  * xmlSchematronValidityWarningFunc:
53*7c568831SAndroid Build Coastguard Worker  * @ctx: the validation context
54*7c568831SAndroid Build Coastguard Worker  * @msg: the message
55*7c568831SAndroid Build Coastguard Worker  * @...: extra arguments
56*7c568831SAndroid Build Coastguard Worker  *
57*7c568831SAndroid Build Coastguard Worker  * Signature of a warning callback from a Schematron validation
58*7c568831SAndroid Build Coastguard Worker  */
59*7c568831SAndroid Build Coastguard Worker typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...);
60*7c568831SAndroid Build Coastguard Worker 
61*7c568831SAndroid Build Coastguard Worker /**
62*7c568831SAndroid Build Coastguard Worker  * A schemas validation context
63*7c568831SAndroid Build Coastguard Worker  */
64*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt;
65*7c568831SAndroid Build Coastguard Worker typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr;
66*7c568831SAndroid Build Coastguard Worker 
67*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt;
68*7c568831SAndroid Build Coastguard Worker typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr;
69*7c568831SAndroid Build Coastguard Worker 
70*7c568831SAndroid Build Coastguard Worker /*
71*7c568831SAndroid Build Coastguard Worker  * Interfaces for parsing.
72*7c568831SAndroid Build Coastguard Worker  */
73*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronParserCtxtPtr
74*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronNewParserCtxt	(const char *URL);
75*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronParserCtxtPtr
76*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronNewMemParserCtxt(const char *buffer,
77*7c568831SAndroid Build Coastguard Worker 					 int size);
78*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronParserCtxtPtr
79*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronNewDocParserCtxt(xmlDocPtr doc);
80*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
81*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronFreeParserCtxt	(xmlSchematronParserCtxtPtr ctxt);
82*7c568831SAndroid Build Coastguard Worker /*****
83*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
84*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt,
85*7c568831SAndroid Build Coastguard Worker 					 xmlSchematronValidityErrorFunc err,
86*7c568831SAndroid Build Coastguard Worker 					 xmlSchematronValidityWarningFunc warn,
87*7c568831SAndroid Build Coastguard Worker 					 void *ctx);
88*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
89*7c568831SAndroid Build Coastguard Worker 		xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt,
90*7c568831SAndroid Build Coastguard Worker 					xmlSchematronValidityErrorFunc * err,
91*7c568831SAndroid Build Coastguard Worker 					xmlSchematronValidityWarningFunc * warn,
92*7c568831SAndroid Build Coastguard Worker 					void **ctx);
93*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
94*7c568831SAndroid Build Coastguard Worker 		xmlSchematronIsValid	(xmlSchematronValidCtxtPtr ctxt);
95*7c568831SAndroid Build Coastguard Worker  *****/
96*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronPtr
97*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronParse		(xmlSchematronParserCtxtPtr ctxt);
98*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
99*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronFree		(xmlSchematronPtr schema);
100*7c568831SAndroid Build Coastguard Worker /*
101*7c568831SAndroid Build Coastguard Worker  * Interfaces for validating
102*7c568831SAndroid Build Coastguard Worker  */
103*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
104*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronSetValidStructuredErrors(
105*7c568831SAndroid Build Coastguard Worker 	                                  xmlSchematronValidCtxtPtr ctxt,
106*7c568831SAndroid Build Coastguard Worker 					  xmlStructuredErrorFunc serror,
107*7c568831SAndroid Build Coastguard Worker 					  void *ctx);
108*7c568831SAndroid Build Coastguard Worker /******
109*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
110*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronSetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
111*7c568831SAndroid Build Coastguard Worker 					 xmlSchematronValidityErrorFunc err,
112*7c568831SAndroid Build Coastguard Worker 					 xmlSchematronValidityWarningFunc warn,
113*7c568831SAndroid Build Coastguard Worker 					 void *ctx);
114*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
115*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronGetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
116*7c568831SAndroid Build Coastguard Worker 					 xmlSchematronValidityErrorFunc *err,
117*7c568831SAndroid Build Coastguard Worker 					 xmlSchematronValidityWarningFunc *warn,
118*7c568831SAndroid Build Coastguard Worker 					 void **ctx);
119*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
120*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt,
121*7c568831SAndroid Build Coastguard Worker 					 int options);
122*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
123*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt);
124*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
125*7c568831SAndroid Build Coastguard Worker             xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt,
126*7c568831SAndroid Build Coastguard Worker 			                 xmlNodePtr elem);
127*7c568831SAndroid Build Coastguard Worker  *******/
128*7c568831SAndroid Build Coastguard Worker 
129*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronValidCtxtPtr
130*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronNewValidCtxt	(xmlSchematronPtr schema,
131*7c568831SAndroid Build Coastguard Worker 					 int options);
132*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
133*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronFreeValidCtxt	(xmlSchematronValidCtxtPtr ctxt);
134*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
135*7c568831SAndroid Build Coastguard Worker 	    xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt,
136*7c568831SAndroid Build Coastguard Worker 					 xmlDocPtr instance);
137*7c568831SAndroid Build Coastguard Worker 
138*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
139*7c568831SAndroid Build Coastguard Worker }
140*7c568831SAndroid Build Coastguard Worker #endif
141*7c568831SAndroid Build Coastguard Worker 
142*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SCHEMATRON_ENABLED */
143*7c568831SAndroid Build Coastguard Worker #endif /* __XML_SCHEMATRON_H__ */
144