|
Packit Service |
a31ea6 |
/*
|
|
Packit Service |
a31ea6 |
* Summary: implementation of the Relax-NG validation
|
|
Packit Service |
a31ea6 |
* Description: implementation of the Relax-NG validation
|
|
Packit Service |
a31ea6 |
*
|
|
Packit Service |
a31ea6 |
* Copy: See Copyright for the status of this software.
|
|
Packit Service |
a31ea6 |
*
|
|
Packit Service |
a31ea6 |
* Author: Daniel Veillard
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
#ifndef __XML_RELAX_NG__
|
|
Packit Service |
a31ea6 |
#define __XML_RELAX_NG__
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
#include <libxml/xmlversion.h>
|
|
Packit Service |
a31ea6 |
#include <libxml/hash.h>
|
|
Packit Service |
a31ea6 |
#include <libxml/xmlstring.h>
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
#ifdef LIBXML_SCHEMAS_ENABLED
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
#ifdef __cplusplus
|
|
Packit Service |
a31ea6 |
extern "C" {
|
|
Packit Service |
a31ea6 |
#endif
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
typedef struct _xmlRelaxNG xmlRelaxNG;
|
|
Packit Service |
a31ea6 |
typedef xmlRelaxNG *xmlRelaxNGPtr;
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
/**
|
|
Packit Service |
a31ea6 |
* xmlRelaxNGValidityErrorFunc:
|
|
Packit Service |
a31ea6 |
* @ctx: the validation context
|
|
Packit Service |
a31ea6 |
* @msg: the message
|
|
Packit Service |
a31ea6 |
* @...: extra arguments
|
|
Packit Service |
a31ea6 |
*
|
|
Packit Service |
a31ea6 |
* Signature of an error callback from a Relax-NG validation
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx,
|
|
Packit Service |
a31ea6 |
const char *msg,
|
|
Packit Service |
a31ea6 |
...) LIBXML_ATTR_FORMAT(2,3);
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
/**
|
|
Packit Service |
a31ea6 |
* xmlRelaxNGValidityWarningFunc:
|
|
Packit Service |
a31ea6 |
* @ctx: the validation context
|
|
Packit Service |
a31ea6 |
* @msg: the message
|
|
Packit Service |
a31ea6 |
* @...: extra arguments
|
|
Packit Service |
a31ea6 |
*
|
|
Packit Service |
a31ea6 |
* Signature of a warning callback from a Relax-NG validation
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx,
|
|
Packit Service |
a31ea6 |
const char *msg,
|
|
Packit Service |
a31ea6 |
...) LIBXML_ATTR_FORMAT(2,3);
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
/**
|
|
Packit Service |
a31ea6 |
* A schemas validation context
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
|
|
Packit Service |
a31ea6 |
typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
|
|
Packit Service |
a31ea6 |
typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
/*
|
|
Packit Service |
a31ea6 |
* xmlRelaxNGValidErr:
|
|
Packit Service |
a31ea6 |
*
|
|
Packit Service |
a31ea6 |
* List of possible Relax NG validation errors
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
typedef enum {
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_OK = 0,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_MEMORY,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_TYPE,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_TYPEVAL,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_DUPID,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_TYPECMP,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_NOSTATE,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_NODEFINE,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_LISTEXTRA,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_LISTEMPTY,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_INTERNODATA,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_INTERSEQ,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_INTEREXTRA,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ELEMNAME,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ATTRNAME,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ELEMNONS,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ATTRNONS,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ELEMWRONGNS,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ATTRWRONGNS,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ELEMEXTRANS,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ATTREXTRANS,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ELEMNOTEMPTY,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_NOELEM,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_NOTELEM,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ATTRVALID,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_CONTENTVALID,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_EXTRACONTENT,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_INVALIDATTR,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_DATAELEM,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_VALELEM,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_LISTELEM,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_DATATYPE,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_VALUE,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_LIST,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_NOGRAMMAR,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_EXTRADATA,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_LACKDATA,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_INTERNAL,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_ELEMWRONG,
|
|
Packit Service |
a31ea6 |
XML_RELAXNG_ERR_TEXTWRONG
|
|
Packit Service |
a31ea6 |
} xmlRelaxNGValidErr;
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
/*
|
|
Packit Service |
a31ea6 |
* xmlRelaxNGParserFlags:
|
|
Packit Service |
a31ea6 |
*
|
|
Packit Service |
a31ea6 |
* List of possible Relax NG Parser flags
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
typedef enum {
|
|
Packit Service |
a31ea6 |
XML_RELAXNGP_NONE = 0,
|
|
Packit Service |
a31ea6 |
XML_RELAXNGP_FREE_DOC = 1,
|
|
Packit Service |
a31ea6 |
XML_RELAXNGP_CRNG = 2
|
|
Packit Service |
a31ea6 |
} xmlRelaxNGParserFlag;
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGInitTypes (void);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGCleanupTypes (void);
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
/*
|
|
Packit Service |
a31ea6 |
* Interfaces for parsing.
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGNewParserCtxt (const char *URL);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGNewMemParserCtxt (const char *buffer,
|
|
Packit Service |
a31ea6 |
int size);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
int flag);
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityErrorFunc err,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityWarningFunc warn,
|
|
Packit Service |
a31ea6 |
void *ctx);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityErrorFunc *err,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityWarningFunc *warn,
|
|
Packit Service |
a31ea6 |
void **ctx);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGSetParserStructuredErrors(
|
|
Packit Service |
a31ea6 |
xmlRelaxNGParserCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlStructuredErrorFunc serror,
|
|
Packit Service |
a31ea6 |
void *ctx);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN xmlRelaxNGPtr XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGFree (xmlRelaxNGPtr schema);
|
|
Packit Service |
a31ea6 |
#ifdef LIBXML_OUTPUT_ENABLED
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGDump (FILE *output,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGPtr schema);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGDumpTree (FILE * output,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGPtr schema);
|
|
Packit Service |
a31ea6 |
#endif /* LIBXML_OUTPUT_ENABLED */
|
|
Packit Service |
a31ea6 |
/*
|
|
Packit Service |
a31ea6 |
* Interfaces for validating
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityErrorFunc err,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityWarningFunc warn,
|
|
Packit Service |
a31ea6 |
void *ctx);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityErrorFunc *err,
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidityWarningFunc *warn,
|
|
Packit Service |
a31ea6 |
void **ctx);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlStructuredErrorFunc serror, void *ctx);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN void XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlDocPtr doc);
|
|
Packit Service |
a31ea6 |
/*
|
|
Packit Service |
a31ea6 |
* Interfaces for progressive validation when possible
|
|
Packit Service |
a31ea6 |
*/
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlDocPtr doc,
|
|
Packit Service |
a31ea6 |
xmlNodePtr elem);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
const xmlChar *data,
|
|
Packit Service |
a31ea6 |
int len);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlDocPtr doc,
|
|
Packit Service |
a31ea6 |
xmlNodePtr elem);
|
|
Packit Service |
a31ea6 |
XMLPUBFUN int XMLCALL
|
|
Packit Service |
a31ea6 |
xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
|
|
Packit Service |
a31ea6 |
xmlDocPtr doc,
|
|
Packit Service |
a31ea6 |
xmlNodePtr elem);
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
#ifdef __cplusplus
|
|
Packit Service |
a31ea6 |
}
|
|
Packit Service |
a31ea6 |
#endif
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
#endif /* LIBXML_SCHEMAS_ENABLED */
|
|
Packit Service |
a31ea6 |
|
|
Packit Service |
a31ea6 |
#endif /* __XML_RELAX_NG__ */
|