<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2589902"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xmllint &#8212; command line <span class="acronym">XML</span> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xmllint</tt>  [[--version] |  [--debug] |  [--shell] |  [--debugent] |  [--copy] |  [--recover] |  [--noent] |  [--noout] |  [--htmlout] |  [--nowrap] |  [--valid] |  [--postvalid] |  [--dtdvalid <i class="replaceable"><tt>URL</tt></i>] |  [--timing] |  [--repeat] |  [--insert] |  [--compress] |  [--sgml] |  [--html] |  [--push] |  [--memory] |  [--nowarning] |  [--noblanks] |  [--format] |  [--testIO] |  [--encode <i class="replaceable"><tt>encoding</tt></i>] |  [--catalogs] |  [--nocatalogs] |  [--auto] |  [--xinclude] |  [--loaddtd] |  [--dtdattr] |  [--dropdtd] |  [--stream] |  [--chkregister] |  [--relaxng] |  [--schema] |  [--nonet]] [<tt class="option"><i class="replaceable"><tt>xmlfile</tt></i></tt>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
      The xmllint program parses one or more XML files, specified on the
      command line as <i class="replaceable"><tt>xmlfile</tt></i>. It prints various
      types of output, depending upon the options selected. It is useful for
      detecting errors both in <span class="acronym">XML</span> code and in the
      <span class="acronym">XML</span> parser itself.
    </p><p>
      It is included in <span class="application">libxml2</span>.
    </p></div><div class="refsect1" lang="en"><a name="options"></a><h2>Options</h2><div class="variablelist"><dl><dt><span class="term"><tt class="option">--version</tt></span></dt><dd>
	    Display the version of
	    <span class="application">libxml2</span> used.
	  </dd><dt><span class="term"><tt class="option">--debug</tt></span></dt><dd>
	    Parse a file and output an annotated tree of the
	    in-memory version of the document.
	  </dd><dt><span class="term"><tt class="option">--shell</tt></span></dt><dd>
	    Run a navigating shell. Details on available commands in shell mode
	    are below.
	  </dd><dt><span class="term"><tt class="option">--debugent</tt></span></dt><dd>
	    Debug the entities defined in the document.
	  </dd><dt><span class="term"><tt class="option">--copy</tt> </span></dt><dd>
	    Test the internal copy implementation.
	  </dd><dt><span class="term"><tt class="option">--recover</tt></span></dt><dd>
	    Output any parsable portions of an invalid
	    document.
	  </dd><dt><span class="term"><tt class="option">--noent</tt></span></dt><dd>
	    Substitute entity values for entity
	    references. By default, <span class="application">xmllint</span> leaves entity
	    references in place.
	  </dd><dt><span class="term"><tt class="option">--noout</tt></span></dt><dd>
	    Suppress output. By default,
	    <span class="application">xmllint</span> outputs the result tree.
	  </dd><dt><span class="term"><tt class="option">--htmlout</tt></span></dt><dd>
	    Output results as an <span class="acronym">HTML</span>
	    file. This causes <span class="application">xmllint</span> to output
	    the necessary <span class="acronym">HTML</span> tags surrounding the result tree
	    output so the results can be displayed in a browser. 
	  </dd><dt><span class="term"><tt class="option">--nowrap </tt></span></dt><dd>
	    Do not output HTML doc wrapper.
	  </dd><dt><span class="term"><tt class="option">--valid </tt></span></dt><dd>
	    Determine if the document is a valid instance
	    of the included Document Type Definition (<span class="acronym">DTD</span>). A
	    <span class="acronym">DTD</span> to be validated against also can be specified at
	    the command line using the <tt class="option">--dtdvalid</tt> option. By default,
	    <span class="application">xmllint</span> also checks to determine if the
	    document is well-formed.
	  </dd><dt><span class="term"><tt class="option">--postvalid</tt></span></dt><dd>
	    Validate after parsing is completed.
	  </dd><dt><span class="term"> <tt class="option">--dtdvalid</tt> <i class="replaceable"><tt>URL</tt></i></span></dt><dd>
	    Use the
      <span class="acronym">DTD</span> specified by <i class="replaceable"><tt>URL</tt></i> for
      validation.
	  </dd><dt><span class="term"><tt class="option">--timing</tt></span></dt><dd>
	    Output information about the time it takes
	    <span class="application">xmllint</span> to perform the various steps.
	  </dd><dt><span class="term"><tt class="option">--repeat</tt></span></dt><dd>
	    Repeat 100 times, for timing or profiling.
	  </dd><dt><span class="term"><tt class="option">--insert</tt></span></dt><dd>
	    Test for valid insertions.
	  </dd><dt><span class="term"><tt class="option">--compress</tt></span></dt><dd>
	    Turn on gzip compression of output.
	  </dd><dt><span class="term"><tt class="option">--sgml</tt></span></dt><dd>Use the DocBook <span class="acronym">SGML</span> parser. This allows
	    documents written in <span class="acronym">SGML</span> DocBook to be converted
	    into an in-memory tree and treated as if they were written in
	    <span class="acronym">XML</span>.</dd><dt><span class="term"><tt class="option">--html</tt></span></dt><dd>
	    Use the <span class="acronym">HTML</span> parser.
	  </dd><dt><span class="term"><tt class="option">--push</tt></span></dt><dd>
	    Use the push mode of the parser.
	  </dd><dt><span class="term"><tt class="option">--memory</tt></span></dt><dd>
	   Parse from memory.
	  </dd><dt><span class="term"><tt class="option">--nowarning</tt></span></dt><dd>
	   Do not emit warnings from the parser and/or validator.
	  </dd><dt><span class="term"><tt class="option">--noblanks</tt></span></dt><dd>
	   Drop ignorable blank spaces.
	  </dd><dt><span class="term"><tt class="option">--format</tt></span></dt><dd>
	   Reformat and reindent the output. The $XMLLINT_INDENT
	   environment variable controls the indentation (default 
	   value is two spaces "  ").
	  </dd><dt><span class="term"><tt class="option">--testIO</tt></span></dt><dd>
	   Test user input/output support.
	  </dd><dt><span class="term"><tt class="option">--encode</tt> <i class="replaceable"><tt>encoding</tt></i></span></dt><dd>
	   Output in the given encoding.
	  </dd><dt><span class="term"><tt class="option">--catalogs</tt></span></dt><dd>
	   Use the catalogs from $SGML_CATALOG_FILES. Otherwise /etc/xml/catalog
	   is used by default.
	  </dd><dt><span class="term"><tt class="option">--nocatalogs</tt></span></dt><dd>
	   Do not use any catalogs.
	  </dd><dt><span class="term"><tt class="option">--auto</tt></span></dt><dd>
	   Generate a small document for testing purposes.
	  </dd><dt><span class="term"><tt class="option">--xinclude</tt></span></dt><dd>
	   Do XInclude processing.
	  </dd><dt><span class="term"><tt class="option">--loaddtd</tt></span></dt><dd>
	   Fetch external DTD.
	  </dd><dt><span class="term"><tt class="option">--dtdattr</tt></span></dt><dd>
	   Fetch external DTD and populate the tree with inherited attributes.
	  </dd><dt><span class="term"><tt class="option">--dropdtd</tt></span></dt><dd>
	    Remove <span class="acronym">DTD</span> from output.
	  </dd><dt><span class="term"><tt class="option">--stream</tt></span></dt><dd>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.</dd><dt><span class="term"><tt class="option">--chkregister</tt></span></dt><dd>Turn on node registration. Useful for developeres testing
	  libxml2 node tracking code.</dd><dt><span class="term"><tt class="option">--relaxng</tt> <i class="replaceable"><tt>schema</tt></i></span></dt><dd>Use RelaxNG file named <i class="replaceable"><tt>schema</tt></i> for
	  validation.</dd><dt><span class="term"><tt class="option">--schema</tt> <i class="replaceable"><tt>schema</tt></i></span></dt><dd>Use a W3C XML Schema file named <i class="replaceable"><tt>schema</tt></i> for validation.</dd><dt><span class="term">
      <tt class="option">--nonet</tt></span></dt><dd>Do not use the Internet to fetch DTD's or entities.</dd></dl></div></div><div class="refsect1" lang="en"><a name="shell"></a><h2>Shell</h2><p>
      <span class="application">xmllint</span> offers an interactive shell mode
      invoked with the <tt class="option">--shell</tt> command. Available commands in
      shell mode include:
    </p><div class="variablelist"><dl><dt><span class="term"><tt class="option">base</tt></span></dt><dd>
	    display XML base of the node
	  </dd><dt><span class="term"><tt class="option">bye</tt></span></dt><dd>
	    leave shell
	  </dd><dt><span class="term"><tt class="option">cat <i class="replaceable"><tt>node</tt></i></tt></span></dt><dd>
	    Display node if given or current node.
	  </dd><dt><span class="term"><tt class="option">cd <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
	    Change the current node to <i class="replaceable"><tt>path</tt></i> (if given
	    and unique) or root if no argument given.
	  </dd><dt><span class="term"><tt class="option">dir <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
	    Dumps information about the node (namespace, attributes, content).
	  </dd><dt><span class="term"><tt class="option">du <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
	    Show the structure of the subtree under path or the current node.
	  </dd><dt><span class="term"><tt class="option">exit</tt></span></dt><dd>
	    Leave the shell.
	  </dd><dt><span class="term"><tt class="option">help</tt></span></dt><dd>
	    Show this help.
	  </dd><dt><span class="term"><tt class="option">free</tt></span></dt><dd>
	    Display memory usage.
	  </dd><dt><span class="term"><tt class="option">load <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
	    Load a new document with the given name.
	  </dd><dt><span class="term"><tt class="option">ls <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
	    List contents of <i class="replaceable"><tt>path</tt></i> (if given) or the
	    current directory.
	  </dd><dt><span class="term"><tt class="option">pwd</tt></span></dt><dd>
	    Display the path to the current node.
	  </dd><dt><span class="term"><tt class="option">quit</tt></span></dt><dd>
	    Leave the shell.
	  </dd><dt><span class="term"><tt class="option">save <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
	    Saves the current document to <i class="replaceable"><tt>name</tt></i> if
	    given or to the original name.
	  </dd><dt><span class="term"><tt class="option">validate</tt></span></dt><dd>
	    Check the document for error.
	  </dd><dt><span class="term"><tt class="option">write <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
	    Write the current node to the given filename.
	  </dd></dl></div></div><div class="refsect1" lang="en"><h2>Debugging Catalogs</h2><p>Setting the environment variable <tt class="varname">XML_DEBUG_CATALOG</tt>
    using the command <b class="command">"export XML_DEBUG_CATALOG="</b>
    outputs debugging information related to catalog operations.</p></div></div></body></html>
