1 * Summary: implementation of the Relax-NG validation 2 * Description: implementation of the Relax-NG validation 3 * 4 * Copy: See Copyright for the status of this software. 5 * 6 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. 7 8 /if not defined(XML_RELAX_NG__) 9 /define XML_RELAX_NG__ 10 11 /include "libxmlrpg/xmlversion" 12 13 /if defined(LIBXML_SCHEMAS_ENABLED) 14 15 /include "libxmlrpg/xmlTypesC" 16 /include "libxmlrpg/hash" 17 /include "libxmlrpg/xmlstring" 18 19 d xmlRelaxNGPtr s * based(######typedef######) 20 21 * xmlRelaxNGValidityErrorFunc: 22 * @ctx: the validation context 23 * @msg: the message 24 * @...: extra arguments 25 * 26 * Signature of an error callback from a Relax-NG validation 27 28 d xmlRelaxNGValidityErrorFunc... 29 d s * based(######typedef######) 30 d procptr 31 32 * xmlRelaxNGValidityWarningFunc: 33 * @ctx: the validation context 34 * @msg: the message 35 * @...: extra arguments 36 * 37 * Signature of a warning callback from a Relax-NG validation 38 39 d xmlRelaxNGValidityWarningFunc... 40 d s * based(######typedef######) 41 d procptr 42 43 * A schemas validation context 44 45 d xmlRelaxNGParserCtxtPtr... 46 d s * based(######typedef######) 47 48 d xmlRelaxNGValidCtxtPtr... 49 d s * based(######typedef######) 50 51 * xmlRelaxNGValidErr: 52 * 53 * List of possible Relax NG validation errors 54 55 d xmlRelaxNGValidErr... 56 d s based(######typedef######) 57 d like(xmlCenum) 58 d XML_RELAXNG_OK... 59 d c 0 60 d XML_RELAXNG_ERR_MEMORY... 61 d c 1 62 d XML_RELAXNG_ERR_TYPE... 63 d c 2 64 d XML_RELAXNG_ERR_TYPEVAL... 65 d c 3 66 d XML_RELAXNG_ERR_DUPID... 67 d c 4 68 d XML_RELAXNG_ERR_TYPECMP... 69 d c 5 70 d XML_RELAXNG_ERR_NOSTATE... 71 d c 6 72 d XML_RELAXNG_ERR_NODEFINE... 73 d c 7 74 d XML_RELAXNG_ERR_LISTEXTRA... 75 d c 8 76 d XML_RELAXNG_ERR_LISTEMPTY... 77 d c 9 78 d XML_RELAXNG_ERR_INTERNODATA... 79 d c 10 80 d XML_RELAXNG_ERR_INTERSEQ... 81 d c 11 82 d XML_RELAXNG_ERR_INTEREXTRA... 83 d c 12 84 d XML_RELAXNG_ERR_ELEMNAME... 85 d c 13 86 d XML_RELAXNG_ERR_ATTRNAME... 87 d c 14 88 d XML_RELAXNG_ERR_ELEMNONS... 89 d c 15 90 d XML_RELAXNG_ERR_ATTRNONS... 91 d c 16 92 d XML_RELAXNG_ERR_ELEMWRONGNS... 93 d c 17 94 d XML_RELAXNG_ERR_ATTRWRONGNS... 95 d c 18 96 d XML_RELAXNG_ERR_ELEMEXTRANS... 97 d c 19 98 d XML_RELAXNG_ERR_ATTREXTRANS... 99 d c 20 100 d XML_RELAXNG_ERR_ELEMNOTEMPTY... 101 d c 21 102 d XML_RELAXNG_ERR_NOELEM... 103 d c 22 104 d XML_RELAXNG_ERR_NOTELEM... 105 d c 23 106 d XML_RELAXNG_ERR_ATTRVALID... 107 d c 24 108 d XML_RELAXNG_ERR_CONTENTVALID... 109 d c 25 110 d XML_RELAXNG_ERR_EXTRACONTENT... 111 d c 26 112 d XML_RELAXNG_ERR_INVALIDATTR... 113 d c 27 114 d XML_RELAXNG_ERR_DATAELEM... 115 d c 28 116 d XML_RELAXNG_ERR_VALELEM... 117 d c 29 118 d XML_RELAXNG_ERR_LISTELEM... 119 d c 30 120 d XML_RELAXNG_ERR_DATATYPE... 121 d c 31 122 d XML_RELAXNG_ERR_VALUE... 123 d c 32 124 d XML_RELAXNG_ERR_LIST... 125 d c 33 126 d XML_RELAXNG_ERR_NOGRAMMAR... 127 d c 34 128 d XML_RELAXNG_ERR_EXTRADATA... 129 d c 35 130 d XML_RELAXNG_ERR_LACKDATA... 131 d c 36 132 d XML_RELAXNG_ERR_INTERNAL... 133 d c 37 134 d XML_RELAXNG_ERR_ELEMWRONG... 135 d c 38 136 d XML_RELAXNG_ERR_TEXTWRONG... 137 d c 39 138 139 * xmlRelaxNGParserFlags: 140 * 141 * List of possible Relax NG Parser flags 142 143 d xmlRelaxNGParserFlag... 144 d s based(######typedef######) 145 d like(xmlCenum) 146 d XML_RELAXNGP_NONE... 147 d c 0 148 d XML_RELAXNGP_FREE_DOC... 149 d c 1 150 d XML_RELAXNGP_CRNG... 151 d c 2 152 153 d xmlRelaxNGInitTypes... 154 d pr extproc('xmlRelaxNGInitTypes') 155 d like(xmlCint) 156 157 d xmlRelaxNGCleanupTypes... 158 d pr extproc('xmlRelaxNGCleanupTypes') 159 160 161 * Interfaces for parsing. 162 163 d xmlRelaxNGNewParserCtxt... 164 d pr extproc('xmlRelaxNGNewParserCtxt') 165 d like(xmlRelaxNGParserCtxtPtr) 166 d URL * value options(*string) const char * 167 168 d xmlRelaxNGNewMemParserCtxt... 169 d pr extproc('xmlRelaxNGNewMemParserCtxt') 170 d like(xmlRelaxNGParserCtxtPtr) 171 d buffer * value options(*string) const char * 172 d size value like(xmlCint) 173 174 d xmlRelaxNGNewDocParserCtxt... 175 d pr extproc('xmlRelaxNGNewDocParserCtxt') 176 d like(xmlRelaxNGParserCtxtPtr) 177 d doc value like(xmlDocPtr) 178 179 d xmlRelaxParserSetFlag... 180 d pr extproc('xmlRelaxParserSetFlag') 181 d like(xmlCint) 182 d ctxt value like(xmlRelaxNGParserCtxtPtr) 183 d flag value like(xmlCint) 184 185 d xmlRelaxNGFreeParserCtxt... 186 d pr extproc('xmlRelaxNGFreeParserCtxt') 187 d ctxt value like(xmlRelaxNGParserCtxtPtr) 188 189 d xmlRelaxNGSetParserErrors... 190 d pr extproc('xmlRelaxNGSetParserErrors') 191 d ctxt value like(xmlRelaxNGParserCtxtPtr) 192 d err value 193 d like(xmlRelaxNGValidityErrorFunc) 194 d warn value 195 d like(xmlRelaxNGValidityWarningFunc) 196 d ctx * value void * 197 198 d xmlRelaxNGGetParserErrors... 199 d pr extproc('xmlRelaxNGGetParserErrors') 200 d like(xmlCint) 201 d ctxt value like(xmlRelaxNGParserCtxtPtr) 202 d err like(xmlRelaxNGValidityErrorFunc) 203 d warn like(xmlRelaxNGValidityWarningFunc) 204 d ctx * void *(*) 205 206 d xmlRelaxNGSetParserStructuredErrors... 207 d pr extproc( 208 d 'xmlRelaxNGSetParserStructuredErrors' 209 d ) 210 d ctxt value like(xmlRelaxNGParserCtxtPtr) 211 d serror value like(xmlStructuredErrorFunc) 212 d ctx * value void * 213 214 d xmlRelaxNGParse... 215 d pr extproc('xmlRelaxNGParse') 216 d like(xmlRelaxNGPtr) 217 d ctxt value like(xmlRelaxNGParserCtxtPtr) 218 219 d xmlRelaxNGFree pr extproc('xmlRelaxNGFree') 220 d schema value like(xmlRelaxNGPtr) 221 222 223 /if defined(LIBXML_OUTPUT_ENABLED) 224 d xmlRelaxNGDump pr extproc('xmlRelaxNGDump') 225 d output * value FILE * 226 d schema value like(xmlRelaxNGPtr) 227 228 d xmlRelaxNGDumpTree... 229 d pr extproc('xmlRelaxNGDumpTree') 230 d output * value FILE * 231 d schema value like(xmlRelaxNGPtr) 232 /endif LIBXML_OUTPUT_ENABLD 233 234 * Interfaces for validating 235 236 d xmlRelaxNGSetValidErrors... 237 d pr extproc('xmlRelaxNGSetValidErrors') 238 d ctxt value like(xmlRelaxNGValidCtxtPtr) 239 d err value 240 d like(xmlRelaxNGValidityErrorFunc) 241 d warn value 242 d like(xmlRelaxNGValidityWarningFunc) 243 d ctx * value void * 244 245 d xmlRelaxNGGetValidErrors... 246 d pr extproc('xmlRelaxNGGetValidErrors') 247 d like(xmlCint) 248 d ctxt value like(xmlRelaxNGValidCtxtPtr) 249 d err like(xmlRelaxNGValidityErrorFunc) 250 d warn like(xmlRelaxNGValidityWarningFunc) 251 d ctx * value void * * 252 253 d xmlRelaxNGSetValidStructuredErrors... 254 d pr extproc( 255 d 'xmlRelaxNGSetValidStructuredErrors') 256 d ctxt value like(xmlRelaxNGValidCtxtPtr) 257 d serror value like(xmlStructuredErrorFunc) 258 d ctx * value void * 259 260 d xmlRelaxNGNewValidCtxt... 261 d pr extproc('xmlRelaxNGNewValidCtxt') 262 d like(xmlRelaxNGValidCtxtPtr) 263 d schema value like(xmlRelaxNGPtr) 264 265 d xmlRelaxNGFreeValidCtxt... 266 d pr extproc('xmlRelaxNGFreeValidCtxt') 267 d ctxt value like(xmlRelaxNGValidCtxtPtr) 268 269 d xmlRelaxNGValidateDoc... 270 d pr extproc('xmlRelaxNGValidateDoc') 271 d like(xmlCint) 272 d ctxt value like(xmlRelaxNGValidCtxtPtr) 273 d doc value like(xmlDocPtr) 274 275 * Interfaces for progressive validation when possible 276 277 d xmlRelaxNGValidatePushElement... 278 d pr extproc( 279 d 'xmlRelaxNGValidatePushElement') 280 d like(xmlCint) 281 d ctxt value like(xmlRelaxNGValidCtxtPtr) 282 d doc value like(xmlDocPtr) 283 d elem value like(xmlNodePtr) 284 285 d xmlRelaxNGValidatePushCData... 286 d pr extproc( 287 d 'xmlRelaxNGValidatePushCData') 288 d like(xmlCint) 289 d ctxt value like(xmlRelaxNGValidCtxtPtr) 290 d data * value options(*string) const xmlChar * 291 d len value like(xmlCint) 292 293 d xmlRelaxNGValidatePopElement... 294 d pr extproc( 295 d 'xmlRelaxNGValidatePopElement') 296 d like(xmlCint) 297 d ctxt value like(xmlRelaxNGValidCtxtPtr) 298 d doc value like(xmlDocPtr) 299 d elem value like(xmlNodePtr) 300 301 d xmlRelaxNGValidateFullElement... 302 d pr extproc( 303 d 'xmlRelaxNGValidateFullElement') 304 d like(xmlCint) 305 d ctxt value like(xmlRelaxNGValidCtxtPtr) 306 d doc value like(xmlDocPtr) 307 d elem value like(xmlNodePtr) 308 309 /endif LIBXML_SCHEMAS_ENBLD 310 /endif XML_RELAX_NG__ 311