/*
 * Summary: Old SAX version 1 handler, deprecated
 * Description: DEPRECATED set of SAX version 1 interfaces used to
 *              build the DOM tree.
 *
 * Copy: See Copyright for the status of this software.
 *
 * Author: Daniel Veillard
 */


#ifndef __XML_SAX_H__
#define __XML_SAX_H__

#include <stdio.h>
#include <stdlib.h>
#include "xmlversion.h"
#include "parser.h"
#include "xlink.h"

#ifdef LIBXML_LEGACY_ENABLED

#ifdef __cplusplus
extern "C" {
#endif
XMLPUBFUN const xmlChar * XMLCALL
                getPublicId                     (void *ctx);
XMLPUBFUN const xmlChar * XMLCALL       
                getSystemId                     (void *ctx);
XMLPUBFUN void XMLCALL          
                setDocumentLocator              (void *ctx,
                                                 xmlSAXLocatorPtr loc);
    
XMLPUBFUN int XMLCALL           
                getLineNumber                   (void *ctx);
XMLPUBFUN int XMLCALL           
                getColumnNumber                 (void *ctx);

XMLPUBFUN int XMLCALL           
                isStandalone                    (void *ctx);
XMLPUBFUN int XMLCALL           
                hasInternalSubset               (void *ctx);
XMLPUBFUN int XMLCALL           
                hasExternalSubset               (void *ctx);

XMLPUBFUN void XMLCALL          
                internalSubset                  (void *ctx,
                                                 const xmlChar *name,
                                                 const xmlChar *ExternalID,
                                                 const xmlChar *SystemID);
XMLPUBFUN void XMLCALL          
                externalSubset                  (void *ctx,
                                                 const xmlChar *name,
                                                 const xmlChar *ExternalID,
                                                 const xmlChar *SystemID);
XMLPUBFUN xmlEntityPtr XMLCALL  
                getEntity                       (void *ctx,
                                                 const xmlChar *name);
XMLPUBFUN xmlEntityPtr XMLCALL  
                getParameterEntity              (void *ctx,
                                                 const xmlChar *name);
XMLPUBFUN xmlParserInputPtr XMLCALL 
                resolveEntity                   (void *ctx,
                                                 const xmlChar *publicId,
                                                 const xmlChar *systemId);

XMLPUBFUN void XMLCALL          
                entityDecl                      (void *ctx,
                                                 const xmlChar *name,
                                                 int type,
                                                 const xmlChar *publicId,
                                                 const xmlChar *systemId,
                                                 xmlChar *content);
XMLPUBFUN void XMLCALL          
                attributeDecl                   (void *ctx,
                                                 const xmlChar *elem,
                                                 const xmlChar *fullname,
                                                 int type,
                                                 int def,
                                                 const xmlChar *defaultValue,
                                                 xmlEnumerationPtr tree);
XMLPUBFUN void XMLCALL          
                elementDecl                     (void *ctx,
                                                 const xmlChar *name,
                                                 int type,
                                                 xmlElementContentPtr content);
XMLPUBFUN void XMLCALL          
                notationDecl                    (void *ctx,
                                                 const xmlChar *name,
                                                 const xmlChar *publicId,
                                                 const xmlChar *systemId);
XMLPUBFUN void XMLCALL          
                unparsedEntityDecl              (void *ctx,
                                                 const xmlChar *name,
                                                 const xmlChar *publicId,
                                                 const xmlChar *systemId,
                                                 const xmlChar *notationName);

XMLPUBFUN void XMLCALL          
                startDocument                   (void *ctx);
XMLPUBFUN void XMLCALL          
                endDocument                     (void *ctx);
XMLPUBFUN void XMLCALL          
                attribute                       (void *ctx,
                                                 const xmlChar *fullname,
                                                 const xmlChar *value);
XMLPUBFUN void XMLCALL          
                startElement                    (void *ctx,
                                                 const xmlChar *fullname,
                                                 const xmlChar **atts);
XMLPUBFUN void XMLCALL          
                endElement                      (void *ctx,
                                                 const xmlChar *name);
XMLPUBFUN void XMLCALL          
                characters                      (void *ctx,
                                                 const xmlChar *ch,
                                                 int len);
XMLPUBFUN void XMLCALL          
                ignorableWhitespace             (void *ctx,
                                                 const xmlChar *ch,
                                                 int len);
XMLPUBFUN void XMLCALL          
                processingInstruction           (void *ctx,
                                                 const xmlChar *target,
                                                 const xmlChar *data);
XMLPUBFUN void XMLCALL          
                globalNamespace                 (void *ctx,
                                                 const xmlChar *href,
                                                 const xmlChar *prefix);
XMLPUBFUN void XMLCALL          
                setNamespace                    (void *ctx,
                                                 const xmlChar *name);
XMLPUBFUN xmlNsPtr XMLCALL      
                getNamespace                    (void *ctx);
XMLPUBFUN int XMLCALL           
                checkNamespace                  (void *ctx,
                                                 xmlChar *nameSpace);
XMLPUBFUN void XMLCALL          
                namespaceDecl                   (void *ctx,
                                                 const xmlChar *href,
                                                 const xmlChar *prefix);
XMLPUBFUN void XMLCALL          
                comment                         (void *ctx,
                                                 const xmlChar *value);
XMLPUBFUN void XMLCALL          
                cdataBlock                      (void *ctx,
                                                 const xmlChar *value,
                                                 int len);

#ifdef LIBXML_SAX1_ENABLED
XMLPUBFUN void XMLCALL          
                initxmlDefaultSAXHandler        (xmlSAXHandlerV1 *hdlr,
                                                 int warning);
#ifdef LIBXML_HTML_ENABLED
XMLPUBFUN void XMLCALL          
                inithtmlDefaultSAXHandler       (xmlSAXHandlerV1 *hdlr);
#endif
#ifdef LIBXML_DOCB_ENABLED
XMLPUBFUN void XMLCALL          
                initdocbDefaultSAXHandler       (xmlSAXHandlerV1 *hdlr);
#endif
#endif /* LIBXML_SAX1_ENABLED */

#ifdef __cplusplus
}
#endif

#endif /* LIBXML_LEGACY_ENABLED */

#endif /* __XML_SAX_H__ */
