source: NonGTP/FCollada/libxml/debugXML.h @ 964

Revision 964, 5.1 KB checked in by igarcia, 19 years ago (diff)
Line 
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
22extern "C" {
23#endif
24
25/*
26 * The standard Dump routines.
27 */
28XMLPUBFUN void XMLCALL 
29        xmlDebugDumpString      (FILE *output,
30                                 const xmlChar *str);
31XMLPUBFUN void XMLCALL 
32        xmlDebugDumpAttr        (FILE *output,
33                                 xmlAttrPtr attr,
34                                 int depth);
35XMLPUBFUN void XMLCALL 
36        xmlDebugDumpAttrList    (FILE *output,
37                                 xmlAttrPtr attr,
38                                 int depth);
39XMLPUBFUN void XMLCALL 
40        xmlDebugDumpOneNode     (FILE *output,
41                                 xmlNodePtr node,
42                                 int depth);
43XMLPUBFUN void XMLCALL
44        xmlDebugDumpNode        (FILE *output,
45                                 xmlNodePtr node,
46                                 int depth);
47XMLPUBFUN void XMLCALL
48        xmlDebugDumpNodeList    (FILE *output,
49                                 xmlNodePtr node,
50                                 int depth);
51XMLPUBFUN void XMLCALL
52        xmlDebugDumpDocumentHead(FILE *output,
53                                 xmlDocPtr doc);
54XMLPUBFUN void XMLCALL
55        xmlDebugDumpDocument    (FILE *output,
56                                 xmlDocPtr doc);
57XMLPUBFUN void XMLCALL 
58        xmlDebugDumpDTD         (FILE *output,
59                                 xmlDtdPtr dtd);
60XMLPUBFUN void XMLCALL 
61        xmlDebugDumpEntities    (FILE *output,
62                                 xmlDocPtr doc);
63
64/****************************************************************
65 *                                                              *
66 *                      Checking routines                       *
67 *                                                              *
68 ****************************************************************/
69
70XMLPUBFUN int XMLCALL
71        xmlDebugCheckDocument   (FILE * output,
72                                 xmlDocPtr doc);
73
74/****************************************************************
75 *                                                              *
76 *                      XML shell helpers                       *
77 *                                                              *
78 ****************************************************************/
79
80XMLPUBFUN void XMLCALL 
81        xmlLsOneNode            (FILE *output, xmlNodePtr node);
82XMLPUBFUN int XMLCALL   
83        xmlLsCountNode          (xmlNodePtr node);
84
85XMLPUBFUN 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 */
103typedef char * (* xmlShellReadlineFunc)(char *prompt);
104
105/**
106 * xmlShellCtxt:
107 *
108 * A debugging shell context.
109 * TODO: add the defined function tables.
110 */
111typedef struct _xmlShellCtxt xmlShellCtxt;
112typedef xmlShellCtxt *xmlShellCtxtPtr;
113struct _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 */
134typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
135                             char *arg,
136                             xmlNodePtr node,
137                             xmlNodePtr node2);
138
139XMLPUBFUN void XMLCALL 
140        xmlShellPrintXPathError (int errorType,
141                                 const char *arg);
142XMLPUBFUN void XMLCALL 
143        xmlShellPrintXPathResult(xmlXPathObjectPtr list);
144XMLPUBFUN int XMLCALL   
145        xmlShellList            (xmlShellCtxtPtr ctxt,
146                                 char *arg,
147                                 xmlNodePtr node,
148                                 xmlNodePtr node2);
149XMLPUBFUN int XMLCALL   
150        xmlShellBase            (xmlShellCtxtPtr ctxt,
151                                 char *arg,
152                                 xmlNodePtr node,
153                                 xmlNodePtr node2);
154XMLPUBFUN int XMLCALL   
155        xmlShellDir             (xmlShellCtxtPtr ctxt,
156                                 char *arg,
157                                 xmlNodePtr node,
158                                 xmlNodePtr node2);
159XMLPUBFUN int XMLCALL   
160        xmlShellLoad            (xmlShellCtxtPtr ctxt,
161                                 char *filename,
162                                 xmlNodePtr node,
163                                 xmlNodePtr node2);
164#ifdef LIBXML_OUTPUT_ENABLED
165XMLPUBFUN void XMLCALL 
166        xmlShellPrintNode       (xmlNodePtr node);
167XMLPUBFUN int XMLCALL   
168        xmlShellCat             (xmlShellCtxtPtr ctxt,
169                                 char *arg,
170                                 xmlNodePtr node,
171                                 xmlNodePtr node2);
172XMLPUBFUN int XMLCALL   
173        xmlShellWrite           (xmlShellCtxtPtr ctxt,
174                                 char *filename,
175                                 xmlNodePtr node,
176                                 xmlNodePtr node2);
177XMLPUBFUN 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
184XMLPUBFUN int XMLCALL   
185        xmlShellValidate        (xmlShellCtxtPtr ctxt,
186                                 char *dtd,
187                                 xmlNodePtr node,
188                                 xmlNodePtr node2);
189#endif /* LIBXML_VALID_ENABLED */
190XMLPUBFUN int XMLCALL   
191        xmlShellDu              (xmlShellCtxtPtr ctxt,
192                                 char *arg,
193                                 xmlNodePtr tree,
194                                 xmlNodePtr node2);
195XMLPUBFUN int XMLCALL   
196        xmlShellPwd             (xmlShellCtxtPtr ctxt,
197                                 char *buffer,
198                                 xmlNodePtr node,
199                                 xmlNodePtr node2);
200
201/*
202 * The Shell interface.
203 */
204XMLPUBFUN 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__ */
Note: See TracBrowser for help on using the repository browser.