debugXML.h

00001 /*
00002 
00003  * Summary: Tree debugging APIs
00004 
00005  * Description: Interfaces to a set of routines used for debugging the tree
00006 
00007  *              produced by the XML parser.
00008 
00009  *
00010 
00011  * Copy: See Copyright for the status of this software.
00012 
00013  *
00014 
00015  * Author: Daniel Veillard
00016 
00017  */
00018 
00019 
00020 
00021 #ifndef __DEBUG_XML__
00022 
00023 #define __DEBUG_XML__
00024 
00025 #include <stdio.h>
00026 
00027 #include <libxml/xmlversion.h>
00028 
00029 #include <libxml/tree.h>
00030 
00031 
00032 
00033 #ifdef LIBXML_DEBUG_ENABLED
00034 
00035 
00036 
00037 #include <libxml/xpath.h>
00038 
00039 
00040 
00041 #ifdef __cplusplus
00042 
00043 extern "C" {
00044 
00045 #endif
00046 
00047 
00048 
00049 /*
00050 
00051  * The standard Dump routines.
00052 
00053  */
00054 
00055 XMLPUBFUN void XMLCALL  
00056 
00057         xmlDebugDumpString      (FILE *output,
00058 
00059                                  const xmlChar *str);
00060 
00061 XMLPUBFUN void XMLCALL  
00062 
00063         xmlDebugDumpAttr        (FILE *output,
00064 
00065                                  xmlAttrPtr attr,
00066 
00067                                  int depth);
00068 
00069 XMLPUBFUN void XMLCALL  
00070 
00071         xmlDebugDumpAttrList    (FILE *output,
00072 
00073                                  xmlAttrPtr attr,
00074 
00075                                  int depth);
00076 
00077 XMLPUBFUN void XMLCALL  
00078 
00079         xmlDebugDumpOneNode     (FILE *output,
00080 
00081                                  xmlNodePtr node,
00082 
00083                                  int depth);
00084 
00085 XMLPUBFUN void XMLCALL
00086 
00087         xmlDebugDumpNode        (FILE *output,
00088 
00089                                  xmlNodePtr node,
00090 
00091                                  int depth);
00092 
00093 XMLPUBFUN void XMLCALL
00094 
00095         xmlDebugDumpNodeList    (FILE *output,
00096 
00097                                  xmlNodePtr node,
00098 
00099                                  int depth);
00100 
00101 XMLPUBFUN void XMLCALL
00102 
00103         xmlDebugDumpDocumentHead(FILE *output,
00104 
00105                                  xmlDocPtr doc);
00106 
00107 XMLPUBFUN void XMLCALL
00108 
00109         xmlDebugDumpDocument    (FILE *output,
00110 
00111                                  xmlDocPtr doc);
00112 
00113 XMLPUBFUN void XMLCALL  
00114 
00115         xmlDebugDumpDTD         (FILE *output,
00116 
00117                                  xmlDtdPtr dtd);
00118 
00119 XMLPUBFUN void XMLCALL  
00120 
00121         xmlDebugDumpEntities    (FILE *output,
00122 
00123                                  xmlDocPtr doc);
00124 
00125 
00126 
00127 /****************************************************************
00128 
00129  *                                                              *
00130 
00131  *                      Checking routines                       *
00132 
00133  *                                                              *
00134 
00135  ****************************************************************/
00136 
00137 
00138 
00139 XMLPUBFUN int XMLCALL
00140 
00141         xmlDebugCheckDocument   (FILE * output,
00142 
00143                                  xmlDocPtr doc);
00144 
00145 
00146 
00147 /****************************************************************
00148 
00149  *                                                              *
00150 
00151  *                      XML shell helpers                       *
00152 
00153  *                                                              *
00154 
00155  ****************************************************************/
00156 
00157 
00158 
00159 XMLPUBFUN void XMLCALL  
00160 
00161         xmlLsOneNode            (FILE *output, xmlNodePtr node);
00162 
00163 XMLPUBFUN int XMLCALL   
00164 
00165         xmlLsCountNode          (xmlNodePtr node);
00166 
00167 
00168 
00169 XMLPUBFUN const char * XMLCALL 
00170 
00171         xmlBoolToText           (int boolval);
00172 
00173 
00174 
00175 /****************************************************************
00176 
00177  *                                                              *
00178 
00179  *       The XML shell related structures and functions         *
00180 
00181  *                                                              *
00182 
00183  ****************************************************************/
00184 
00185 
00186 
00187 #ifdef LIBXML_XPATH_ENABLED
00188 
00205 typedef char * (* xmlShellReadlineFunc)(char *prompt);
00206 
00207 
00208 
00221 typedef struct _xmlShellCtxt xmlShellCtxt;
00222 
00223 typedef xmlShellCtxt *xmlShellCtxtPtr;
00224 
00225 struct _xmlShellCtxt {
00226 
00227     char *filename;
00228 
00229     xmlDocPtr doc;
00230 
00231     xmlNodePtr node;
00232 
00233     xmlXPathContextPtr pctxt;
00234 
00235     int loaded;
00236 
00237     FILE *output;
00238 
00239     xmlShellReadlineFunc input;
00240 
00241 };
00242 
00243 
00244 
00267 typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
00268 
00269                              char *arg,
00270 
00271                              xmlNodePtr node,
00272 
00273                              xmlNodePtr node2);
00274 
00275 
00276 
00277 XMLPUBFUN void XMLCALL  
00278 
00279         xmlShellPrintXPathError (int errorType,
00280 
00281                                  const char *arg);
00282 
00283 XMLPUBFUN void XMLCALL  
00284 
00285         xmlShellPrintXPathResult(xmlXPathObjectPtr list);
00286 
00287 XMLPUBFUN int XMLCALL   
00288 
00289         xmlShellList            (xmlShellCtxtPtr ctxt,
00290 
00291                                  char *arg,
00292 
00293                                  xmlNodePtr node,
00294 
00295                                  xmlNodePtr node2);
00296 
00297 XMLPUBFUN int XMLCALL   
00298 
00299         xmlShellBase            (xmlShellCtxtPtr ctxt,
00300 
00301                                  char *arg,
00302 
00303                                  xmlNodePtr node,
00304 
00305                                  xmlNodePtr node2);
00306 
00307 XMLPUBFUN int XMLCALL   
00308 
00309         xmlShellDir             (xmlShellCtxtPtr ctxt,
00310 
00311                                  char *arg,
00312 
00313                                  xmlNodePtr node,
00314 
00315                                  xmlNodePtr node2);
00316 
00317 XMLPUBFUN int XMLCALL   
00318 
00319         xmlShellLoad            (xmlShellCtxtPtr ctxt,
00320 
00321                                  char *filename,
00322 
00323                                  xmlNodePtr node,
00324 
00325                                  xmlNodePtr node2);
00326 
00327 #ifdef LIBXML_OUTPUT_ENABLED
00328 
00329 XMLPUBFUN void XMLCALL  
00330 
00331         xmlShellPrintNode       (xmlNodePtr node);
00332 
00333 XMLPUBFUN int XMLCALL   
00334 
00335         xmlShellCat             (xmlShellCtxtPtr ctxt,
00336 
00337                                  char *arg,
00338 
00339                                  xmlNodePtr node,
00340 
00341                                  xmlNodePtr node2);
00342 
00343 XMLPUBFUN int XMLCALL   
00344 
00345         xmlShellWrite           (xmlShellCtxtPtr ctxt,
00346 
00347                                  char *filename,
00348 
00349                                  xmlNodePtr node,
00350 
00351                                  xmlNodePtr node2);
00352 
00353 XMLPUBFUN int XMLCALL   
00354 
00355         xmlShellSave            (xmlShellCtxtPtr ctxt,
00356 
00357                                  char *filename,
00358 
00359                                  xmlNodePtr node,
00360 
00361                                  xmlNodePtr node2);
00362 
00363 #endif /* LIBXML_OUTPUT_ENABLED */
00364 
00365 #ifdef LIBXML_VALID_ENABLED
00366 
00367 XMLPUBFUN int XMLCALL   
00368 
00369         xmlShellValidate        (xmlShellCtxtPtr ctxt,
00370 
00371                                  char *dtd,
00372 
00373                                  xmlNodePtr node,
00374 
00375                                  xmlNodePtr node2);
00376 
00377 #endif /* LIBXML_VALID_ENABLED */
00378 
00379 XMLPUBFUN int XMLCALL   
00380 
00381         xmlShellDu              (xmlShellCtxtPtr ctxt,
00382 
00383                                  char *arg,
00384 
00385                                  xmlNodePtr tree,
00386 
00387                                  xmlNodePtr node2);
00388 
00389 XMLPUBFUN int XMLCALL   
00390 
00391         xmlShellPwd             (xmlShellCtxtPtr ctxt,
00392 
00393                                  char *buffer,
00394 
00395                                  xmlNodePtr node,
00396 
00397                                  xmlNodePtr node2);
00398 
00399 
00400 
00401 /*
00402 
00403  * The Shell interface.
00404 
00405  */
00406 
00407 XMLPUBFUN void XMLCALL  
00408 
00409         xmlShell                (xmlDocPtr doc,
00410 
00411                                  char *filename,
00412 
00413                                  xmlShellReadlineFunc input,
00414 
00415                                  FILE *output);
00416 
00417                          
00418 
00419 #endif /* LIBXML_XPATH_ENABLED */
00420 
00421 
00422 
00423 #ifdef __cplusplus
00424 
00425 }
00426 
00427 #endif
00428 
00429 
00430 
00431 #endif /* LIBXML_DEBUG_ENABLED */
00432 
00433 #endif /* __DEBUG_XML__ */
00434 

Generated on Wed Jul 26 13:30:46 2006 for XSB by  doxygen 1.4.5