set eol-style:native
[reactos.git] / reactos / lib / libxml2 / include / libxml / debugXML.h
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 * TODO: 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__ */