2001-02-23 20:55:21 +03:00
/*
* debugXML . h : Interfaces to a set of routines used for debugging the tree
* produced by the XML parser .
*
2001-06-24 16:13:24 +04:00
* Daniel Veillard < daniel @ veillard . com >
2001-02-23 20:55:21 +03:00
*/
# ifndef __DEBUG_XML__
# define __DEBUG_XML__
# include <stdio.h>
# include <libxml/tree.h>
# ifdef LIBXML_DEBUG_ENABLED
# include <libxml/xpath.h>
# ifdef __cplusplus
extern " C " {
# endif
/*
2002-03-12 21:46:39 +03:00
* The standard Dump routines .
2001-02-23 20:55:21 +03:00
*/
void xmlDebugDumpString ( FILE * output ,
const xmlChar * str ) ;
void xmlDebugDumpAttr ( FILE * output ,
xmlAttrPtr attr ,
int depth ) ;
void xmlDebugDumpAttrList ( FILE * output ,
xmlAttrPtr attr ,
int depth ) ;
void xmlDebugDumpOneNode ( FILE * output ,
xmlNodePtr node ,
int depth ) ;
void xmlDebugDumpNode ( FILE * output ,
xmlNodePtr node ,
int depth ) ;
void xmlDebugDumpNodeList ( FILE * output ,
xmlNodePtr node ,
int depth ) ;
void xmlDebugDumpDocumentHead ( FILE * output ,
xmlDocPtr doc ) ;
void xmlDebugDumpDocument ( FILE * output ,
xmlDocPtr doc ) ;
void xmlDebugDumpDTD ( FILE * output ,
2001-07-18 23:30:27 +04:00
xmlDtdPtr dtd ) ;
2001-02-23 20:55:21 +03:00
void xmlDebugDumpEntities ( FILE * output ,
xmlDocPtr doc ) ;
2001-10-11 13:12:24 +04:00
void xmlLsOneNode ( FILE * output , xmlNodePtr node ) ;
int xmlLsCountNode ( xmlNodePtr node ) ;
2001-12-20 17:01:47 +03:00
LIBXML_DLL_IMPORT const char * xmlBoolToText ( int boolval ) ;
2001-10-11 13:12:24 +04:00
2001-02-23 20:55:21 +03:00
/****************************************************************
* *
* The XML shell related structures and functions *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* xmlShellReadlineFunc :
* @ prompt : a string prompt
*
2002-03-12 21:46:39 +03:00
* This is a generic signature for the XML shell input function .
2001-02-23 20:55:21 +03:00
*
2002-03-12 21:46:39 +03:00
* Returns a string which will be freed by the Shell .
2001-02-23 20:55:21 +03:00
*/
typedef char * ( * xmlShellReadlineFunc ) ( char * prompt ) ;
2001-05-19 18:59:49 +04:00
/**
* xmlShellCtxt :
*
2002-03-12 21:46:39 +03:00
* A debugging shell context .
2001-02-23 20:55:21 +03:00
* TODO : add the defined function tables .
*/
typedef struct _xmlShellCtxt xmlShellCtxt ;
typedef xmlShellCtxt * xmlShellCtxtPtr ;
struct _xmlShellCtxt {
char * filename ;
xmlDocPtr doc ;
xmlNodePtr node ;
xmlXPathContextPtr pctxt ;
int loaded ;
FILE * output ;
xmlShellReadlineFunc input ;
} ;
/**
* xmlShellCmd :
* @ ctxt : a shell context
* @ arg : a string argument
* @ node : a first node
* @ node2 : a second node
*
2002-03-12 21:46:39 +03:00
* This is a generic signature for the XML shell functions .
2001-02-23 20:55:21 +03:00
*
2002-03-12 21:46:39 +03:00
* Returns an int , negative returns indicating errors .
2001-02-23 20:55:21 +03:00
*/
typedef int ( * xmlShellCmd ) ( xmlShellCtxtPtr ctxt ,
char * arg ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
2002-01-21 01:08:18 +03:00
void xmlShellPrintXPathError ( int errorType ,
const char * arg ) ;
2001-10-11 13:12:24 +04:00
void xmlShellPrintNode ( xmlNodePtr node ) ;
void xmlShellPrintXPathResult ( xmlXPathObjectPtr list ) ;
int xmlShellList ( xmlShellCtxtPtr ctxt ,
char * arg ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellBase ( xmlShellCtxtPtr ctxt ,
char * arg ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellDir ( xmlShellCtxtPtr ctxt ,
char * arg ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellCat ( xmlShellCtxtPtr ctxt ,
char * arg ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellLoad ( xmlShellCtxtPtr ctxt ,
char * filename ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellWrite ( xmlShellCtxtPtr ctxt ,
char * filename ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellSave ( xmlShellCtxtPtr ctxt ,
char * filename ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellValidate ( xmlShellCtxtPtr ctxt ,
char * dtd ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
int xmlShellDu ( xmlShellCtxtPtr ctxt ,
char * arg ,
xmlNodePtr tree ,
xmlNodePtr node2 ) ;
int xmlShellPwd ( xmlShellCtxtPtr ctxt ,
char * buffer ,
xmlNodePtr node ,
xmlNodePtr node2 ) ;
2001-02-23 20:55:21 +03:00
/*
* The Shell interface .
*/
2001-10-11 13:12:24 +04:00
void xmlShell ( xmlDocPtr doc ,
char * filename ,
xmlShellReadlineFunc input ,
FILE * output ) ;
2001-02-23 20:55:21 +03:00
# ifdef __cplusplus
}
# endif
# endif /* LIBXML_DEBUG_ENABLED */
# endif /* __DEBUG_XML__ */