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