38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Summary: XML Schemastron implementation
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Description: interface to the XML Schematron validity checking.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Copy: See Copyright for the status of this software.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Author: Daniel Veillard
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifndef __XML_SCHEMATRON_H__
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define __XML_SCHEMATRON_H__
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/xmlversion.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef LIBXML_SCHEMATRON_ENABLED
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/tree.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef __cplusplus
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncextern "C" {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef enum {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync XML_SCHEMATRON_OUT_QUIET = 1 << 0, /* quiet no report */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync XML_SCHEMATRON_OUT_TEXT = 1 << 1, /* build a textual report */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync XML_SCHEMATRON_OUT_XML = 1 << 2, /* output SVRL */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync XML_SCHEMATRON_OUT_FILE = 1 << 8, /* output to a file descriptor */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync XML_SCHEMATRON_OUT_BUFFER = 1 << 9, /* output to a buffer */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync XML_SCHEMATRON_OUT_IO = 1 << 10 /* output to I/O mechanism */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync} xmlSchematronValidOptions;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * The schemas related types are kept internal
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef struct _xmlSchematron xmlSchematron;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef xmlSchematron *xmlSchematronPtr;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * A schemas validation context
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsynctypedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Interfaces for parsing.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronNewParserCtxt (const char *URL);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronNewMemParserCtxt(const char *buffer,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int size);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronNewDocParserCtxt(xmlDocPtr doc);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronFreeParserCtxt (xmlSchematronParserCtxtPtr ctxt);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*****
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityErrorFunc err,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityWarningFunc warn,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void *ctx);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityErrorFunc * err,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityWarningFunc * warn,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void **ctx);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronIsValid (xmlSchematronValidCtxtPtr ctxt);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *****/
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN xmlSchematronPtr XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronParse (xmlSchematronParserCtxtPtr ctxt);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronFree (xmlSchematronPtr schema);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Interfaces for validating
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/******
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronSetValidStructuredErrors(
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlStructuredErrorFunc serror,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void *ctx);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronSetValidErrors (xmlSchematronValidCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityErrorFunc err,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityWarningFunc warn,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void *ctx);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronGetValidErrors (xmlSchematronValidCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityErrorFunc *err,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidityWarningFunc *warn,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void **ctx);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int options);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlNodePtr elem);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *******/
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronNewValidCtxt (xmlSchematronPtr schema,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int options);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN void XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronFreeValidCtxt (xmlSchematronValidCtxtPtr ctxt);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncXMLPUBFUN int XMLCALL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlSchematronValidateDoc (xmlSchematronValidCtxtPtr ctxt,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlDocPtr instance);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef __cplusplus
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif /* LIBXML_SCHEMATRON_ENABLED */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif /* __XML_SCHEMATRON_H__ */