."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"
\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--htmlout\fR | \fB--nowrap\fR | \fB--valid\fR | \fB--postvalid\fR | \fB--dtdvalid  \fIURL\fR \fR | \fB--timing\fR | \fB--repeat\fR | \fB--insert\fR | \fB--compress\fR | \fB--sgml\fR | \fB--html\fR | \fB--push\fR | \fB--memory\fR | \fB--nowarning\fR | \fB--noblanks\fR | \fB--format\fR | \fB--testIO\fR | \fB--encode  \fIencoding\fR \fR | \fB--catalogs\fR | \fB--nocatalogs\fR | \fB--auto\fR | \fB--xinclude\fR | \fB--loaddtd\fR | \fB--dtdattr\fR | \fB--dropdtd\fR] [\fB\fIxmlfile\fR\fR]
.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--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--timing\fR

Output information about the time it takes xmllint to perform the various steps.

.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--sgml\fR

Use the DocBook SGML parser. This allows documents written in SGML DocBook to be converted into an in-memory tree and treated as if they were written in XML.

.TP
\fB--html\fR

Use the HTML parser.

.TP
\fB--push\fR

Use the push mode of the parser.

.TP
\fB--memory\fR

Parse from memory.

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

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

.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 AUTHOR
Copyright 2001
.Sp
John Fleck  <jfleck@inkstain.net>Ziying Sherwin  <sherwin@nlm.nih.gov>Heiko Rupp  <hwr@pilhuhn.de>This is release 0.2 of the xmllint Manual.