.\"Generated by db2man.xsl. Don't modify this, modify the source.
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "XMLLINT" 1 "" "" "xmllint Manual"
.SH NAME
xmllint \- command line XML tool
.SH "SYNOPSIS"
.ad l
.hy 0
.HP 8
\fBxmllint\fR [\fB\-\-version\fR | \fB\-\-debug\fR | \fB\-\-shell\fR | \fB\-\-debugent\fR | \fB\-\-copy\fR | \fB\-\-recover\fR | \fB\-\-noent\fR | \fB\-\-noout\fR | \fB\-\-nonet\fR | \fB\-\-path\ \fIpaths\fR\fR | \fB\-\-load\-trace\fR | \fB\-\-htmlout\fR | \fB\-\-nowrap\fR | \fB\-\-valid\fR | \fB\-\-postvalid\fR | \fB\-\-dtdvalid\ \fIURL\fR\fR | \fB\-\-dtdvalidfpi\ \fIFPI\fR\fR | \fB\-\-timing\fR | \fB\-\-output\ \fIfile\fR\fR | \fB\-\-repeat\fR | \fB\-\-insert\fR | \fB\-\-compress\fR | \fB\-\-html\fR | \fB\-\-xmlout\fR | \fB\-\-push\fR | \fB\-\-memory\fR | \fB\-\-maxmem\ \fInbbytes\fR\fR | \fB\-\-nowarning\fR | \fB\-\-noblanks\fR | \fB\-\-nocdata\fR | \fB\-\-format\fR | \fB\-\-encode\ \fIencoding\fR\fR | \fB\-\-dropdtd\fR | \fB\-\-nsclean\fR | \fB\-\-testIO\fR | \fB\-\-catalogs\fR | \fB\-\-nocatalogs\fR | \fB\-\-auto\fR | \fB\-\-xinclude\fR | \fB\-\-noxincludenode\fR | \fB\-\-loaddtd\fR | \fB\-\-dtdattr\fR | \fB\-\-stream\fR | \fB\-\-walker\fR | \fB\-\-pattern\ \fIpatternvalue\fR\fR | \fB\-\-chkregister\fR | \fB\-\-relaxng\fR | \fB\-\-schema\fR | \fB\-\-c14n\fR] [\fB\fIxmlfile\fR\fR]
.ad
.hy

.SH "INTRODUCTION"

.PP
The xmllint program parses one or more XML files, specified on the command line as \fIxmlfile\fR\&. It prints various types of output, depending upon the options selected\&. It is useful for detecting errors both in XML code and in the XML parser itself\&.

.PP
It is included in libxml2\&.

.SH "OPTIONS"

.TP
\fB\-\-version\fR
Display the version of libxml2 used\&.

.TP
\fB\-\-debug\fR
Parse a file and output an annotated tree of the in\-memory version of the document\&.

.TP
\fB\-\-shell\fR
Run a navigating shell\&. Details on available commands in shell mode are below\&.

.TP
\fB\-\-debugent\fR
Debug the entities defined in the document\&.

.TP
\fB\-\-copy\fR
Test the internal copy implementation\&.

.TP
\fB\-\-recover\fR
Output any parsable portions of an invalid document\&.

.TP
\fB\-\-noent\fR
Substitute entity values for entity references\&. By default, xmllint leaves entity references in place\&.

.TP
\fB\-\-nocdata\fR
Substitute CDATA section by equivalent text nodes\&.

.TP
\fB\-\-nsclean\fR
Remove redundant namespace declarations\&.

.TP
\fB\-\-noout\fR
Suppress output\&. By default, xmllint outputs the result tree\&.

.TP
\fB\-\-nonet\fR
Do not use the Internet to fetch DTD's or entities\&.

.TP
\fB\-\-nonet\fR
Do not use the Internet to fetch DTD's or entities\&.

.TP
\fB\-\-path\fR \fIpaths\fR
Use the list (separated by space or column) of filesystem path specified by \fIpaths\fR to load DTDs or entities \&.

.TP
\fB\-\-load\-trace\fR
Display to stderr all the documents loaded during the processing\&.

.TP
\fB\-\-htmlout\fR
Output results as an HTML file\&. This causes xmllint to output the necessary HTML tags surrounding the result tree output so the results can be displayed in a browser\&.

.TP
\fB\-\-nowrap \fR
Do not output HTML doc wrapper\&.

.TP
\fB\-\-valid \fR
Determine if the document is a valid instance of the included Document Type Definition (DTD)\&. A DTD to be validated against also can be specified at the command line using the \fB\-\-dtdvalid\fR option\&. By default, xmllint also checks to determine if the document is well\-formed\&.

.TP
\fB\-\-postvalid\fR
Validate after parsing is completed\&.

.TP
\fB\-\-dtdvalid\fR \fIURL\fR
Use the DTD specified by \fIURL\fR for validation\&.

.TP
\fB\-\-dtdvalidfpi\fR \fIFPI\fR
Use the DTD specified by the Public Identifier \fIFPI\fR for validation, note that this will require a Catalog exporting that Public Identifier to work\&.

.TP
\fB\-\-timing\fR
Output information about the time it takes xmllint to perform the various steps\&.

.TP
\fB\-\-output\fR \fIfile\fR
Define a file path where xmllint will save the result of parsing\&. Usually the programs build a tree and save it on stdout, with this option the result XML instance will be saved onto a file\&.

.TP
\fB\-\-repeat\fR
Repeat 100 times, for timing or profiling\&.

.TP
\fB\-\-insert\fR
Test for valid insertions\&.

.TP
\fB\-\-compress\fR
Turn on gzip compression of output\&.

.TP
\fB\-\-html\fR
Use the HTML parser\&.

