|
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__ */ |