updated libxml2 to 2.5.10
[TestXSLT.git] / libxml2 / include / libxml / relaxng.h
index 788864d..929d0e6 100644 (file)
@@ -28,16 +28,70 @@ typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
 
 /*
+ * xmlRelaxNGValidErr:
+ *
+ * List of possible Relax NG validation errors
+ */
+typedef enum {
+    XML_RELAXNG_OK = 0,
+    XML_RELAXNG_ERR_MEMORY,
+    XML_RELAXNG_ERR_TYPE,
+    XML_RELAXNG_ERR_TYPEVAL,
+    XML_RELAXNG_ERR_DUPID,
+    XML_RELAXNG_ERR_TYPECMP,
+    XML_RELAXNG_ERR_NOSTATE,
+    XML_RELAXNG_ERR_NODEFINE,
+    XML_RELAXNG_ERR_LISTEXTRA,
+    XML_RELAXNG_ERR_LISTEMPTY,
+    XML_RELAXNG_ERR_INTERNODATA,
+    XML_RELAXNG_ERR_INTERSEQ,
+    XML_RELAXNG_ERR_INTEREXTRA,
+    XML_RELAXNG_ERR_ELEMNAME,
+    XML_RELAXNG_ERR_ATTRNAME,
+    XML_RELAXNG_ERR_ELEMNONS,
+    XML_RELAXNG_ERR_ATTRNONS,
+    XML_RELAXNG_ERR_ELEMWRONGNS,
+    XML_RELAXNG_ERR_ATTRWRONGNS,
+    XML_RELAXNG_ERR_ELEMEXTRANS,
+    XML_RELAXNG_ERR_ATTREXTRANS,
+    XML_RELAXNG_ERR_ELEMNOTEMPTY,
+    XML_RELAXNG_ERR_NOELEM,
+    XML_RELAXNG_ERR_NOTELEM,
+    XML_RELAXNG_ERR_ATTRVALID,
+    XML_RELAXNG_ERR_CONTENTVALID,
+    XML_RELAXNG_ERR_EXTRACONTENT,
+    XML_RELAXNG_ERR_INVALIDATTR,
+    XML_RELAXNG_ERR_DATAELEM,
+    XML_RELAXNG_ERR_VALELEM,
+    XML_RELAXNG_ERR_LISTELEM,
+    XML_RELAXNG_ERR_DATATYPE,
+    XML_RELAXNG_ERR_VALUE,
+    XML_RELAXNG_ERR_LIST,
+    XML_RELAXNG_ERR_NOGRAMMAR,
+    XML_RELAXNG_ERR_EXTRADATA,
+    XML_RELAXNG_ERR_LACKDATA,
+    XML_RELAXNG_ERR_INTERNAL,
+    XML_RELAXNG_ERR_ELEMWRONG,
+    XML_RELAXNG_ERR_TEXTWRONG
+} xmlRelaxNGValidErr;
+
+/*
  * Interfaces for parsing.
  */
 xmlRelaxNGParserCtxtPtr xmlRelaxNGNewParserCtxt        (const char *URL);
 xmlRelaxNGParserCtxtPtr xmlRelaxNGNewMemParserCtxt(const char *buffer,
                                                 int size);
+xmlRelaxNGParserCtxtPtr xmlRelaxNGNewDocParserCtxt(xmlDocPtr doc);
+
 void           xmlRelaxNGFreeParserCtxt        (xmlRelaxNGParserCtxtPtr ctxt);
 void           xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
                                         xmlRelaxNGValidityErrorFunc err,
                                         xmlRelaxNGValidityWarningFunc warn,
                                         void *ctx);
+int            xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
+                                        xmlRelaxNGValidityErrorFunc *err,
+                                        xmlRelaxNGValidityWarningFunc *warn,
+                                        void **ctx);
 xmlRelaxNGPtr  xmlRelaxNGParse         (xmlRelaxNGParserCtxtPtr ctxt);
 void           xmlRelaxNGFree          (xmlRelaxNGPtr schema);
 void           xmlRelaxNGDump          (FILE *output,
@@ -51,14 +105,28 @@ void               xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
                                         xmlRelaxNGValidityErrorFunc err,
                                         xmlRelaxNGValidityWarningFunc warn,
                                         void *ctx);
+int            xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
+                                        xmlRelaxNGValidityErrorFunc *err,
+                                        xmlRelaxNGValidityWarningFunc *warn,
+                                        void **ctx);
 xmlRelaxNGValidCtxtPtr xmlRelaxNGNewValidCtxt  (xmlRelaxNGPtr schema);
 void                   xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
 int                    xmlRelaxNGValidateDoc   (xmlRelaxNGValidCtxtPtr ctxt,
-                                                xmlDocPtr instance);
-int                    xmlRelaxNGValidateStream(xmlRelaxNGValidCtxtPtr ctxt,
-                                                xmlParserInputBufferPtr input,
-                                                xmlCharEncoding enc,
-                                                xmlSAXHandlerPtr sax,
-                                                void *user_data);
+                                                xmlDocPtr doc);
 void                   xmlRelaxNGCleanupTypes  (void);
+/*
+ * Interfaces for progressive validation when possible
+ */
+int    xmlRelaxNGValidatePushElement   (xmlRelaxNGValidCtxtPtr ctxt,
+                                        xmlDocPtr doc,
+                                        xmlNodePtr elem);
+int    xmlRelaxNGValidatePushCData     (xmlRelaxNGValidCtxtPtr ctxt,
+                                        const xmlChar *data,
+                                        int len);
+int    xmlRelaxNGValidatePopElement    (xmlRelaxNGValidCtxtPtr ctxt,
+                                        xmlDocPtr doc,
+                                        xmlNodePtr elem);
+int    xmlRelaxNGValidateFullElement   (xmlRelaxNGValidCtxtPtr ctxt,
+                                        xmlDocPtr doc,
+                                        xmlNodePtr elem);
 #endif /* __XML_RELAX_NG__ */