# ## Module debugXML from libxml2

API Menu
Main Menu Developer Menu Code Examples API Menu Parser API Tree API Reader API XML Guidelines ChangeLog
API Indexes
Alphabetic Constructors Functions/Types Modules Symbols
Related links
Mail archive XSLT libxslt DOM gdome2 XML-DSig xmlsec FTP Windows binaries Solaris binaries MacOsX binaries C++ bindings PHP bindings Pascal bindings Ruby bindings Tcl bindings Bug Tracker
Interfaces to a set of routines used for debugging the tree produced by the XML parser. ## Table of Contents
    Structure xmlShellCtxt
    struct _xmlShellCtxt
    Typedef xmlShellCtxt * xmlShellCtxtPtr
    const char *	xmlBoolToText		(int boolval)
    int	xmlDebugCheckDocument		(FILE * output,
    					 xmlDocPtr doc)
    void	xmlDebugDumpAttr		(FILE * output,
    					 xmlAttrPtr attr,
    					 int depth)
    void	xmlDebugDumpAttrList		(FILE * output,
    					 xmlAttrPtr attr,
    					 int depth)
    void	xmlDebugDumpDTD			(FILE * output,
    					 xmlDtdPtr dtd)
    void	xmlDebugDumpDocument		(FILE * output,
    					 xmlDocPtr doc)
    void	xmlDebugDumpDocumentHead	(FILE * output,
    					 xmlDocPtr doc)
    void	xmlDebugDumpEntities		(FILE * output,
    					 xmlDocPtr doc)
    void	xmlDebugDumpNode		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)
    void	xmlDebugDumpNodeList		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)
    void	xmlDebugDumpOneNode		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)
    void	xmlDebugDumpString		(FILE * output,
    					 const xmlChar * str)
    int	xmlLsCountNode			(xmlNodePtr node)
    void	xmlLsOneNode			(FILE * output,
    					 xmlNodePtr node)
    void	xmlShell			(xmlDocPtr doc,
    					 char * filename,
    					 xmlShellReadlineFunc input,
    					 FILE * output)
    int	xmlShellBase			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    int	xmlShellCat			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    Function type: xmlShellCmd
    int	xmlShellCmd			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    int	xmlShellDir			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    int	xmlShellDu			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr tree,
    					 xmlNodePtr node2)
    int	xmlShellList			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    int	xmlShellLoad			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    void	xmlShellPrintNode		(xmlNodePtr node)
    void	xmlShellPrintXPathError		(int errorType,
    					 const char * arg)
    void	xmlShellPrintXPathResult	(xmlXPathObjectPtr list)
    int	xmlShellPwd			(xmlShellCtxtPtr ctxt,
    					 char * buffer,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    Function type: xmlShellReadlineFunc
    char *	xmlShellReadlineFunc		(char * prompt)
    int	xmlShellSave			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    int	xmlShellValidate		(xmlShellCtxtPtr ctxt,
    					 char * dtd,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
    int	xmlShellWrite			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
## Description ### Structure xmlShellCtxt
    Structure xmlShellCtxt
    struct _xmlShellCtxt {
        char *	filename
        xmlDocPtr	doc
        xmlNodePtr	node
        xmlXPathContextPtr	pctxt
        int	loaded
        FILE *	output
        xmlShellReadlineFunc	input
    }
### Function: xmlBoolToText
    const char *	xmlBoolToText		(int boolval)
Convenient way to turn bool into text
`boolval`: | a bool to turn into text
`Returns`: | a pointer to either "True" or "False"
### Function: xmlDebugCheckDocument
    int	xmlDebugCheckDocument		(FILE * output,
    					 xmlDocPtr doc)
Check the document for potential content problems, and output the errors to @output
`output`: | the FILE * for the output
`doc`: | the document
`Returns`: | the number of errors found
### Function: xmlDebugDumpAttr
    void	xmlDebugDumpAttr		(FILE * output,
    					 xmlAttrPtr attr,
    					 int depth)
Dumps debug information for the attribute
`output`: | the FILE * for the output
`attr`: | the attribute
`depth`: | the indentation level.
### Function: xmlDebugDumpAttrList
    void	xmlDebugDumpAttrList		(FILE * output,
    					 xmlAttrPtr attr,
    					 int depth)
Dumps debug information for the attribute list
`output`: | the FILE * for the output
`attr`: | the attribute list
`depth`: | the indentation level.
### Function: xmlDebugDumpDTD
    void	xmlDebugDumpDTD			(FILE * output,
    					 xmlDtdPtr dtd)
Dumps debug information for the DTD
`output`: | the FILE * for the output
`dtd`: | the DTD
### Function: xmlDebugDumpDocument
    void	xmlDebugDumpDocument		(FILE * output,
    					 xmlDocPtr doc)
Dumps debug information for the document, it's recursive
`output`: | the FILE * for the output
`doc`: | the document
### Function: xmlDebugDumpDocumentHead
    void	xmlDebugDumpDocumentHead	(FILE * output,
    					 xmlDocPtr doc)
Dumps debug information cncerning the document, not recursive
`output`: | the FILE * for the output
`doc`: | the document
### Function: xmlDebugDumpEntities
    void	xmlDebugDumpEntities		(FILE * output,
    					 xmlDocPtr doc)
Dumps debug information for all the entities in use by the document
`output`: | the FILE * for the output
`doc`: | the document
### Function: xmlDebugDumpNode
    void	xmlDebugDumpNode		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)
Dumps debug information for the element node, it is recursive
`output`: | the FILE * for the output
`node`: | the node
`depth`: | the indentation level.
### Function: xmlDebugDumpNodeList
    void	xmlDebugDumpNodeList		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)
