debugXML.h
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
6 */
7
8 #ifndef __DEBUG_XML__
9 #define __DEBUG_XML__
10 #include
11 #include
12
13 #ifdef LIBXML_DEBUG_ENABLED
14
15 #include
16
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20
21 /*
22 * The standard Dump routines.
23 */
24 void xmlDebugDumpString (FILE *output,
25 const xmlChar *str);
26 void xmlDebugDumpAttr (FILE *output,
27 xmlAttrPtr attr,
28 int depth);
29 void xmlDebugDumpAttrList (FILE *output,
30 xmlAttrPtr attr,
31 int depth);
32 void xmlDebugDumpOneNode (FILE *output,
33 xmlNodePtr node,
34 int depth);
35 void xmlDebugDumpNode (FILE *output,
36 xmlNodePtr node,
37 int depth);
38 void xmlDebugDumpNodeList (FILE *output,
39 xmlNodePtr node,
40 int depth);
41 void xmlDebugDumpDocumentHead(FILE *output,
42 xmlDocPtr doc);
43 void xmlDebugDumpDocument (FILE *output,
44 xmlDocPtr doc);
45 void xmlDebugDumpDTD (FILE *output,
46 xmlDtdPtr dtd);
47 void xmlDebugDumpEntities (FILE *output,
48 xmlDocPtr doc);
49
50 void xmlLsOneNode (FILE *output, xmlNodePtr node);
51 int xmlLsCountNode (xmlNodePtr node);
52
53 LIBXML_DLL_IMPORT const char *xmlBoolToText (int boolval);
54
55 /****************************************************************
56 * *
57 * The XML shell related structures and functions *
58 * *
59 ****************************************************************/
60
61 /**
62 * xmlShellReadlineFunc:
63 * @prompt: a string prompt
64 *
65 * This is a generic signature for the XML shell input function.
66 *
67 * Returns a string which will be freed by the Shell.
68 */
69 typedef char * (* xmlShellReadlineFunc)(char *prompt); <typedef:xmlShellReadlineFunc>
70
71 /**
72 * xmlShellCtxt:
73 *
74 * A debugging shell context.
75 * TODO: add the defined function tables.
76 */
77 typedef struct _xmlShellCtxt xmlShellCtxt; <_xmlShellCtxt>
78 typedef xmlShellCtxt *xmlShellCtxtPtr; <typedef:xmlShellCtxtPtr>
79 struct _xmlShellCtxt {
80 char *filename;
81 xmlDocPtr doc;
82 xmlNodePtr node;
83 xmlXPathContextPtr pctxt;
84 int loaded;
85 FILE *output;
86 xmlShellReadlineFunc input;
87 };
88
89 /**
90 * xmlShellCmd:
91 * @ctxt: a shell context
92 * @arg: a string argument
93 * @node: a first node
94 * @node2: a second node
95 *
96 * This is a generic signature for the XML shell functions.
97 *
98 * Returns an int, negative returns indicating errors.
99 */
100 typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
101 char *arg,
102 xmlNodePtr node,
103 xmlNodePtr node2); <typedef:xmlShellCmd>
104
105 void xmlShellPrintXPathError (int errorType,
106 const char *arg);
107 void xmlShellPrintNode (xmlNodePtr node);
108 void xmlShellPrintXPathResult(xmlXPathObjectPtr list);
109 int xmlShellList (xmlShellCtxtPtr ctxt,
110 char *arg,
111 xmlNodePtr node,
112 xmlNodePtr node2);
113 int xmlShellBase (xmlShellCtxtPtr ctxt,
114 char *arg,
115 xmlNodePtr node,
116 xmlNodePtr node2);
117 int xmlShellDir (xmlShellCtxtPtr ctxt,
118 char *arg,
119 xmlNodePtr node,
120 xmlNodePtr node2);
121 int xmlShellCat (xmlShellCtxtPtr ctxt,
122 char *arg,
123 xmlNodePtr node,
124 xmlNodePtr node2);
125 int xmlShellLoad (xmlShellCtxtPtr ctxt,
126 char *filename,
127 xmlNodePtr node,
128 xmlNodePtr node2);
129 int xmlShellWrite (xmlShellCtxtPtr ctxt,
130 char *filename,
131 xmlNodePtr node,
132 xmlNodePtr node2);
133 int xmlShellSave (xmlShellCtxtPtr ctxt,
134 char *filename,
135 xmlNodePtr node,
136 xmlNodePtr node2);
137 int xmlShellValidate (xmlShellCtxtPtr ctxt,
138 char *dtd,
139 xmlNodePtr node,
140 xmlNodePtr node2);
141 int xmlShellDu (xmlShellCtxtPtr ctxt,
142 char *arg,
143 xmlNodePtr tree,
144 xmlNodePtr node2);
145 int xmlShellPwd (xmlShellCtxtPtr ctxt,
146 char *buffer,
147 xmlNodePtr node,
148 xmlNodePtr node2);
149
150 /*
151 * The Shell interface.
152 */
153 void xmlShell (xmlDocPtr doc,
154 char *filename,
155 xmlShellReadlineFunc input,
156 FILE *output);
157
158 #ifdef __cplusplus
159 }
160 #endif
161
162 #endif /* LIBXML_DEBUG_ENABLED */
163 #endif /* __DEBUG_XML__ */