Imported Upstream version 0.19.7
[platform/upstream/gettext.git] / gettext-tools / gnulib-lib / libxml / debugXML.in.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__ */