Dumps debug information for the list of element node, it is recursive
`output`: | the FILE * for the output
`node`: | the node list
`depth`: | the indentation level.
### Function: xmlDebugDumpOneNode
    void	xmlDebugDumpOneNode		(FILE * output,
    					 xmlNodePtr node,
    					 int depth)
Dumps debug information for the element node, it is not recursive
`output`: | the FILE * for the output
`node`: | the node
`depth`: | the indentation level.
### Function: xmlDebugDumpString
    void	xmlDebugDumpString		(FILE * output,
    					 const xmlChar * str)
Dumps informations about the string, shorten it if necessary
`output`: | the FILE * for the output
`str`: | the string
### Function: xmlLsCountNode
    int	xmlLsCountNode			(xmlNodePtr node)
Count the children of @node.
`node`: | the node to count
`Returns`: | the number of children of @node.
### Function: xmlLsOneNode
    void	xmlLsOneNode			(FILE * output,
    					 xmlNodePtr node)
Dump to @output the type and name of @node.
`output`: | the FILE * for the output
`node`: | the node to dump
### Function: xmlShell
    void	xmlShell			(xmlDocPtr doc,
    					 char * filename,
    					 xmlShellReadlineFunc input,
    					 FILE * output)
Implements the XML shell This allow to load, validate, view, modify and save a document using a environment similar to a UNIX commandline.
`doc`: | the initial document
`filename`: | the output buffer
`input`: | the line reading function
`output`: | the output FILE*, defaults to stdout if NULL
### Function: xmlShellBase
    int	xmlShellBase			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "base" dumps the current XML base of the node
`ctxt`: | the shell context
`arg`: | unused
`node`: | a node
`node2`: | unused
`Returns`: | 0
### Function: xmlShellCat
    int	xmlShellCat			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "cat" dumps the serialization node content (XML or HTML).
`ctxt`: | the shell context
`arg`: | unused
`node`: | a node
`node2`: | unused
`Returns`: | 0
### Function type: xmlShellCmd
    Function type: xmlShellCmd
    int	xmlShellCmd			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
