debugXML.h
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. /*
  2.  * debugXML.h : Interfaces to a set of routines used for debugging the tree
  3.  *              produced by the XML parser.
  4.  *
  5.  * Daniel Veillard <Daniel.Veillard@w3.org>
  6.  */
  7. #ifndef __DEBUG_XML__
  8. #define __DEBUG_XML__
  9. #include <stdio.h>
  10. #include <libxml/tree.h>
  11. #ifdef LIBXML_DEBUG_ENABLED
  12. #include <libxml/xpath.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /*
  17.  * The standard Dump routines
  18.  */
  19. void xmlDebugDumpString (FILE *output,
  20.  const xmlChar *str);
  21. void xmlDebugDumpAttr (FILE *output,
  22.  xmlAttrPtr attr,
  23.  int depth);
  24. void xmlDebugDumpAttrList (FILE *output,
  25.  xmlAttrPtr attr,
  26.  int depth);
  27. void xmlDebugDumpOneNode (FILE *output,
  28.  xmlNodePtr node,
  29.  int depth);
  30. void xmlDebugDumpNode (FILE *output,
  31.  xmlNodePtr node,
  32.  int depth);
  33. void xmlDebugDumpNodeList (FILE *output,
  34.  xmlNodePtr node,
  35.  int depth);
  36. void xmlDebugDumpDocumentHead(FILE *output,
  37.  xmlDocPtr doc);
  38. void xmlDebugDumpDocument (FILE *output,
  39.  xmlDocPtr doc);
  40. void xmlDebugDumpEntities (FILE *output,
  41.  xmlDocPtr doc);
  42. void xmlLsOneNode (FILE *output,
  43.  xmlNodePtr node);
  44. /****************************************************************
  45.  * *
  46.  *  The XML shell related structures and functions *
  47.  * *
  48.  ****************************************************************/
  49. /**
  50.  * xmlShellReadlineFunc:
  51.  * @prompt:  a string prompt
  52.  *
  53.  * This is a generic signature for the XML shell input function
  54.  *
  55.  * Returns a string which will be freed by the Shell
  56.  */
  57. typedef char * (* xmlShellReadlineFunc)(char *prompt);
  58. /*
  59.  * The shell context itself
  60.  * TODO: add the defined function tables.
  61.  */
  62. typedef struct _xmlShellCtxt xmlShellCtxt;
  63. typedef xmlShellCtxt *xmlShellCtxtPtr;
  64. struct _xmlShellCtxt {
  65.     char *filename;
  66.     xmlDocPtr doc;
  67.     xmlNodePtr node;
  68.     xmlXPathContextPtr pctxt;
  69.     int loaded;
  70.     FILE *output;
  71.     xmlShellReadlineFunc input;
  72. };
  73. /**
  74.  * xmlShellCmd:
  75.  * @ctxt:  a shell context
  76.  * @arg:  a string argument
  77.  * @node:  a first node
  78.  * @node2:  a second node
  79.  *
  80.  * This is a generic signature for the XML shell functions
  81.  *
  82.  * Returns an int, negative returns indicating errors
  83.  */
  84. typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
  85.                              char *arg,
  86.      xmlNodePtr node,
  87.      xmlNodePtr node2);
  88. /*
  89.  * The Shell interface.
  90.  */
  91. void xmlShell (xmlDocPtr doc,
  92.  char *filename,
  93.  xmlShellReadlineFunc input,
  94.  FILE *output);
  95.  
  96. #ifdef __cplusplus
  97. }
  98. #endif
  99. #endif /* LIBXML_DEBUG_ENABLED */
  100. #endif /* __DEBUG_XML__ */