Eneboo - Documentación para desarrolladores
src/libdigidoc/libxml2/include/libxml/relaxng.h
Ir a la documentación de este archivo.
00001 /*
00002  * Summary: implementation of the Relax-NG validation
00003  * Description: implementation of the Relax-NG validation
00004  *
00005  * Copy: See Copyright for the status of this software.
00006  *
00007  * Author: Daniel Veillard
00008  */
00009 
00010 #ifndef __XML_RELAX_NG__
00011 #define __XML_RELAX_NG__
00012 
00013 #include <libxml/xmlversion.h>
00014 #include <libxml/hash.h>
00015 #include <libxml/xmlstring.h>
00016 
00017 #ifdef LIBXML_SCHEMAS_ENABLED
00018 
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022 
00023 typedef struct _xmlRelaxNG xmlRelaxNG;
00024 typedef xmlRelaxNG *xmlRelaxNGPtr;
00025 
00026 
00035 typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
00036 
00045 typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
00046 
00050 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
00051 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
00052 
00053 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
00054 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
00055 
00056 /*
00057  * xmlRelaxNGValidErr:
00058  *
00059  * List of possible Relax NG validation errors
00060  */
00061 typedef enum {
00062     XML_RELAXNG_OK = 0,
00063     XML_RELAXNG_ERR_MEMORY,
00064     XML_RELAXNG_ERR_TYPE,
00065     XML_RELAXNG_ERR_TYPEVAL,
00066     XML_RELAXNG_ERR_DUPID,
00067     XML_RELAXNG_ERR_TYPECMP,
00068     XML_RELAXNG_ERR_NOSTATE,
00069     XML_RELAXNG_ERR_NODEFINE,
00070     XML_RELAXNG_ERR_LISTEXTRA,
00071     XML_RELAXNG_ERR_LISTEMPTY,
00072     XML_RELAXNG_ERR_INTERNODATA,
00073     XML_RELAXNG_ERR_INTERSEQ,
00074     XML_RELAXNG_ERR_INTEREXTRA,
00075     XML_RELAXNG_ERR_ELEMNAME,
00076     XML_RELAXNG_ERR_ATTRNAME,
00077     XML_RELAXNG_ERR_ELEMNONS,
00078     XML_RELAXNG_ERR_ATTRNONS,
00079     XML_RELAXNG_ERR_ELEMWRONGNS,
00080     XML_RELAXNG_ERR_ATTRWRONGNS,
00081     XML_RELAXNG_ERR_ELEMEXTRANS,
00082     XML_RELAXNG_ERR_ATTREXTRANS,
00083     XML_RELAXNG_ERR_ELEMNOTEMPTY,
00084     XML_RELAXNG_ERR_NOELEM,
00085     XML_RELAXNG_ERR_NOTELEM,
00086     XML_RELAXNG_ERR_ATTRVALID,
00087     XML_RELAXNG_ERR_CONTENTVALID,
00088     XML_RELAXNG_ERR_EXTRACONTENT,
00089     XML_RELAXNG_ERR_INVALIDATTR,
00090     XML_RELAXNG_ERR_DATAELEM,
00091     XML_RELAXNG_ERR_VALELEM,
00092     XML_RELAXNG_ERR_LISTELEM,
00093     XML_RELAXNG_ERR_DATATYPE,
00094     XML_RELAXNG_ERR_VALUE,
00095     XML_RELAXNG_ERR_LIST,
00096     XML_RELAXNG_ERR_NOGRAMMAR,
00097     XML_RELAXNG_ERR_EXTRADATA,
00098     XML_RELAXNG_ERR_LACKDATA,
00099     XML_RELAXNG_ERR_INTERNAL,
00100     XML_RELAXNG_ERR_ELEMWRONG,
00101     XML_RELAXNG_ERR_TEXTWRONG
00102 } xmlRelaxNGValidErr;
00103 
00104 /*
00105  * xmlRelaxNGParserFlags:
00106  *
00107  * List of possible Relax NG Parser flags
00108  */
00109 typedef enum {
00110     XML_RELAXNGP_NONE = 0,
00111     XML_RELAXNGP_FREE_DOC = 1,
00112     XML_RELAXNGP_CRNG = 2
00113 } xmlRelaxNGParserFlag;
00114 
00115 XMLPUBFUN int XMLCALL
00116                     xmlRelaxNGInitTypes         (void);
00117 XMLPUBFUN void XMLCALL
00118                     xmlRelaxNGCleanupTypes      (void);
00119 
00120 /*
00121  * Interfaces for parsing.
00122  */
00123 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00124                     xmlRelaxNGNewParserCtxt     (const char *URL);
00125 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00126                     xmlRelaxNGNewMemParserCtxt  (const char *buffer,
00127                                                  int size);
00128 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00129                     xmlRelaxNGNewDocParserCtxt  (xmlDocPtr doc);
00130 
00131 XMLPUBFUN int XMLCALL
00132                     xmlRelaxParserSetFlag       (xmlRelaxNGParserCtxtPtr ctxt,
00133                                                  int flag);
00134 
00135 XMLPUBFUN void XMLCALL
00136                     xmlRelaxNGFreeParserCtxt    (xmlRelaxNGParserCtxtPtr ctxt);
00137 XMLPUBFUN void XMLCALL
00138                     xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00139                                          xmlRelaxNGValidityErrorFunc err,
00140                                          xmlRelaxNGValidityWarningFunc warn,
00141                                          void *ctx);
00142 XMLPUBFUN int XMLCALL
00143                     xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00144                                          xmlRelaxNGValidityErrorFunc *err,
00145                                          xmlRelaxNGValidityWarningFunc *warn,
00146                                          void **ctx);
00147 XMLPUBFUN void XMLCALL
00148                     xmlRelaxNGSetParserStructuredErrors(
00149                                          xmlRelaxNGParserCtxtPtr ctxt,
00150                                          xmlStructuredErrorFunc serror,
00151                                          void *ctx);
00152 XMLPUBFUN xmlRelaxNGPtr XMLCALL
00153                     xmlRelaxNGParse             (xmlRelaxNGParserCtxtPtr ctxt);
00154 XMLPUBFUN void XMLCALL
00155                     xmlRelaxNGFree              (xmlRelaxNGPtr schema);
00156 #ifdef LIBXML_OUTPUT_ENABLED
00157 XMLPUBFUN void XMLCALL
00158                     xmlRelaxNGDump              (FILE *output,
00159                                          xmlRelaxNGPtr schema);
00160 XMLPUBFUN void XMLCALL
00161                     xmlRelaxNGDumpTree  (FILE * output,
00162                                          xmlRelaxNGPtr schema);
00163 #endif /* LIBXML_OUTPUT_ENABLED */
00164 /*
00165  * Interfaces for validating
00166  */
00167 XMLPUBFUN void XMLCALL
00168                     xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00169                                          xmlRelaxNGValidityErrorFunc err,
00170                                          xmlRelaxNGValidityWarningFunc warn,
00171                                          void *ctx);
00172 XMLPUBFUN int XMLCALL
00173                     xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00174                                          xmlRelaxNGValidityErrorFunc *err,
00175                                          xmlRelaxNGValidityWarningFunc *warn,
00176                                          void **ctx);
00177 XMLPUBFUN void XMLCALL
00178                         xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
00179                                           xmlStructuredErrorFunc serror, void *ctx);
00180 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
00181                     xmlRelaxNGNewValidCtxt      (xmlRelaxNGPtr schema);
00182 XMLPUBFUN void XMLCALL
00183                     xmlRelaxNGFreeValidCtxt     (xmlRelaxNGValidCtxtPtr ctxt);
00184 XMLPUBFUN int XMLCALL
00185                     xmlRelaxNGValidateDoc       (xmlRelaxNGValidCtxtPtr ctxt,
00186                                                  xmlDocPtr doc);
00187 /*
00188  * Interfaces for progressive validation when possible
00189  */
00190 XMLPUBFUN int XMLCALL
00191                     xmlRelaxNGValidatePushElement       (xmlRelaxNGValidCtxtPtr ctxt,
00192                                          xmlDocPtr doc,
00193                                          xmlNodePtr elem);
00194 XMLPUBFUN int XMLCALL
00195                     xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
00196                                          const xmlChar *data,
00197                                          int len);
00198 XMLPUBFUN int XMLCALL
00199                     xmlRelaxNGValidatePopElement        (xmlRelaxNGValidCtxtPtr ctxt,
00200                                          xmlDocPtr doc,
00201                                          xmlNodePtr elem);
00202 XMLPUBFUN int XMLCALL
00203                     xmlRelaxNGValidateFullElement       (xmlRelaxNGValidCtxtPtr ctxt,
00204                                          xmlDocPtr doc,
00205                                          xmlNodePtr elem);
00206 
00207 #ifdef __cplusplus
00208 }
00209 #endif
00210 
00211 #endif /* LIBXML_SCHEMAS_ENABLED */
00212 
00213 #endif /* __XML_RELAX_NG__ */
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'