Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/xml2/include/libxml/debugXML.h
4394 views
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
29
xmlDebugDumpString (FILE *output,
30
const xmlChar *str);
31
XMLPUBFUN void
32
xmlDebugDumpAttr (FILE *output,
33
xmlAttrPtr attr,
34
int depth);
35
XMLPUBFUN void
36
xmlDebugDumpAttrList (FILE *output,
37
xmlAttrPtr attr,
38
int depth);
39
XMLPUBFUN void
40
xmlDebugDumpOneNode (FILE *output,
41
xmlNodePtr node,
42
int depth);
43
XMLPUBFUN void
44
xmlDebugDumpNode (FILE *output,
45
xmlNodePtr node,
46
int depth);
47
XMLPUBFUN void
48
xmlDebugDumpNodeList (FILE *output,
49
xmlNodePtr node,
50
int depth);
51
XMLPUBFUN void
52
xmlDebugDumpDocumentHead(FILE *output,
53
xmlDocPtr doc);
54
XMLPUBFUN void
55
xmlDebugDumpDocument (FILE *output,
56
xmlDocPtr doc);
57
XMLPUBFUN void
58
xmlDebugDumpDTD (FILE *output,
59
xmlDtdPtr dtd);
60
XMLPUBFUN void
61
xmlDebugDumpEntities (FILE *output,
62
xmlDocPtr doc);
63
64
/****************************************************************
65
* *
66
* Checking routines *
67
* *
68
****************************************************************/
69
70
XMLPUBFUN int
71
xmlDebugCheckDocument (FILE * output,
72
xmlDocPtr doc);
73
74
/****************************************************************
75
* *
76
* XML shell helpers *
77
* *
78
****************************************************************/
79
80
XMLPUBFUN void
81
xmlLsOneNode (FILE *output, xmlNodePtr node);
82
XMLPUBFUN int
83
xmlLsCountNode (xmlNodePtr node);
84
85
XMLPUBFUN const char *
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
140
xmlShellPrintXPathError (int errorType,
141
const char *arg);
142
XMLPUBFUN void
143
xmlShellPrintXPathResult(xmlXPathObjectPtr list);
144
XMLPUBFUN int
145
xmlShellList (xmlShellCtxtPtr ctxt,
146
char *arg,
147
xmlNodePtr node,
148
xmlNodePtr node2);
149
XMLPUBFUN int
150
xmlShellBase (xmlShellCtxtPtr ctxt,
151
char *arg,
152
xmlNodePtr node,
153
xmlNodePtr node2);
154
XMLPUBFUN int
155
xmlShellDir (xmlShellCtxtPtr ctxt,
156
char *arg,
157
xmlNodePtr node,
158
xmlNodePtr node2);
159
XMLPUBFUN int
160
xmlShellLoad (xmlShellCtxtPtr ctxt,
161
char *filename,
162
xmlNodePtr node,
163
xmlNodePtr node2);
164
#ifdef LIBXML_OUTPUT_ENABLED
165
XMLPUBFUN void
166
xmlShellPrintNode (xmlNodePtr node);
167
XMLPUBFUN int
168
xmlShellCat (xmlShellCtxtPtr ctxt,
169
char *arg,
170
xmlNodePtr node,
171
xmlNodePtr node2);
172
XMLPUBFUN int
173
xmlShellWrite (xmlShellCtxtPtr ctxt,
174
char *filename,
175
xmlNodePtr node,
176
xmlNodePtr node2);
177
XMLPUBFUN int
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
185
xmlShellValidate (xmlShellCtxtPtr ctxt,
186
char *dtd,
187
xmlNodePtr node,
188
xmlNodePtr node2);
189
#endif /* LIBXML_VALID_ENABLED */
190
XMLPUBFUN int
191
xmlShellDu (xmlShellCtxtPtr ctxt,
192
char *arg,
193
xmlNodePtr tree,
194
xmlNodePtr node2);
195
XMLPUBFUN int
196
xmlShellPwd (xmlShellCtxtPtr ctxt,
197
char *buffer,
198
xmlNodePtr node,
199
xmlNodePtr node2);
200
201
/*
202
* The Shell interface.
203
*/
204
XMLPUBFUN void
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__ */
218
219