'\" t .\" Title: xmllint .\" Author: John Fleck .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 02/19/2022 .\" Manual: xmllint Manual .\" Source: libxml2 .\" Language: English .\" .TH "XMLLINT" "1" "02/19/2022" "libxml2" "xmllint Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" xmllint \- command line XML tool .SH "SYNOPSIS" .HP \w'\fBxmllint\fR\ 'u \fBxmllint\fR [\fB\-\-version\fR | \fB\-\-debug\fR | \fB\-\-shell\fR | \fB\-\-xpath\ "\fR\fB\fIXPath_expression\fR\fR\fB"\fR | \fB\-\-debugent\fR | \fB\-\-copy\fR | \fB\-\-recover\fR | \fB\-\-noent\fR | \fB\-\-noout\fR | \fB\-\-nonet\fR | \fB\-\-path\ "\fR\fB\fIPATH(S)\fR\fR\fB"\fR | \fB\-\-load\-trace\fR | \fB\-\-htmlout\fR | \fB\-\-nowrap\fR | \fB\-\-valid\fR | \fB\-\-postvalid\fR | \fB\-\-dtdvalid\ \fR\fB\fIURL\fR\fR | \fB\-\-dtdvalidfpi\ \fR\fB\fIFPI\fR\fR | \fB\-\-timing\fR | \fB\-\-output\ \fR\fB\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\ \fR\fB\fINBBYTES\fR\fR | \fB\-\-nowarning\fR | \fB\-\-noblanks\fR | \fB\-\-nocdata\fR | \fB\-\-format\fR | \fB\-\-encode\ \fR\fB\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\ \fR\fB\fIPATTERNVALUE\fR\fR | \fB\-\-chkregister\fR | \fB\-\-relaxng\ \fR\fB\fISCHEMA\fR\fR | \fB\-\-schema\ \fR\fB\fISCHEMA\fR\fR | \fB\-\-c14n\fR] {\fIXML\-FILE(S)\fR... | \-} .HP \w'\fBxmllint\fR\ 'u \fBxmllint\fR \fB\-\-help\fR .SH "DESCRIPTION" .PP The \fBxmllint\fR program parses one or more XML files, specified on the command line as \fIXML\-FILE\fR (or the standard input if the filename provided is \fB\-\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 \fBxmllint\fR is included in \fBlibxml\fR(3)\&. .SH "OPTIONS" .PP \fBxmllint\fR accepts the following options (in alphabetical order): .PP \fB\-\-auto\fR .RS 4 Generate a small document for testing purposes\&. .RE .PP \fB\-\-catalogs\fR .RS 4 Use the SGML catalog(s) from \fBSGML_CATALOG_FILES\fR\&. Otherwise XML catalogs starting from /etc/xml/catalog are used by default\&. .RE .PP \fB\-\-chkregister\fR .RS 4 Turn on node registration\&. Useful for developers testing \fBlibxml\fR(3) node tracking code\&. .RE .PP \fB\-\-compress\fR .RS 4 Turn on \fBgzip\fR(1) compression of output\&. .RE .PP \fB\-\-copy\fR .RS 4 Test the internal copy implementation\&. .RE .PP \fB\-\-c14n\fR .RS 4 Use the W3C XML Canonicalisation (C14N) to serialize the result of parsing to stdout\&. It keeps comments in the result\&. .RE .PP \fB\-\-dtdvalid \fR\fB\fIURL\fR\fR .RS 4 Use the DTD specified by an \fIURL\fR for validation\&. .RE .PP \fB\-\-dtdvalidfpi \fR\fB\fIFPI\fR\fR .RS 4 Use the DTD specified by a Formal Public Identifier \fIFPI\fR for validation, note that this will require a catalog exporting that Formal Public Identifier to work\&. .RE .PP \fB\-\-debug\fR .RS 4 Parse a file and output an annotated tree of the in\-memory version of the document\&. .RE .PP \fB\-\-debugent\fR .RS 4 Debug the entities defined in the document\&. .RE .PP \fB\-\-dropdtd\fR .RS 4 Remove DTD from output\&. .RE .PP \fB\-\-dtdattr\fR .RS 4 Fetch external DTD and populate the tree with inherited attributes\&. .RE .PP \fB\-\-encode \fR\fB\fIENCODING\fR\fR .RS 4 Output in the given encoding\&. Note that this works for full document not fragments or result from XPath queries\&. .RE .PP \fB\-\-format\fR .RS 4 Reformat and reindent the output\&. The \fBXMLLINT_INDENT\fR environment variable controls the indentation\&. The default value is two spaces " ")\&. .RE .PP \fB\-\-help\fR .RS 4 Print out a short usage summary for \fBxmllint\fR\&. .RE .PP \fB\-\-html\fR .RS 4 Use the HTML parser\&. .RE .PP \fB\-\-htmlout\fR .RS 4 Output results as an HTML file\&. This causes \fBxmllint\fR to output the necessary HTML tags surrounding the result tree output so the results can be displayed/viewed in a browser\&. .RE .PP \fB\-\-insert\fR .RS 4 Test for valid insertions\&. .RE .PP \fB\-\-loaddtd\fR .RS 4 Fetch an external DTD\&. .RE .PP \fB\-\-load\-trace\fR .RS 4 Display all the documents loaded during the processing to stderr\&. .RE .PP \fB\-\-maxmem \fR\fB\fINNBYTES\fR\fR .RS 4 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\&. .RE .PP \fB\-\-memory\fR .RS 4 Parse from memory\&. .RE .PP \fB\-\-noblanks\fR .RS 4 Drop ignorable blank spaces\&. .RE .PP \fB\-\-nocatalogs\fR .RS 4 Do not use any catalogs\&. .RE .PP \fB\-\-nocdata\fR .RS 4 Substitute CDATA section by equivalent text nodes\&. .RE .PP \fB\-\-noent\fR .RS 4 Substitute entity values for entity references\&. By default, \fBxmllint\fR leaves entity references in place\&. .RE .PP \fB\-\-nonet\fR .RS 4 Do not use the Internet to fetch DTDs or entities\&. .RE .PP \fB\-\-noout\fR .RS 4 Suppress output\&. By default, \fBxmllint\fR outputs the result tree\&. .RE .PP \fB\-\-nowarning\fR .RS 4 Do not emit warnings from the parser and/or validator\&. .RE .PP \fB\-\-nowrap\fR .RS 4 Do not output HTML doc wrapper\&. .RE .PP \fB\-\-noxincludenode\fR .RS 4 Do XInclude processing but do not generate XInclude start and end nodes\&. .RE .PP \fB\-\-nsclean\fR .RS 4 Remove redundant namespace declarations\&. .RE .PP \fB\-\-output \fR\fB\fIFILE\fR\fR .RS 4 Define a file path where \fBxmllint\fR 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\&. .RE .PP \fB\-\-path "\fR\fB\fIPATH(S)\fR\fR\fB"\fR .RS 4 Use the (space\- or colon\-separated) list of filesystem paths specified by \fIPATHS\fR to load DTDs or entities\&. Enclose space\-separated lists by quotation marks\&. .RE .PP \fB\-\-pattern \fR\fB\fIPATTERNVALUE\fR\fR .RS 4 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\&. .RE .PP \fB\-\-postvalid\fR .RS 4 Validate after parsing has completed\&. .RE .PP \fB\-\-push\fR .RS 4 Use the push mode of the parser\&. .RE .PP \fB\-\-recover\fR .RS 4 Output any parsable portions of an invalid document\&. .RE .PP \fB\-\-relaxng \fR\fB\fISCHEMA\fR\fR .RS 4 Use RelaxNG file named \fISCHEMA\fR for validation\&. .RE .PP \fB\-\-repeat\fR .RS 4 Repeat 100 times, for timing or profiling\&. .RE .PP \fB\-\-schema \fR\fB\fISCHEMA\fR\fR .RS 4 Use a W3C XML Schema file named \fISCHEMA\fR for validation\&. .RE .PP \fB\-\-shell\fR .RS 4 Run a navigating shell\&. Details on available commands in shell mode are below (see the section called \(lqSHELL COMMANDS\(rq)\&. .RE .PP \fB\-\-xpath "\fR\fB\fIXPath_expression\fR\fR\fB"\fR .RS 4 Run an XPath expression given as argument and print the result\&. In case of a nodeset result, each node in the node set is serialized in full in the output\&. In case of an empty node set the "XPath set is empty" result will be shown and an error exit code will be returned\&. .RE .PP \fB\-\-stream\fR .RS 4 Use streaming API \- useful when used in combination with \fB\-\-relaxng\fR or \fB\-\-valid\fR options for validation of files that are too large to be held in memory\&. .RE .PP \fB\-\-testIO\fR .RS 4 Test user input/output support\&. .RE .PP \fB\-\-timing\fR .RS 4 Output information about the time it takes \fBxmllint\fR to perform the various steps\&. .RE .PP \fB\-\-valid\fR .RS 4 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, \fBxmllint\fR also checks to determine if the document is well\-formed\&. .RE .PP \fB\-\-version\fR .RS 4 Display the version of \fBlibxml\fR(3) used\&. .RE .PP \fB\-\-walker\fR .RS 4 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 an existing in\-memory tree\&. Used for debugging\&. .RE .PP \fB\-\-xinclude\fR .RS 4 Do XInclude processing\&. .RE .PP \fB\-\-xmlout\fR .RS 4 Used in conjunction 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\&. .RE .SH "SHELL COMMANDS" .PP \fBxmllint\fR offers an interactive shell mode invoked with the \fB\-\-shell\fR command\&. Available commands in shell mode include (in alphabetical order): .PP \fBbase\fR .RS 4 Display XML base of the node\&. .RE .PP \fBbye\fR .RS 4 Leave the shell\&. .RE .PP \fBcat \fR\fB\fINODE\fR\fR .RS 4 Display the given node or the current one\&. .RE .PP \fBcd \fR\fB\fIPATH\fR\fR .RS 4 Change the current node to the given path (if unique) or root if no argument is given\&. .RE .PP \fBdir \fR\fB\fIPATH\fR\fR .RS 4 Dumps information about the node (namespace, attributes, content)\&. .RE .PP \fBdu \fR\fB\fIPATH\fR\fR .RS 4 Show the structure of the subtree under the given path or the current node\&. .RE .PP \fBexit\fR .RS 4 Leave the shell\&. .RE .PP \fBhelp\fR .RS 4 Show this help\&. .RE .PP \fBfree\fR .RS 4 Display memory usage\&. .RE .PP \fBload \fR\fB\fIFILENAME\fR\fR .RS 4 Load a new document with the given filename\&. .RE .PP \fBls \fR\fB\fIPATH\fR\fR .RS 4 List contents of the given path or the current directory\&. .RE .PP \fBpwd\fR .RS 4 Display the path to the current node\&. .RE .PP \fBquit\fR .RS 4 Leave the shell\&. .RE .PP \fBsave \fR\fB\fIFILENAME\fR\fR .RS 4 Save the current document to the given filename or to the original name\&. .RE .PP \fBvalidate\fR .RS 4 Check the document for errors\&. .RE .PP \fBwrite \fR\fB\fIFILENAME\fR\fR .RS 4 Write the current node to the given filename\&. .RE .SH "ENVIRONMENT" .PP \fBSGML_CATALOG_FILES\fR .RS 4 SGML catalog behavior can be changed by redirecting queries to the user\*(Aqs own set of catalogs\&. This can be done by setting the \fBSGML_CATALOG_FILES\fR environment variable to a list of catalogs\&. An empty one should deactivate loading the default /etc/sgml/catalog catalog\&. .RE .PP \fBXML_CATALOG_FILES\fR .RS 4 XML catalog behavior can be changed by redirecting queries to the user\*(Aqs own set of catalogs\&. This can be done by setting the \fBXML_CATALOG_FILES\fR environment variable to a space\-separated list of catalogs\&. Use percent\-encoding to escape spaces or other characters\&. An empty variable should deactivate loading the default /etc/xml/catalog catalog\&. .RE .PP \fBXML_DEBUG_CATALOG\fR .RS 4 Setting the environment variable \fBXML_DEBUG_CATALOG\fR to \fInon\-zero\fR using the \fBexport\fR command outputs debugging information related to catalog operations\&. .RE .PP \fBXMLLINT_INDENT\fR .RS 4 Setting the environment variable \fBXMLLINT_INDENT\fR controls the indentation\&. The default value is two spaces " "\&. .RE .SH "DIAGNOSTICS" .PP \fBxmllint\fR return codes provide information that can be used when calling it from scripts\&. .PP \fB0\fR .RS 4 No error .RE .PP \fB1\fR .RS 4 Unclassified .RE .PP \fB2\fR .RS 4 Error in DTD .RE .PP \fB3\fR .RS 4 Validation error .RE .PP \fB4\fR .RS 4 Validation error .RE .PP \fB5\fR .RS 4 Error in schema compilation .RE .PP \fB6\fR .RS 4 Error writing output .RE .PP \fB7\fR .RS 4 Error in pattern (generated when \fB\-\-pattern\fR option is used) .RE .PP \fB8\fR .RS 4 Error in Reader registration (generated when \fB\-\-chkregister\fR option is used) .RE .PP \fB9\fR .RS 4 Out of memory error .RE .PP \fB10\fR .RS 4 XPath evaluation error .RE .SH "SEE ALSO" .PP \fBlibxml\fR(3) .PP More information can be found at .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlibxml\fR(3) web page \m[blue]\fB\%https://gitlab.gnome.org/GNOME/libxml2\fR\m[] .RE .sp .SH "AUTHORS" .PP \fBJohn Fleck\fR <\&jfleck@inkstain\&.net\&> .RS 4 Author. .RE .PP \fBZiying Sherwin\fR <\&sherwin@nlm\&.nih\&.gov\&> .RS 4 Author. .RE .PP \fBHeiko Rupp\fR <\&hwr@pilhuhn\&.de\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br Copyright \(co 2001, 2004 .br