.TP
\fB\-\-xmlout\fR
Used in conjusntion with \fB\-\-html\fR\&. Usually when HTML is parsed the document is saved with the HTML serializer, but with this option the resulting document is saved with the XML serializer\&. This is primarily used to generate XHTML from HTML input\&.

.TP
\fB\-\-push\fR
Use the push mode of the parser\&.

.TP
\fB\-\-memory\fR
Parse from memory\&.

.TP
\fB\-\-maxmem\fR \fInnbytes\fR
Test the parser memory support\&. \fInnbytes\fR is the maximum number of bytes the library is allowed to allocate\&. This can also be used to make sure batch processing of XML files will not exhaust the virtual memory of the server running them\&.

.TP
\fB\-\-nowarning\fR
Do not emit warnings from the parser and/or validator\&.

.TP
\fB\-\-noblanks\fR
Drop ignorable blank spaces\&.

.TP
\fB\-\-format\fR
Reformat and reindent the output\&. The $XMLLINT_INDENT environment variable controls the indentation (default value is two spaces " ")\&.

.TP
\fB\-\-testIO\fR
Test user input/output support\&.

.TP
\fB\-\-encode\fR \fIencoding\fR
Output in the given encoding\&.

.TP
\fB\-\-catalogs\fR
Use the catalogs from $SGML_CATALOG_FILES\&. Otherwise /etc/xml/catalog is used by default\&.

.TP
\fB\-\-nocatalogs\fR
Do not use any catalogs\&.

.TP
\fB\-\-auto\fR
Generate a small document for testing purposes\&.

.TP
\fB\-\-xinclude\fR
Do XInclude processing\&.

.TP
\fB\-\-noxincludenode\fR
Do XInclude processing but do not generate XInclude start and end nodes\&.

.TP
\fB\-\-loaddtd\fR
Fetch external DTD\&.

.TP
\fB\-\-dtdattr\fR
Fetch external DTD and populate the tree with inherited attributes\&.

.TP
\fB\-\-dropdtd\fR
Remove DTD from output\&.

.TP
\fB\-\-stream\fR
Use streaming API \- useful when used in combination with \-\-relaxng or \-\-valid options for validation of files that are too large to be held in memory\&.

.TP
\fB\-\-walker\fR
Test the walker module, which is a reader interface but for a document tree, instead of using the reader API on an unparsed document it works on a existing in\-memory tree\&. Used in debugging\&.

.TP
\fB\-\-chkregister\fR
Turn on node registration\&. Useful for developers testing libxml2 node tracking code\&.

.TP
\fB\-\-pattern\fR \fIpatternvalue\fR
Used to exercise the pattern recognition engine, which can be used with the reader interface to the parser\&. It allows to select some nodes in the document based on an XPath (subset) expression\&. Used for debugging\&.

.TP
\fB\-\-relaxng\fR \fIschema\fR
Use RelaxNG file named \fIschema\fR for validation\&.

.TP
\fB\-\-schema\fR \fIschema\fR
Use a W3C XML Schema file named \fIschema\fR for validation\&.

.TP
\fB\-\-c14n\fR
Use the W3C XML Canonicalisation (C14N) to serialize the result of parsing to stdout\&. It keeps comments in the result\&.

.SH "SHELL"

.PP
 xmllint offers an interactive shell mode invoked with the \fB\-\-shell\fR command\&. Available commands in shell mode include:

.TP
\fBbase\fR
display XML base of the node

.TP
\fBbye\fR
leave shell

.TP
\fBcat \fInode\fR\fR
Display node if given or current node\&.

.TP
\fBcd \fIpath\fR\fR
Change the current node to \fIpath\fR (if given and unique) or root if no argument given\&.

.TP
\fBdir \fIpath\fR\fR
Dumps information about the node (namespace, attributes, content)\&.

.TP
\fBdu \fIpath\fR\fR
Show the structure of the subtree under path or the current node\&.

.TP
\fBexit\fR
Leave the shell\&.

.TP
\fBhelp\fR
Show this help\&.

.TP
\fBfree\fR
Display memory usage\&.

.TP
\fBload \fIname\fR\fR
Load a new document with the given name\&.

.TP
\fBls \fIpath\fR\fR
List contents of \fIpath\fR (if given) or the current directory\&.

.TP
\fBpwd\fR
Display the path to the current node\&.

.TP
\fBquit\fR
Leave the shell\&.

.TP
\fBsave \fIname\fR\fR
Saves the current document to \fIname\fR if given or to the original name\&.

.TP
\fBvalidate\fR
Check the document for error\&.

.TP
\fBwrite \fIname\fR\fR
Write the current node to the given filename\&.

.SH "CATALOGS"

.PP
Catalog behavior can be changed by redirecting queries to the user's own set of catalogs\&. This can be done by setting the \fIXML_CATALOG_FILES\fR environment variable to a list of catalogs\&. An empty one should deactivate loading the default \fI/etc/xml/catalog\fR default catalog\&.

.SH "DEBUGGING CATALOGS"

.PP
Setting the environment variable \fIXML_DEBUG_CATALOG\fR using the command \fB"export XML_DEBUG_CATALOG="\fR outputs debugging information related to catalog operations\&.

.SH "ERROR RETURN CODES"

.PP
On the completion of execution, Xmllint returns the following error codes:

.TP
0
No error

.TP
1
Unclassified

.TP
2
Error in DTD

.TP
3
Validation error

.TP
4
Validation error

.TP
5
Error in schema compilation

.TP
6
Error writing output

.TP
7
Error in pattern (generated when [\-\-pattern] option is used)

.TP
8
Error in Reader registration (generated when [\-\-chkregister] option is used)

.TP
9
Out of memory error

.SH AUTHORS
John Fleck, Ziying Sherwin, Heiko Rupp.
