Back to Turicreate

debugXML: Tree debugging APIs

deps/src/libxml2-2.9.1/doc/devhelp/libxml2-debugXML.html

6.4.115.7 KB
Original Source

| | | | | libxml2 Reference Manual |

debugXML

debugXML - Tree debugging APIs

Interfaces to a set of routines used for debugging the tree produced by the XML parser.

Author(s): Daniel Veillard

Synopsis

typedef struct _xmlShellCtxt[xmlShellCtxt](#xmlShellCtxt);
typedef[xmlShellCtxt](libxml2-debugXML.html#xmlShellCtxt)*[xmlShellCtxtPtr](#xmlShellCtxtPtr);
void[xmlDebugDumpAttrList](#xmlDebugDumpAttrList)(FILE * output,
[xmlAttrPtr](libxml2-tree.html#xmlAttrPtr)attr,
int depth);
void[xmlLsOneNode](#xmlLsOneNode)(FILE * output,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node);
typedef char *[xmlShellReadlineFunc](#xmlShellReadlineFunc)(char * prompt);
int[xmlShellSave](#xmlShellSave)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * filename,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
const char *[xmlBoolToText](#xmlBoolToText)(int boolval);
int[xmlShellWrite](#xmlShellWrite)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * filename,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
int[xmlShellDu](#xmlShellDu)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)tree,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
int[xmlShellValidate](#xmlShellValidate)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * dtd,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
int[xmlDebugCheckDocument](#xmlDebugCheckDocument)(FILE * output,
[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc);
void[xmlShellPrintXPathResult](#xmlShellPrintXPathResult)([xmlXPathObjectPtr](libxml2-xpath.html#xmlXPathObjectPtr)list);
typedef int[xmlShellCmd](#xmlShellCmd)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
int[xmlShellLoad](#xmlShellLoad)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * filename,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
void[xmlDebugDumpString](#xmlDebugDumpString)(FILE * output,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* str);
int[xmlShellBase](#xmlShellBase)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
int[xmlShellCat](#xmlShellCat)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
void[xmlDebugDumpDTD](#xmlDebugDumpDTD)(FILE * output,
[xmlDtdPtr](libxml2-tree.html#xmlDtdPtr)dtd);
void[xmlDebugDumpNode](#xmlDebugDumpNode)(FILE * output,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
int depth);
void[xmlDebugDumpEntities](#xmlDebugDumpEntities)(FILE * output,
[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc);
void[xmlShellPrintNode](#xmlShellPrintNode)([xmlNodePtr](libxml2-tree.html#xmlNodePtr)node);
int[xmlShellPwd](#xmlShellPwd)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * buffer,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
void[xmlDebugDumpNodeList](#xmlDebugDumpNodeList)(FILE * output,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
int depth);
void[xmlDebugDumpAttr](#xmlDebugDumpAttr)(FILE * output,
[xmlAttrPtr](libxml2-tree.html#xmlAttrPtr)attr,
int depth);
void[xmlDebugDumpDocument](#xmlDebugDumpDocument)(FILE * output,
[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc);
int[xmlLsCountNode](#xmlLsCountNode)([xmlNodePtr](libxml2-tree.html#xmlNodePtr)node);
void[xmlShellPrintXPathError](#xmlShellPrintXPathError)(int errorType,
const char * arg);
int[xmlShellDir](#xmlShellDir)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
void[xmlDebugDumpOneNode](#xmlDebugDumpOneNode)(FILE * output,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
int depth);
int[xmlShellList](#xmlShellList)([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node2);
void[xmlDebugDumpDocumentHead](#xmlDebugDumpDocumentHead)(FILE * output,
[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc);
void[xmlShell](#xmlShell)([xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc,
char * filename,
[xmlShellReadlineFunc](libxml2-debugXML.html#xmlShellReadlineFunc)input,
FILE * output);

Description

Details

Structure xmlShellCtxt

struct _xmlShellCtxt {
    char *	filename[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node[xmlXPathContextPtr](libxml2-xpath.html#xmlXPathContextPtr)pctxt
    int	loaded
    FILE *	output[xmlShellReadlineFunc](libxml2-debugXML.html#xmlShellReadlineFunc)input
} xmlShellCtxt;

Typedef xmlShellCtxtPtr

[xmlShellCtxt](libxml2-debugXML.html#xmlShellCtxt)* xmlShellCtxtPtr;

Function type xmlShellCmd

int	xmlShellCmd ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 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. |


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" |


xmlDebugCheckDocument ()

int	xmlDebugCheckDocument (FILE * output,
[xmlDocPtr](libxml2-tree.html#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 |


xmlDebugDumpAttr ()

void	xmlDebugDumpAttr (FILE * output,
[xmlAttrPtr](libxml2-tree.html#xmlAttrPtr)attr,
int depth)

Dumps debug information for the attribute

| output: | the FILE * for the output | | attr: | the attribute | | depth: | the indentation level. |


xmlDebugDumpAttrList ()

void	xmlDebugDumpAttrList (FILE * output,
[xmlAttrPtr](libxml2-tree.html#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. |


xmlDebugDumpDTD ()

void	xmlDebugDumpDTD (FILE * output,
[xmlDtdPtr](libxml2-tree.html#xmlDtdPtr)dtd)

Dumps debug information for the DTD

| output: | the FILE * for the output | | dtd: | the DTD |


xmlDebugDumpDocument ()

void	xmlDebugDumpDocument (FILE * output,
[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc)

Dumps debug information for the document, it's recursive

| output: | the FILE * for the output | | doc: | the document |


xmlDebugDumpDocumentHead ()

void	xmlDebugDumpDocumentHead	(FILE * output,
[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc)

Dumps debug information cncerning the document, not recursive

| output: | the FILE * for the output | | doc: | the document |


xmlDebugDumpEntities ()

void	xmlDebugDumpEntities (FILE * output,
[xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc)

Dumps debug information for all the entities in use by the document

| output: | the FILE * for the output | | doc: | the document |


xmlDebugDumpNode ()

void	xmlDebugDumpNode (FILE * output,
[xmlNodePtr](libxml2-tree.html#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. |


xmlDebugDumpNodeList ()

void	xmlDebugDumpNodeList (FILE * output,
[xmlNodePtr](libxml2-tree.html#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. |


xmlDebugDumpOneNode ()

void	xmlDebugDumpOneNode (FILE * output,
[xmlNodePtr](libxml2-tree.html#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. |


xmlDebugDumpString ()

void	xmlDebugDumpString (FILE * output,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* str)

Dumps informations about the string, shorten it if necessary

| output: | the FILE * for the output | | str: | the string |


xmlLsCountNode ()

int	xmlLsCountNode ([xmlNodePtr](libxml2-tree.html#xmlNodePtr)node)

Count the children of @node.

| node: | the node to count | | Returns: | the number of children of @node. |


xmlLsOneNode ()

void	xmlLsOneNode (FILE * output,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node)

Dump to @output the type and name of @node.

| output: | the FILE * for the output | | node: | the node to dump |


xmlShell ()

void	xmlShell ([xmlDocPtr](libxml2-tree.html#xmlDocPtr)doc,
char * filename,
[xmlShellReadlineFunc](libxml2-debugXML.html#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 |


xmlShellBase ()

int	xmlShellBase ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellCat ()

int	xmlShellCat ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellDir ()

int	xmlShellDir ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellDu ()

int	xmlShellDu ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)tree,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellList ()

int	xmlShellList ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * arg,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellLoad ()

int	xmlShellLoad ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * filename,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellPrintNode ()

void	xmlShellPrintNode ([xmlNodePtr](libxml2-tree.html#xmlNodePtr)node)

Print node to the output FILE

| node: | a non-null node to print to the output FILE |


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 |


xmlShellPrintXPathResult ()

void	xmlShellPrintXPathResult	([xmlXPathObjectPtr](libxml2-xpath.html#xmlXPathObjectPtr)list)

Prints result to the output FILE

| list: | a valid result generated by an xpath evaluation |


xmlShellPwd ()

int	xmlShellPwd ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * buffer,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellSave ()

int	xmlShellSave ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * filename,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellValidate ()

int	xmlShellValidate ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * dtd,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |


xmlShellWrite ()

int	xmlShellWrite ([xmlShellCtxtPtr](libxml2-debugXML.html#xmlShellCtxtPtr)ctxt,
char * filename,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node,
[xmlNodePtr](libxml2-tree.html#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 |