(root)/
libxml2-2.12.3/
include/
libxml/
debugXML.h
       1  /*
       2   * Summary: Tree debugging APIs
       3   * Description: Interfaces to a set of routines used for debugging the tree
       4   *              produced by the XML parser.
       5   *
       6   * Copy: See Copyright for the status of this software.
       7   *
       8   * Author: Daniel Veillard
       9   */
      10  
      11  #ifndef __DEBUG_XML__
      12  #define __DEBUG_XML__
      13  #include <stdio.h>
      14  #include <libxml/xmlversion.h>
      15  #include <libxml/tree.h>
      16  
      17  #ifdef LIBXML_DEBUG_ENABLED
      18  
      19  #include <libxml/xpath.h>
      20  
      21  #ifdef __cplusplus
      22  extern "C" {
      23  #endif
      24  
      25  /*
      26   * The standard Dump routines.
      27   */
      28  XMLPUBFUN void
      29  	xmlDebugDumpString	(FILE *output,
      30  				 const xmlChar *str);
      31  XMLPUBFUN void
      32  	xmlDebugDumpAttr	(FILE *output,
      33  				 xmlAttrPtr attr,
      34  				 int depth);
      35  XMLPUBFUN void
      36  	xmlDebugDumpAttrList	(FILE *output,
      37  				 xmlAttrPtr attr,
      38  				 int depth);
      39  XMLPUBFUN void
      40  	xmlDebugDumpOneNode	(FILE *output,
      41  				 xmlNodePtr node,
      42  				 int depth);
      43  XMLPUBFUN void
      44  	xmlDebugDumpNode	(FILE *output,
      45  				 xmlNodePtr node,
      46  				 int depth);
      47  XMLPUBFUN void
      48  	xmlDebugDumpNodeList	(FILE *output,
      49  				 xmlNodePtr node,
      50  				 int depth);
      51  XMLPUBFUN void
      52  	xmlDebugDumpDocumentHead(FILE *output,
      53  				 xmlDocPtr doc);
      54  XMLPUBFUN void
      55  	xmlDebugDumpDocument	(FILE *output,
      56  				 xmlDocPtr doc);
      57  XMLPUBFUN void
      58  	xmlDebugDumpDTD		(FILE *output,
      59  				 xmlDtdPtr dtd);
      60  XMLPUBFUN void
      61  	xmlDebugDumpEntities	(FILE *output,
      62  				 xmlDocPtr doc);
      63  
      64  /****************************************************************
      65   *								*
      66   *			Checking routines			*
      67   *								*
      68   ****************************************************************/
      69  
      70  XMLPUBFUN int
      71  	xmlDebugCheckDocument	(FILE * output,
      72  				 xmlDocPtr doc);
      73  
      74  /****************************************************************
      75   *								*
      76   *			XML shell helpers			*
      77   *								*
      78   ****************************************************************/
      79  
      80  XMLPUBFUN void
      81  	xmlLsOneNode		(FILE *output, xmlNodePtr node);
      82  XMLPUBFUN int
      83  	xmlLsCountNode		(xmlNodePtr node);
      84  
      85  XMLPUBFUN const char *
      86  	xmlBoolToText		(int boolval);
      87  
      88  /****************************************************************
      89   *								*
      90   *	 The XML shell related structures and functions		*
      91   *								*
      92   ****************************************************************/
      93  
      94  #ifdef LIBXML_XPATH_ENABLED
      95  /**
      96   * xmlShellReadlineFunc:
      97   * @prompt:  a string prompt
      98   *
      99   * This is a generic signature for the XML shell input function.
     100   *
     101   * Returns a string which will be freed by the Shell.
     102   */
     103  typedef char * (* xmlShellReadlineFunc)(char *prompt);
     104  
     105  /**
     106   * xmlShellCtxt:
     107   *
     108   * A debugging shell context.
     109   * TODO: add the defined function tables.
     110   */
     111  typedef struct _xmlShellCtxt xmlShellCtxt;
     112  typedef xmlShellCtxt *xmlShellCtxtPtr;
     113  struct _xmlShellCtxt {
     114      char *filename;
     115      xmlDocPtr doc;
     116      xmlNodePtr node;
     117      xmlXPathContextPtr pctxt;
     118      int loaded;
     119      FILE *output;
     120      xmlShellReadlineFunc input;
     121  };
     122  
     123  /**
     124   * xmlShellCmd:
     125   * @ctxt:  a shell context
     126   * @arg:  a string argument
     127   * @node:  a first node
     128   * @node2:  a second node
     129   *
     130   * This is a generic signature for the XML shell functions.
     131   *
     132   * Returns an int, negative returns indicating errors.
     133   */
     134  typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
     135                               char *arg,
     136  			     xmlNodePtr node,
     137  			     xmlNodePtr node2);
     138  
     139  XMLPUBFUN void
     140  	xmlShellPrintXPathError	(int errorType,
     141  				 const char *arg);
     142  XMLPUBFUN void
     143  	xmlShellPrintXPathResult(xmlXPathObjectPtr list);
     144  XMLPUBFUN int
     145  	xmlShellList		(xmlShellCtxtPtr ctxt,
     146  				 char *arg,
     147  				 xmlNodePtr node,
     148  				 xmlNodePtr node2);
     149  XMLPUBFUN int
     150  	xmlShellBase		(xmlShellCtxtPtr ctxt,
     151  				 char *arg,
     152  				 xmlNodePtr node,
     153  				 xmlNodePtr node2);
     154  XMLPUBFUN int
     155  	xmlShellDir		(xmlShellCtxtPtr ctxt,
     156  				 char *arg,
     157  				 xmlNodePtr node,
     158  				 xmlNodePtr node2);
     159  XMLPUBFUN int
     160  	xmlShellLoad		(xmlShellCtxtPtr ctxt,
     161  				 char *filename,
     162  				 xmlNodePtr node,
     163  				 xmlNodePtr node2);
     164  #ifdef LIBXML_OUTPUT_ENABLED
     165  XMLPUBFUN void
     166  	xmlShellPrintNode	(xmlNodePtr node);
     167  XMLPUBFUN int
     168  	xmlShellCat		(xmlShellCtxtPtr ctxt,
     169  				 char *arg,
     170  				 xmlNodePtr node,
     171  				 xmlNodePtr node2);
     172  XMLPUBFUN int
     173  	xmlShellWrite		(xmlShellCtxtPtr ctxt,
     174  				 char *filename,
     175  				 xmlNodePtr node,
     176  				 xmlNodePtr node2);
     177  XMLPUBFUN int
     178  	xmlShellSave		(xmlShellCtxtPtr ctxt,
     179  				 char *filename,
     180  				 xmlNodePtr node,
     181  				 xmlNodePtr node2);
     182  #endif /* LIBXML_OUTPUT_ENABLED */
     183  #ifdef LIBXML_VALID_ENABLED
     184  XMLPUBFUN int
     185  	xmlShellValidate	(xmlShellCtxtPtr ctxt,
     186  				 char *dtd,
     187  				 xmlNodePtr node,
     188  				 xmlNodePtr node2);
     189  #endif /* LIBXML_VALID_ENABLED */
     190  XMLPUBFUN int
     191  	xmlShellDu		(xmlShellCtxtPtr ctxt,
     192  				 char *arg,
     193  				 xmlNodePtr tree,
     194  				 xmlNodePtr node2);
     195  XMLPUBFUN int
     196  	xmlShellPwd		(xmlShellCtxtPtr ctxt,
     197  				 char *buffer,
     198  				 xmlNodePtr node,
     199  				 xmlNodePtr node2);
     200  
     201  /*
     202   * The Shell interface.
     203   */
     204  XMLPUBFUN void
     205  	xmlShell		(xmlDocPtr doc,
     206  				 char *filename,
     207  				 xmlShellReadlineFunc input,
     208  				 FILE *output);
     209  
     210  #endif /* LIBXML_XPATH_ENABLED */
     211  
     212  #ifdef __cplusplus
     213  }
     214  #endif
     215  
     216  #endif /* LIBXML_DEBUG_ENABLED */
     217  #endif /* __DEBUG_XML__ */