doubango/thirdparties/common/include/libxml/debugXML.h
c732d49e
 /*
  * Summary: Tree debugging APIs
  * Description: Interfaces to a set of routines used for debugging the tree
  *              produced by the XML parser.
  *
  * Copy: See Copyright for the status of this software.
  *
  * Author: Daniel Veillard
  */
 
 #ifndef __DEBUG_XML__
 #define __DEBUG_XML__
 #include <stdio.h>
 #include <libxml/xmlversion.h>
 #include <libxml/tree.h>
 
 #ifdef LIBXML_DEBUG_ENABLED
 
 #include <libxml/xpath.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /*
  * The standard Dump routines.
  */
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpString	(FILE *output,
 				 const xmlChar *str);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpAttr	(FILE *output,
 				 xmlAttrPtr attr,
 				 int depth);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpAttrList	(FILE *output,
 				 xmlAttrPtr attr,
 				 int depth);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpOneNode	(FILE *output,
 				 xmlNodePtr node,
 				 int depth);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpNode	(FILE *output,
 				 xmlNodePtr node,
 				 int depth);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpNodeList	(FILE *output,
 				 xmlNodePtr node,
 				 int depth);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpDocumentHead(FILE *output,
 				 xmlDocPtr doc);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpDocument	(FILE *output,
 				 xmlDocPtr doc);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpDTD		(FILE *output,
 				 xmlDtdPtr dtd);
 XMLPUBFUN void XMLCALL
 	xmlDebugDumpEntities	(FILE *output,
 				 xmlDocPtr doc);
 
 /****************************************************************
  *								*
  *			Checking routines			*
  *								*
  ****************************************************************/
 
 XMLPUBFUN int XMLCALL
 	xmlDebugCheckDocument	(FILE * output,
 				 xmlDocPtr doc);
 
 /****************************************************************
  *								*
  *			XML shell helpers			*
  *								*
  ****************************************************************/
 
 XMLPUBFUN void XMLCALL
 	xmlLsOneNode		(FILE *output, xmlNodePtr node);
 XMLPUBFUN int XMLCALL
 	xmlLsCountNode		(xmlNodePtr node);
 
 XMLPUBFUN const char * XMLCALL
 	xmlBoolToText		(int boolval);
 
 /****************************************************************
  *								*
  *	 The XML shell related structures and functions		*
  *								*
  ****************************************************************/
 
 #ifdef LIBXML_XPATH_ENABLED
 /**
  * xmlShellReadlineFunc:
  * @prompt:  a string prompt
  *
  * This is a generic signature for the XML shell input function.
  *
  * Returns a string which will be freed by the Shell.
  */
 typedef char * (* xmlShellReadlineFunc)(char *prompt);
 
 /**
  * xmlShellCtxt:
  *
  * A debugging shell context.
  * 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
  *
  * This is a generic signature for the XML shell functions.
  *
  * Returns an int, negative returns indicating errors.
  */
 typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
                              char *arg,
 			     xmlNodePtr node,
 			     xmlNodePtr node2);
 
 XMLPUBFUN void XMLCALL
 	xmlShellPrintXPathError	(int errorType,
 				 const char *arg);
 XMLPUBFUN void XMLCALL
 	xmlShellPrintXPathResult(xmlXPathObjectPtr list);
 XMLPUBFUN int XMLCALL
 	xmlShellList		(xmlShellCtxtPtr ctxt,
 				 char *arg,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 XMLPUBFUN int XMLCALL
 	xmlShellBase		(xmlShellCtxtPtr ctxt,
 				 char *arg,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 XMLPUBFUN int XMLCALL
 	xmlShellDir		(xmlShellCtxtPtr ctxt,
 				 char *arg,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 XMLPUBFUN int XMLCALL
 	xmlShellLoad		(xmlShellCtxtPtr ctxt,
 				 char *filename,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 #ifdef LIBXML_OUTPUT_ENABLED
 XMLPUBFUN void XMLCALL
 	xmlShellPrintNode	(xmlNodePtr node);
 XMLPUBFUN int XMLCALL
 	xmlShellCat		(xmlShellCtxtPtr ctxt,
 				 char *arg,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 XMLPUBFUN int XMLCALL
 	xmlShellWrite		(xmlShellCtxtPtr ctxt,
 				 char *filename,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 XMLPUBFUN int XMLCALL
 	xmlShellSave		(xmlShellCtxtPtr ctxt,
 				 char *filename,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 #endif /* LIBXML_OUTPUT_ENABLED */
 #ifdef LIBXML_VALID_ENABLED
 XMLPUBFUN int XMLCALL
 	xmlShellValidate	(xmlShellCtxtPtr ctxt,
 				 char *dtd,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 #endif /* LIBXML_VALID_ENABLED */
 XMLPUBFUN int XMLCALL
 	xmlShellDu		(xmlShellCtxtPtr ctxt,
 				 char *arg,
 				 xmlNodePtr tree,
 				 xmlNodePtr node2);
 XMLPUBFUN int XMLCALL
 	xmlShellPwd		(xmlShellCtxtPtr ctxt,
 				 char *buffer,
 				 xmlNodePtr node,
 				 xmlNodePtr node2);
 
 /*
  * The Shell interface.
  */
 XMLPUBFUN void XMLCALL
 	xmlShell		(xmlDocPtr doc,
 				 char *filename,
 				 xmlShellReadlineFunc input,
 				 FILE *output);
 
 #endif /* LIBXML_XPATH_ENABLED */
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* LIBXML_DEBUG_ENABLED */
 #endif /* __DEBUG_XML__ */