This is a generic signature for the XML shell functions.
`ctxt`: | a shell context
`arg`: | a string argument
`node`: | a first node
`node2`: | a second node
`Returns`: | an int, negative returns indicating errors.
### Function: xmlShellDir
    int	xmlShellDir			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "dir" dumps informations about the node (namespace, attributes, content).
`ctxt`: | the shell context
`arg`: | unused
`node`: | a node
`node2`: | unused
`Returns`: | 0
### Function: xmlShellDu
    int	xmlShellDu			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr tree,
    					 xmlNodePtr node2)
Implements the XML shell function "du" show the structure of the subtree under node @tree If @tree is null, the command works on the current node.
`ctxt`: | the shell context
`arg`: | unused
`tree`: | a node defining a subtree
`node2`: | unused
`Returns`: | 0 or -1 in case of error
### Function: xmlShellList
    int	xmlShellList			(xmlShellCtxtPtr ctxt,
    					 char * arg,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "ls" Does an Unix like listing of the given node (like a directory)
`ctxt`: | the shell context
`arg`: | unused
`node`: | a node
`node2`: | unused
`Returns`: | 0
### Function: xmlShellLoad
    int	xmlShellLoad			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "load" loads a new document specified by the filename
`ctxt`: | the shell context
`filename`: | the file name
`node`: | unused
`node2`: | unused
`Returns`: | 0 or -1 if loading failed
### Function: xmlShellPrintNode
    void	xmlShellPrintNode		(xmlNodePtr node)
Print node to the output FILE
`node`: | a non-null node to print to the output FILE
### Function: xmlShellPrintXPathError
    void	xmlShellPrintXPathError		(int errorType,
    					 const char * arg)
Print the xpath error to libxml default error channel
`errorType`: | valid xpath error id
`arg`: | the argument that cause xpath to fail
### Function: xmlShellPrintXPathResult
    void	xmlShellPrintXPathResult	(xmlXPathObjectPtr list)
Prints result to the output FILE
`list`: | a valid result generated by an xpath evaluation
### Function: xmlShellPwd
    int	xmlShellPwd			(xmlShellCtxtPtr ctxt,
    					 char * buffer,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "pwd" Show the full path from the root to the node, if needed building thumblers when similar elements exists at a given ancestor level. The output is compatible with XPath commands.
`ctxt`: | the shell context
`buffer`: | the output buffer
`node`: | a node
`node2`: | unused
`Returns`: | 0 or -1 in case of error
### Function type: xmlShellReadlineFunc
    Function type: xmlShellReadlineFunc
    char *	xmlShellReadlineFunc		(char * prompt)
This is a generic signature for the XML shell input function.
`prompt`: | a string prompt
`Returns`: | a string which will be freed by the Shell.
### Function: xmlShellSave
    int	xmlShellSave			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "save" Write the current document to the filename, or it's original name
`ctxt`: | the shell context
`filename`: | the file name (optional)
`node`: | unused
`node2`: | unused
`Returns`: | 0 or -1 in case of error
### Function: xmlShellValidate
    int	xmlShellValidate		(xmlShellCtxtPtr ctxt,
    					 char * dtd,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "validate" Validate the document, if a DTD path is provided, then the validation is done against the given DTD.
`ctxt`: | the shell context
`dtd`: | the DTD URI (optional)
`node`: | unused
`node2`: | unused
`Returns`: | 0 or -1 in case of error
### Function: xmlShellWrite
    int	xmlShellWrite			(xmlShellCtxtPtr ctxt,
    					 char * filename,
    					 xmlNodePtr node,
    					 xmlNodePtr node2)
Implements the XML shell function "write" Write the current node to the filename, it saves the serialization of the subtree under the @node specified
`ctxt`: | the shell context
`filename`: | the file name
`node`: | a node in the tree
`node2`: | unused
`Returns`: | 0 or -1 in case of error
Daniel Veillard