| Viewing file:  debugXML.h (5.03 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/** 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__ */
 
 |