imgtools/imgcheck/libxml/debugXML.h
changeset 0 044383f39525
equal deleted inserted replaced
-1:000000000000 0:044383f39525
       
     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 XMLCALL	
       
    29 	xmlDebugDumpString	(FILE *output,
       
    30 				 const xmlChar *str);
       
    31 XMLPUBFUN void XMLCALL	
       
    32 	xmlDebugDumpAttr	(FILE *output,
       
    33 				 xmlAttrPtr attr,
       
    34 				 int depth);
       
    35 XMLPUBFUN void XMLCALL	
       
    36 	xmlDebugDumpAttrList	(FILE *output,
       
    37 				 xmlAttrPtr attr,
       
    38 				 int depth);
       
    39 XMLPUBFUN void XMLCALL	
       
    40 	xmlDebugDumpOneNode	(FILE *output,
       
    41 				 xmlNodePtr node,
       
    42 				 int depth);
       
    43 XMLPUBFUN void XMLCALL
       
    44 	xmlDebugDumpNode	(FILE *output,
       
    45 				 xmlNodePtr node,
       
    46 				 int depth);
       
    47 XMLPUBFUN void XMLCALL
       
    48 	xmlDebugDumpNodeList	(FILE *output,
       
    49 				 xmlNodePtr node,
       
    50 				 int depth);
       
    51 XMLPUBFUN void XMLCALL
       
    52 	xmlDebugDumpDocumentHead(FILE *output,
       
    53 				 xmlDocPtr doc);
       
    54 XMLPUBFUN void XMLCALL
       
    55 	xmlDebugDumpDocument	(FILE *output,
       
    56 				 xmlDocPtr doc);
       
    57 XMLPUBFUN void XMLCALL	
       
    58 	xmlDebugDumpDTD		(FILE *output,
       
    59 				 xmlDtdPtr dtd);
       
    60 XMLPUBFUN void XMLCALL	
       
    61 	xmlDebugDumpEntities	(FILE *output,
       
    62 				 xmlDocPtr doc);
       
    63 
       
    64 /****************************************************************
       
    65  *								*
       
    66  *	 		Checking routines			*
       
    67  *								*
       
    68  ****************************************************************/
       
    69 
       
    70 XMLPUBFUN int XMLCALL
       
    71 	xmlDebugCheckDocument	(FILE * output,
       
    72 				 xmlDocPtr doc);
       
    73 
       
    74 /****************************************************************
       
    75  *								*
       
    76  *	 		XML shell helpers			*
       
    77  *								*
       
    78  ****************************************************************/
       
    79 
       
    80 XMLPUBFUN void XMLCALL	
       
    81 	xmlLsOneNode		(FILE *output, xmlNodePtr node);
       
    82 XMLPUBFUN int XMLCALL	
       
    83 	xmlLsCountNode		(xmlNodePtr node);
       
    84 
       
    85 XMLPUBFUN const char * XMLCALL 
       
    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  *  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 XMLCALL	
       
   140 	xmlShellPrintXPathError	(int errorType,
       
   141 				 const char *arg);
       
   142 XMLPUBFUN void XMLCALL	
       
   143 	xmlShellPrintXPathResult(xmlXPathObjectPtr list);
       
   144 XMLPUBFUN int XMLCALL	
       
   145 	xmlShellList		(xmlShellCtxtPtr ctxt,
       
   146 				 char *arg,
       
   147 				 xmlNodePtr node,
       
   148 				 xmlNodePtr node2);
       
   149 XMLPUBFUN int XMLCALL	
       
   150 	xmlShellBase		(xmlShellCtxtPtr ctxt,
       
   151 				 char *arg,
       
   152 				 xmlNodePtr node,
       
   153 				 xmlNodePtr node2);
       
   154 XMLPUBFUN int XMLCALL	
       
   155 	xmlShellDir		(xmlShellCtxtPtr ctxt,
       
   156 				 char *arg,
       
   157 				 xmlNodePtr node,
       
   158 				 xmlNodePtr node2);
       
   159 XMLPUBFUN int XMLCALL	
       
   160 	xmlShellLoad		(xmlShellCtxtPtr ctxt,
       
   161 				 char *filename,
       
   162 				 xmlNodePtr node,
       
   163 				 xmlNodePtr node2);
       
   164 #ifdef LIBXML_OUTPUT_ENABLED
       
   165 XMLPUBFUN void XMLCALL	
       
   166 	xmlShellPrintNode	(xmlNodePtr node);
       
   167 XMLPUBFUN int XMLCALL	
       
   168 	xmlShellCat		(xmlShellCtxtPtr ctxt,
       
   169 				 char *arg,
       
   170 				 xmlNodePtr node,
       
   171 				 xmlNodePtr node2);
       
   172 XMLPUBFUN int XMLCALL	
       
   173 	xmlShellWrite		(xmlShellCtxtPtr ctxt,
       
   174 				 char *filename,
       
   175 				 xmlNodePtr node,
       
   176 				 xmlNodePtr node2);
       
   177 XMLPUBFUN int XMLCALL	
       
   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 XMLCALL	
       
   185 	xmlShellValidate	(xmlShellCtxtPtr ctxt,
       
   186 				 char *dtd,
       
   187 				 xmlNodePtr node,
       
   188 				 xmlNodePtr node2);
       
   189 #endif /* LIBXML_VALID_ENABLED */
       
   190 XMLPUBFUN int XMLCALL	
       
   191 	xmlShellDu		(xmlShellCtxtPtr ctxt,
       
   192 				 char *arg,
       
   193 				 xmlNodePtr tree,
       
   194 				 xmlNodePtr node2);
       
   195 XMLPUBFUN int XMLCALL	
       
   196 	xmlShellPwd		(xmlShellCtxtPtr ctxt,
       
   197 				 char *buffer,
       
   198 				 xmlNodePtr node,
       
   199 				 xmlNodePtr node2);
       
   200 
       
   201 /*
       
   202  * The Shell interface.
       
   203  */
       
   204 XMLPUBFUN void XMLCALL	
       
   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__ */