summaryrefslogtreecommitdiff
path: root/doc/xmllint.html
blob: 9e2e7ce6d66efb64ca8ca2fae8010e2b50330cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry"><a name="idm1"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>xmllint &#8212; command line <acronym class="acronym">XML</acronym> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">xmllint</code>  [ <code class="option">--version</code>  |   <code class="option">--debug</code>  |   <code class="option">--quiet</code>  |   <code class="option">--shell</code>  |   <code class="option">--xpath "<em class="replaceable"><code>XPath_expression</code></em>"</code>  |   <code class="option">--debugent</code>  |   <code class="option">--copy</code>  |   <code class="option">--recover</code>  |   <code class="option">--nodict</code>  |   <code class="option">--noent</code>  |   <code class="option">--noout</code>  |   <code class="option">--nonet</code>  |   <code class="option">--path "<em class="replaceable"><code>PATH(S)</code></em>"</code>  |   <code class="option">--load-trace</code>  |   <code class="option">--htmlout</code>  |   <code class="option">--nowrap</code>  |   <code class="option">--valid</code>  |   <code class="option">--postvalid</code>  |   <code class="option">--dtdvalid <em class="replaceable"><code>URL</code></em></code>  |   <code class="option">--dtdvalidfpi <em class="replaceable"><code>FPI</code></em></code>  |   <code class="option">--timing</code>  |   <code class="option">--output <em class="replaceable"><code>FILE</code></em></code>  |   <code class="option">--repeat</code>  |   <code class="option">--insert</code>  |   <code class="option">--compress</code>  |   <code class="option">--html</code>  |   <code class="option">--xmlout</code>  |   <code class="option">--push</code>  |   <code class="option">--memory</code>  |   <code class="option">--maxmem <em class="replaceable"><code>NBBYTES</code></em></code>  |   <code class="option">--nowarning</code>  |   <code class="option">--noblanks</code>  |   <code class="option">--nocdata</code>  |   <code class="option">--format</code>  |   <code class="option">--encode <em class="replaceable"><code>ENCODING</code></em></code>  |   <code class="option">--dropdtd</code>  |   <code class="option">--nsclean</code>  |   <code class="option">--testIO</code>  |   <code class="option">--catalogs</code>  |   <code class="option">--nocatalogs</code>  |   <code class="option">--auto</code>  |   <code class="option">--xinclude</code>  |   <code class="option">--noxincludenode</code>  |   <code class="option">--loaddtd</code>  |   <code class="option">--dtdattr</code>  |   <code class="option">--stream</code>  |   <code class="option">--walker</code>  |   <code class="option">--pattern <em class="replaceable"><code>PATTERNVALUE</code></em></code>  |   <code class="option">--chkregister</code>  |   <code class="option">--relaxng <em class="replaceable"><code>SCHEMA</code></em></code>  |   <code class="option">--schema <em class="replaceable"><code>SCHEMA</code></em></code>  |   <code class="option">--c14n</code>  |   <code class="option">--pedantic</code> ] { <em class="replaceable"><code>XML-FILE(S)</code></em>...  |   - }</p></div><div class="cmdsynopsis"><p><code class="command">xmllint</code>   <code class="option">--help</code> </p></div></div><div class="refsect1"><a name="description"></a><h2>DESCRIPTION</h2><p>
        The <span class="command"><strong>xmllint</strong></span> program parses one or more <acronym class="acronym">XML</acronym> files,
        specified on the command line as <em class="replaceable"><code>XML-FILE</code></em>
        (or the standard input if the filename provided
        is <span class="bold"><strong>-</strong></span> ). It prints various types of
        output, depending upon the options selected. It is useful for detecting
        errors both in <acronym class="acronym">XML</acronym> code and in
        the <acronym class="acronym">XML</acronym> parser itself.
    </p><p><span class="command"><strong>xmllint</strong></span> is included in <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>.</p></div><div class="refsect1"><a name="options"></a><h2>OPTIONS</h2><p>
        <span class="command"><strong>xmllint</strong></span> accepts the following options (in alphabetical order):
    </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">--auto</code></span></dt><dd><p>Generate a small document for testing purposes.</p></dd><dt><span class="term"><code class="option">--catalogs</code></span></dt><dd><p>
                    Use the <acronym class="acronym">SGML</acronym> catalog(s) from <code class="envar">SGML_CATALOG_FILES</code>.
                    Otherwise <acronym class="acronym">XML</acronym> catalogs starting
                    from <code class="filename">/etc/xml/catalog</code> or, more specifically,
                    <code class="filename">${sysconfdir}/xml/catalog</code> are used by default.
                </p></dd><dt><span class="term"><code class="option">--chkregister</code></span></dt><dd><p>
                    Turn on node registration. Useful for developers testing <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> node tracking code.
                </p></dd><dt><span class="term"><code class="option">--compress</code></span></dt><dd><p>
                    Turn on <span class="citerefentry"><span class="refentrytitle">gzip</span>(1)</span> compression of output.
                </p></dd><dt><span class="term"><code class="option">--copy</code></span></dt><dd><p>Test the internal copy implementation.</p></dd><dt><span class="term"><code class="option">--c14n</code></span></dt><dd><p>
                    Use the W3C <acronym class="acronym">XML</acronym> Canonicalisation (<acronym class="acronym">C14N</acronym>) to
                    serialize the result of parsing to <code class="filename">stdout</code>.
                    It keeps comments in the result.
                </p></dd><dt><span class="term"><code class="option">--dtdvalid <em class="replaceable"><code>URL</code></em></code></span></dt><dd><p>
                    Use the <acronym class="acronym">DTD</acronym> specified by
                    an <em class="replaceable"><code>URL</code></em> for validation.
                </p></dd><dt><span class="term"><code class="option">--dtdvalidfpi <em class="replaceable"><code>FPI</code></em></code></span></dt><dd><p>
                    Use the <acronym class="acronym">DTD</acronym> specified by a Formal Public
                    Identifier <em class="replaceable"><code>FPI</code></em> for validation, note that this
                    will require a catalog exporting that Formal Public Identifier to work.
                </p></dd><dt><span class="term"><code class="option">--debug</code></span></dt><dd><p>
                    Parse a file and output an annotated tree of the
                    in-memory version of the document.
                </p></dd><dt><span class="term"><code class="option">--debugent</code></span></dt><dd><p>Debug the entities defined in the document.</p></dd><dt><span class="term"><code class="option">--dropdtd</code></span></dt><dd><p>Remove <acronym class="acronym">DTD</acronym> from output.</p></dd><dt><span class="term"><code class="option">--dtdattr</code></span></dt><dd><p>
                    Fetch external <acronym class="acronym">DTD</acronym> and populate the tree with
                    inherited attributes.
                </p></dd><dt><span class="term"><code class="option">--encode <em class="replaceable"><code>ENCODING</code></em></code></span></dt><dd><p>Output in the given encoding. Note that this works for full document not fragments or result from XPath queries.</p></dd><dt><span class="term"><code class="option">--format</code></span></dt><dd><p>
                    Reformat and reindent the output. The <code class="envar">XMLLINT_INDENT</code>
                    environment variable controls the indentation. The default value is two
                    spaces "  ").
                </p></dd><dt><span class="term"><code class="option">--help</code></span></dt><dd><p>Print out a short usage summary for <span class="command"><strong>xmllint</strong></span>.</p></dd><dt><span class="term"><code class="option">--html</code></span></dt><dd><p>Use the <acronym class="acronym">HTML</acronym> parser.</p></dd><dt><span class="term"><code class="option">--htmlout</code></span></dt><dd><p>
                    Output results as an <acronym class="acronym">HTML</acronym> file. This
                    causes <span class="command"><strong>xmllint</strong></span> to output the necessary <acronym class="acronym">HTML</acronym>
                    tags surrounding the result tree output so the results can be
                    displayed/viewed in a browser.
                </p></dd><dt><span class="term"><code class="option">--insert</code></span></dt><dd><p>Test for valid insertions.</p></dd><dt><span class="term"><code class="option">--loaddtd</code></span></dt><dd><p>Fetch an external <acronym class="acronym">DTD</acronym>.</p></dd><dt><span class="term"><code class="option">--load-trace</code></span></dt><dd><p>
                    Display all the documents loaded during the processing
                    to <code class="filename">stderr</code>.
                </p></dd><dt><span class="term"><code class="option">--maxmem <em class="replaceable"><code>NNBYTES</code></em></code></span></dt><dd><p>
                    Test the parser memory support. <em class="replaceable"><code>NNBYTES</code></em>
                    is the maximum number of bytes the library is allowed to allocate.
                    This can also be used to make sure batch processing
                    of <acronym class="acronym">XML</acronym> files will not exhaust the virtual memory
                    of the server running them.
                </p></dd><dt><span class="term"><code class="option">--memory</code></span></dt><dd><p>Parse from memory.</p></dd><dt><span class="term"><code class="option">--noblanks</code></span></dt><dd><p>Drop ignorable blank spaces.</p></dd><dt><span class="term"><code class="option">--nocatalogs</code></span></dt><dd><p>Do not use any catalogs.</p></dd><dt><span class="term"><code class="option">--nocdata</code></span></dt><dd><p>Substitute CDATA section by equivalent text nodes.</p></dd><dt><span class="term"><code class="option">--nodict</code></span></dt><dd><p>
                    Don't use dictionaries (parser option XML_PARSE_NODICT).
                    Only for debugging.
                </p></dd><dt><span class="term"><code class="option">--noent</code></span></dt><dd><p>
                    Substitute entity values for entity references. By default, <span class="command"><strong>xmllint</strong></span>
                    leaves entity references in place.
                </p></dd><dt><span class="term"><code class="option">--nonet</code></span></dt><dd><p>
                    Do not use the Internet to fetch <acronym class="acronym">DTD</acronym>s or entities.
                </p></dd><dt><span class="term"><code class="option">--noout</code></span></dt><dd><p>
                    Suppress output. By default, <span class="command"><strong>xmllint</strong></span> outputs the result tree.
                </p></dd><dt><span class="term"><code class="option">--nowarning</code></span></dt><dd><p>Do not emit warnings from the parser and/or validator.</p></dd><dt><span class="term"><code class="option">--nowrap</code></span></dt><dd><p>Do not output <acronym class="acronym">HTML</acronym> doc wrapper.</p></dd><dt><span class="term"><code class="option">--noxincludenode</code></span></dt><dd><p>
                    Do XInclude processing but do not generate XInclude start and end nodes.
                </p></dd><dt><span class="term"><code class="option">--nsclean</code></span></dt><dd><p>Remove redundant namespace declarations.</p></dd><dt><span class="term"><code class="option">--output <em class="replaceable"><code>FILE</code></em></code></span></dt><dd><p>
                    Define a file path where <span class="command"><strong>xmllint</strong></span> will save the result of parsing.
                    Usually the programs build a tree and save it
                    on <code class="filename">stdout</code>, with this option
                    the result <acronym class="acronym">XML</acronym> instance will be saved onto a file.
                </p></dd><dt><span class="term"><code class="option">--path "<em class="replaceable"><code>PATH(S)</code></em>"</code></span></dt><dd><p>
                    Use the (space- or colon-separated) list of filesystem paths specified
                    by <em class="replaceable"><code>PATHS</code></em> to load <acronym class="acronym">DTD</acronym>s or
                    entities. Enclose space-separated lists by quotation marks.
                </p></dd><dt><span class="term"><code class="option">--pattern <em class="replaceable"><code>PATTERNVALUE</code></em></code></span></dt><dd><p>
                    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.
                </p></dd><dt><span class="term"><code class="option">--pedantic</code></span></dt><dd><p>Enable additional warnings.</p></dd><dt><span class="term"><code class="option">--postvalid</code></span></dt><dd><p>Validate after parsing has completed.</p></dd><dt><span class="term"><code class="option">--push</code></span></dt><dd><p>Use the push mode of the parser.</p></dd><dt><span class="term"><code class="option">--quiet</code></span></dt><dd><p>Don't print informational messages to stderr.</p></dd><dt><span class="term"><code class="option">--recover</code></span></dt><dd><p>Output any parsable portions of an invalid document.</p></dd><dt><span class="term"><code class="option">--relaxng <em class="replaceable"><code>SCHEMA</code></em></code></span></dt><dd><p>
                    Use RelaxNG file named <em class="replaceable"><code>SCHEMA</code></em>
                    for validation.
                </p></dd><dt><span class="term"><code class="option">--repeat</code></span></dt><dd><p>Repeat 100 times, for timing or profiling.</p></dd><dt><span class="term"><code class="option">--schema <em class="replaceable"><code>SCHEMA</code></em></code></span></dt><dd><p>
                    Use a W3C <acronym class="acronym">XML</acronym> Schema file
                    named <em class="replaceable"><code>SCHEMA</code></em> for validation.
                </p></dd><dt><span class="term"><code class="option">--shell</code></span></dt><dd><p>
                    Run a navigating shell. Details on available commands in shell mode
                    are below (see <a class="xref" href="#shell" title="SHELL COMMANDS">the section called &#8220;SHELL COMMANDS&#8221;</a>).
                </p></dd><dt><span class="term"><code class="option">--xpath "<em class="replaceable"><code>XPath_expression</code></em>"</code></span></dt><dd><p>
                    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.
                </p></dd><dt><span class="term"><code class="option">--stream</code></span></dt><dd><p>
                    Use streaming <acronym class="acronym">API</acronym> - useful when used in combination
                    with <code class="option">--relaxng</code> or <code class="option">--valid</code> options
                    for validation of files that are too large to be held in memory.
                </p></dd><dt><span class="term"><code class="option">--testIO</code></span></dt><dd><p>Test user input/output support.</p></dd><dt><span class="term"><code class="option">--timing</code></span></dt><dd><p>
                    Output information about the time it takes <span class="command"><strong>xmllint</strong></span> to perform the
                    various steps.
                </p></dd><dt><span class="term"><code class="option">--valid</code></span></dt><dd><p>
                    Determine if the document is a valid instance of the included
                    Document Type Definition (<acronym class="acronym">DTD</acronym>).
                    A <acronym class="acronym">DTD</acronym> to be validated against also can be
                    specified at the command line using the <code class="option">--dtdvalid</code>
                    option. By default, <span class="command"><strong>xmllint</strong></span> also checks to determine if the
                    document is well-formed.
                </p></dd><dt><span class="term"><code class="option">--version</code></span></dt><dd><p>
                    Display the version of <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> used.
                </p></dd><dt><span class="term"><code class="option">--walker</code></span></dt><dd><p>
                    Test the walker module, which is a reader interface but for a
                    document tree, instead of using the reader <acronym class="acronym">API</acronym> on
                    an unparsed document it works on an existing in-memory tree. Used for
                    debugging.
                </p></dd><dt><span class="term"><code class="option">--xinclude</code></span></dt><dd><p>Do XInclude processing.</p></dd><dt><span class="term"><code class="option">--xmlout</code></span></dt><dd><p>
                    Used in conjunction with <code class="option">--html</code>. Usually
                    when <acronym class="acronym">HTML</acronym> is parsed the document is saved with
                    the <acronym class="acronym">HTML</acronym> serializer. But with this option the
                    resulting document is saved with the <acronym class="acronym">XML</acronym>
                    serializer. This is primarily used to
                    generate <acronym class="acronym">XHTML</acronym> from <acronym class="acronym">HTML</acronym> input.
                </p></dd></dl></div></div><div class="refsect1"><a name="shell"></a><h2>SHELL COMMANDS</h2><p>
        <span class="command"><strong>xmllint</strong></span> offers an interactive shell mode invoked with
        the <code class="option">--shell</code> command. Available commands in shell mode
        include (in alphabetical order):
    </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="command"><strong>base</strong></span></span></dt><dd><p>Display <acronym class="acronym">XML</acronym> base of the node.</p></dd><dt><span class="term"><span class="command"><strong>bye</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>cat <em class="replaceable"><code>NODE</code></em></strong></span></span></dt><dd><p>Display the given node or the current one.</p></dd><dt><span class="term"><span class="command"><strong>cd <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
                    Change the current node to the given path (if unique) or root if no
                    argument is given.
                </p></dd><dt><span class="term"><span class="command"><strong>dir <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
                    Dumps information about the node (namespace, attributes, content).
                </p></dd><dt><span class="term"><span class="command"><strong>du <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
                    Show the structure of the subtree under the given path or the current node.
                </p></dd><dt><span class="term"><span class="command"><strong>exit</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>help</strong></span></span></dt><dd><p>Show this help.</p></dd><dt><span class="term"><span class="command"><strong>free</strong></span></span></dt><dd><p>Display memory usage.</p></dd><dt><span class="term"><span class="command"><strong>load <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>Load a new document with the given filename.</p></dd><dt><span class="term"><span class="command"><strong>ls <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>List contents of the given path or the current directory.</p></dd><dt><span class="term"><span class="command"><strong>pwd</strong></span></span></dt><dd><p>Display the path to the current node.</p></dd><dt><span class="term"><span class="command"><strong>quit</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>save <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>
                    Save the current document to the given filename or to the original name.
                </p></dd><dt><span class="term"><code class="option">validate</code></span></dt><dd><p>Check the document for errors.</p></dd><dt><span class="term"><span class="command"><strong>write <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>Write the current node to the given filename.</p></dd></dl></div></div><div class="refsect1"><a name="environment"></a><h2>ENVIRONMENT</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="envar">SGML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">SGML</acronym> catalog behavior can be changed by redirecting
                    queries to the user's own set of catalogs. This can be done by setting
                    the <code class="envar">SGML_CATALOG_FILES</code> environment variable to a list
                    of catalogs. An empty one should deactivate loading the
                    default catalog.
                </p></dd><dt><span class="term"><code class="envar">XML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">XML</acronym> catalog behavior can be changed by redirecting
                    queries to the user's own set of catalogs. This can be done by setting
                    the <code class="envar">XML_CATALOG_FILES</code> 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 catalog.
                </p></dd><dt><span class="term"><code class="envar">XML_DEBUG_CATALOG</code></span></dt><dd><p>Setting the environment variable <code class="envar">XML_DEBUG_CATALOG</code>
                    to <em class="parameter"><code>non-zero</code></em> using the <span class="command"><strong>export</strong></span>
                    command outputs debugging information related to catalog operations.
                </p></dd><dt><span class="term"><code class="envar">XMLLINT_INDENT</code></span></dt><dd><p>Setting the environment variable <code class="envar">XMLLINT_INDENT</code>
                    controls the indentation. The default value is two spaces "  ".
                </p></dd></dl></div></div><div class="refsect1"><a name="diagnostics"></a><h2>DIAGNOSTICS</h2><p>
        <span class="command"><strong>xmllint</strong></span> return codes provide information that can be used when
        calling it from scripts.
    </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="errorcode">0</span></span></dt><dd><p>No error</p></dd><dt><span class="term"><span class="errorcode">1</span></span></dt><dd><p>Unclassified</p></dd><dt><span class="term"><span class="errorcode">2</span></span></dt><dd><p>Error in <acronym class="acronym">DTD</acronym></p></dd><dt><span class="term"><span class="errorcode">3</span></span></dt><dd><p>Validation error</p></dd><dt><span class="term"><span class="errorcode">4</span></span></dt><dd><p>Validation error</p></dd><dt><span class="term"><span class="errorcode">5</span></span></dt><dd><p>Error in schema compilation</p></dd><dt><span class="term"><span class="errorcode">6</span></span></dt><dd><p>Error writing output</p></dd><dt><span class="term"><span class="errorcode">7</span></span></dt><dd><p>
                    Error in pattern (generated when <code class="option">--pattern</code> option is used)
                </p></dd><dt><span class="term"><span class="errorcode">8</span></span></dt><dd><p>
                    Error in Reader registration (generated
                    when <code class="option">--chkregister</code> option is used)
                </p></dd><dt><span class="term"><span class="errorcode">9</span></span></dt><dd><p>Out of memory error</p></dd><dt><span class="term"><span class="errorcode">10</span></span></dt><dd><p>XPath evaluation error</p></dd></dl></div></div><div class="refsect1"><a name="seealso"></a><h2>SEE ALSO</h2><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>
    </p><p>
        More information can be found at
        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> web page <a class="ulink" href="https://gitlab.gnome.org/GNOME/libxml2" target="_top">https://gitlab.gnome.org/GNOME/libxml2</a>
                </p></li></ul></div><p>
    </p></div></div></body></html>