debugXML.h.svn-base
上传用户:szjkjd
上传日期:2022-06-27
资源大小:8968k
文件大小:5k
源码类别:

浏览器

开发平台:

Visual C++

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