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