Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

relaxng.h

Go to the documentation of this file.
00001 /*
00002  * relaxng.h: header for the implementation of the Relax-NG validation
00003  *
00004  * See Copyright for the status of this software.
00005  *
00006  * daniel@veillard.com
00007  */
00008 
00009 #ifndef __XML_RELAX_NG__
00010 #define __XML_RELAX_NG__
00011 
00012 #include <libxml/xmlversion.h>
00013 #include <libxml/hash.h>
00014 
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018 
00019 typedef struct _xmlRelaxNG xmlRelaxNG;
00020 typedef xmlRelaxNG *xmlRelaxNGPtr;
00021 
00022 
00026 typedef void (*xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
00027 typedef void (*xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
00028 
00029 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
00030 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
00031 
00032 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
00033 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
00034 
00035 /*
00036  * xmlRelaxNGValidErr:
00037  *
00038  * List of possible Relax NG validation errors
00039  */
00040 typedef enum {
00041     XML_RELAXNG_OK = 0,
00042     XML_RELAXNG_ERR_MEMORY,
00043     XML_RELAXNG_ERR_TYPE,
00044     XML_RELAXNG_ERR_TYPEVAL,
00045     XML_RELAXNG_ERR_DUPID,
00046     XML_RELAXNG_ERR_TYPECMP,
00047     XML_RELAXNG_ERR_NOSTATE,
00048     XML_RELAXNG_ERR_NODEFINE,
00049     XML_RELAXNG_ERR_LISTEXTRA,
00050     XML_RELAXNG_ERR_LISTEMPTY,
00051     XML_RELAXNG_ERR_INTERNODATA,
00052     XML_RELAXNG_ERR_INTERSEQ,
00053     XML_RELAXNG_ERR_INTEREXTRA,
00054     XML_RELAXNG_ERR_ELEMNAME,
00055     XML_RELAXNG_ERR_ATTRNAME,
00056     XML_RELAXNG_ERR_ELEMNONS,
00057     XML_RELAXNG_ERR_ATTRNONS,
00058     XML_RELAXNG_ERR_ELEMWRONGNS,
00059     XML_RELAXNG_ERR_ATTRWRONGNS,
00060     XML_RELAXNG_ERR_ELEMEXTRANS,
00061     XML_RELAXNG_ERR_ATTREXTRANS,
00062     XML_RELAXNG_ERR_ELEMNOTEMPTY,
00063     XML_RELAXNG_ERR_NOELEM,
00064     XML_RELAXNG_ERR_NOTELEM,
00065     XML_RELAXNG_ERR_ATTRVALID,
00066     XML_RELAXNG_ERR_CONTENTVALID,
00067     XML_RELAXNG_ERR_EXTRACONTENT,
00068     XML_RELAXNG_ERR_INVALIDATTR,
00069     XML_RELAXNG_ERR_DATAELEM,
00070     XML_RELAXNG_ERR_VALELEM,
00071     XML_RELAXNG_ERR_LISTELEM,
00072     XML_RELAXNG_ERR_DATATYPE,
00073     XML_RELAXNG_ERR_VALUE,
00074     XML_RELAXNG_ERR_LIST,
00075     XML_RELAXNG_ERR_NOGRAMMAR,
00076     XML_RELAXNG_ERR_EXTRADATA,
00077     XML_RELAXNG_ERR_LACKDATA,
00078     XML_RELAXNG_ERR_INTERNAL,
00079     XML_RELAXNG_ERR_ELEMWRONG,
00080     XML_RELAXNG_ERR_TEXTWRONG
00081 } xmlRelaxNGValidErr;
00082 
00083 /*
00084  * Interfaces for parsing.
00085  */
00086 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL 
00087                     xmlRelaxNGNewParserCtxt     (const char *URL);
00088 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL 
00089                     xmlRelaxNGNewMemParserCtxt  (const char *buffer,
00090                                                  int size);
00091 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL   
00092                     xmlRelaxNGNewDocParserCtxt  (xmlDocPtr doc);
00093 
00094 XMLPUBFUN void XMLCALL          
00095                     xmlRelaxNGFreeParserCtxt    (xmlRelaxNGParserCtxtPtr ctxt);
00096 XMLPUBFUN void XMLCALL                  
00097                     xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00098                                          xmlRelaxNGValidityErrorFunc err,
00099                                          xmlRelaxNGValidityWarningFunc warn,
00100                                          void *ctx);
00101 XMLPUBFUN int XMLCALL
00102                     xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00103                                          xmlRelaxNGValidityErrorFunc *err,
00104                                          xmlRelaxNGValidityWarningFunc *warn,
00105                                          void **ctx);
00106 XMLPUBFUN xmlRelaxNGPtr XMLCALL 
00107                     xmlRelaxNGParse             (xmlRelaxNGParserCtxtPtr ctxt);
00108 XMLPUBFUN void XMLCALL          
00109                     xmlRelaxNGFree              (xmlRelaxNGPtr schema);
00110 #ifdef LIBXML_OUTPUT_ENABLED
00111 XMLPUBFUN void XMLCALL          
00112                     xmlRelaxNGDump              (FILE *output,
00113                                          xmlRelaxNGPtr schema);
00114 XMLPUBFUN void XMLCALL
00115                     xmlRelaxNGDumpTree  (FILE * output,
00116                                          xmlRelaxNGPtr schema);
00117 #endif /* LIBXML_OUTPUT_ENABLED */
00118 /*
00119  * Interfaces for validating
00120  */
00121 XMLPUBFUN void XMLCALL          
00122                     xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00123                                          xmlRelaxNGValidityErrorFunc err,
00124                                          xmlRelaxNGValidityWarningFunc warn,
00125                                          void *ctx);
00126 XMLPUBFUN int XMLCALL   
00127                     xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00128                                          xmlRelaxNGValidityErrorFunc *err,
00129                                          xmlRelaxNGValidityWarningFunc *warn,
00130                                          void **ctx);
00131 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL        
00132                     xmlRelaxNGNewValidCtxt      (xmlRelaxNGPtr schema);
00133 XMLPUBFUN void XMLCALL                  
00134                     xmlRelaxNGFreeValidCtxt     (xmlRelaxNGValidCtxtPtr ctxt);
00135 XMLPUBFUN int XMLCALL                   
00136                     xmlRelaxNGValidateDoc       (xmlRelaxNGValidCtxtPtr ctxt,
00137                                                  xmlDocPtr doc);
00138 XMLPUBFUN void XMLCALL                  
00139                     xmlRelaxNGCleanupTypes      (void);
00140 /*
00141  * Interfaces for progressive validation when possible
00142  */
00143 XMLPUBFUN int XMLCALL   
00144                     xmlRelaxNGValidatePushElement       (xmlRelaxNGValidCtxtPtr ctxt,
00145                                          xmlDocPtr doc,
00146                                          xmlNodePtr elem);
00147 XMLPUBFUN int XMLCALL   
00148                     xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
00149                                          const xmlChar *data,
00150                                          int len);
00151 XMLPUBFUN int XMLCALL   
00152                     xmlRelaxNGValidatePopElement        (xmlRelaxNGValidCtxtPtr ctxt,
00153                                          xmlDocPtr doc,
00154                                          xmlNodePtr elem);
00155 XMLPUBFUN int XMLCALL   
00156                     xmlRelaxNGValidateFullElement       (xmlRelaxNGValidCtxtPtr ctxt,
00157                                          xmlDocPtr doc,
00158                                          xmlNodePtr elem);
00159 
00160 #ifdef __cplusplus
00161 }
00162 #endif
00163 #endif /* __XML_RELAX_NG__ */
00164 

Generated on Wed Mar 16 00:10:27 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1