.\"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\-\-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\-\-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\-\-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\-\-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
Output canonical XML\&.

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

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