packages icon



 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



 NAME
      xmllint - command line XML tool

 SYNOPSIS
      xmllint [--version | --debug | --quiet | --shell |
              --xpath "XPath_expression" | --xpath0 "XPath_expression" |
              --copy | --recover | --huge | --nocompact | --nodefdtd |
              --nodict | --noenc | --noent | --nofixup-base-uris | --noout |
              --nonet | --path "PATH(S)" | --load-trace | --valid |
              --postvalid | --dtdvalid URL | --dtdvalidfpi FPI | --timing |
              --output FILE | --repeat | --insert | --strict-namespace |
              --compress | --html | --xmlout | --push | --memory |
              --max-ampl INTEGER | --maxmem NBBYTES | --nowarning |
              --noblanks | --nocdata | --format | --pretty INTEGER |
              --encode ENCODING | --dropdtd | --nsclean | --catalogs |
              --nocatalogs | --auto | --xinclude | --noxincludenode |
              --loaddtd | --dtdattr | --stream | --walker |
              --pattern PATTERNVALUE | --relaxng SCHEMA | --schema SCHEMA |
              --schematron SCHEMA | --c14n | --c14n11 | --exc-c14n |
              --pedantic | --sax | --sax1 | --oldxml10] {XML-FILE(S)... | -}

 DESCRIPTION
      The xmllint program parses one or more XML files, specified on the
      command line as XML-FILE (or the standard input if the filename
      provided is - ). 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.

      xmllint is part of the libxml2 library.

 VALIDATION OPTIONS
      Options enabling validation.

      --dtdvalid URL
          Use the DTD specified by an URL for validation.

      --dtdvalidfpi FPI
          Use the DTD specified by a Formal Public Identifier FPI for
          validation, note that this will require a catalog exporting that
          Formal Public Identifier to work.

      --relaxng SCHEMA
          Use RelaxNG file named SCHEMA for validation.

      --schema SCHEMA
          Use a W3C XML Schema file named SCHEMA for validation.

      --schematron SCHEMA
          Use a Schematron file named SCHEMA for validation.



                                    - 1 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



      --valid
          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 --dtdvalid option.
          By default, xmllint also checks to determine if the document is
          well-formed.

      --strict-namespace
          Return an error if the document is well-formed, but has namespace
          errors. This enforces namespace-well-formedness.

 PARSER OPTIONS
      The following options set the respective parser options.

      --dtdattr
          Fetch external DTD and populate the tree with inherited
          attributes. Implies --loaddtd.

      --huge
          Ignore some hardcoded parser limits.

      --loaddtd
          Fetch an external DTD and external parameter entities.

      --max-ampl INTEGER
          Set the maximum amplification factor which protects against
          exponential entity expansion ("billion laughs"). The default value
          is 5. Documents making heavy use of entity expansion may require a
          higher value.

      --noblanks
          Drop "ignorable" blank spaces. This option is unreliable and
          shouldn't be used.

      --nocatalogs
          Do not use any catalogs.

      --nocdata
          Substitute CDATA section by equivalent text nodes.

      --nodefdtd
          Do not set default HTML doctype (parser option
          HTML_PARSE_NODEFDTD).

      --noenc
          Ignore encoding declaration (parser option XML_PARSE_IGNORE_ENC).

      --noent
          Substitute entity values for entity references. By default,



                                    - 2 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



          xmllint leaves entity references in place. This enables loading of
          external DTDs and entities.

      --nofixup-base-uris
          Don't fix xml:base URIs when processing XIncludes (parser option
          XML_PARSE_NOBASEFIX).

      --nonet
          Do not use the Internet to fetch DTDs or entities. Has no effect
          with libxml2 2.15 or later.

      --nowarning
          Do not emit warnings from the parser and/or validator.

      --nsclean
          Remove redundant namespace declarations.

      --oldxml10
          Use deprecated parsing rules before XML 1.0, 5th edition.

      --pedantic
          Enable additional warnings.

      --recover
          Output any parsable portions of an invalid document. Exact
          behavior is unspecified. Use of this option is discouraged.

      --xinclude
          Do XInclude processing.

 MISCELLANEOUS OPTIONS
      Options that don't fall in another category.

      --catalogs
          Use the SGML catalog(s) from SGML_CATALOG_FILES.  XML catalogs are
          loaded by default.

      --dropdtd
          Remove DTD after parsing.

      --html
          Use the HTML parser.

      --path "PATH(S)"
          Use the (space- or colon-separated) list of filesystem paths
          specified by PATHS to load DTDs or entities. Enclose
          space-separated lists by quotation marks.

      --quiet



                                    - 3 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



          Don't print informational messages to stderr.

      --sax
          Print SAX callbacks for debugging. Can be used for streaming DTD
          and Schema validation when used with --noout.

      --shell
          Run a navigating shell. Details on available commands in shell
          mode are below (see the section called SHELL COMMANDS).

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

      --version
          Display the version of libxml2 used.

 OUTPUT OPTIONS
      Options controlling output. Except for --noout these have no effect in
      SAX or stream mode.

      --compress
          Turn on gzip(1) compression of output.

      --c14n, --c14n11, --exc-c14n
          Use the W3C XML Canonicalisation (C14N) to serialize the result of
          parsing to stdout. It keeps comments in the result.

      --encode ENCODING
          Output in the given encoding. Note that this works for full
          document not fragments or result from XPath queries.

      --format
          Reformat and reindent the output. The XMLLINT_INDENT environment
          variable controls the indentation. The default value is two spaces
          " ").

          Especially in the absence of a DTD, this feature has never worked
          reliably and is fundamentally broken.

      --noout
          Suppress output. By default, xmllint outputs the result tree.

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




                                    - 4 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



      --pretty INTEGER
          Value 0 means no formatting, 1 means XML_SAVE_FORMAT (same as
          --format), 2 means XML_SAVE_WSNONSIG.

      --xmlout
          Used in conjunction with --html. 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.

 DEBUG OPTIONS
      The following options can be used to debug the libxml2 library.
      Behavior of these options may change without notice.

      --auto
          Generate a small document for testing purposes.

      --copy
          Test the internal copy implementation.

      --debug
          Parse a file and output an annotated tree of the in-memory version
          of the document.

      --insert
          Test for valid insertions. DEPRECATED: This feature will be
          removed.

      --load-trace
          Display all the documents loaded during the processing to stderr.

      --maxmem NNBYTES
          Test the parser memory support.  NNBYTES 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.

      --memory
          Parse from memory.

      --nocompact
          Do not generate compact text nodes (parser option
          XML_PARSE_COMPACT). Only for debugging.

      --nodict
          Don't use dictionaries (parser option XML_PARSE_NODICT). Only for
          debugging.

      --noxincludenode



                                    - 5 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



          Do XInclude processing but do not generate XInclude start and end
          nodes.

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

      --postvalid
          Validate after parsing has completed.

      --push
          Use the push mode of the parser.

      --repeat
          Repeat 100 times, for timing or profiling.

      --sax1
          Use deprecated SAX1 interface (only for debugging).

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

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

      --xpath "XPath_expression"
          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 exit code 11 will be returned..

 SHELL COMMANDS
      xmllint offers an interactive shell mode invoked with the --shell
      command. Available commands in shell mode include (in alphabetical
      order):

      base
          Display XML base of the node.

      bye
          Leave the shell.

      cat NODE



                                    - 6 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



          Display the given node or the current one.

      cd PATH
          Change the current node to the given path (if unique) or root if
          no argument is given.

      dir PATH
          Dumps information about the node (namespace, attributes, content).

      du PATH
          Show the structure of the subtree under the given path or the
          current node.

      exit
          Leave the shell.

      help
          Show this help.

      load FILENAME
          Load a new document with the given filename.

      ls PATH
          List contents of the given path or the current directory.

      pwd
          Display the path to the current node.

      quit
          Leave the shell.

      save FILENAME
          Save the current document to the given filename or to the original
          name.

      validate
          Check the document for errors.

      write FILENAME
          Write the current node to the given filename.

 ENVIRONMENT
      SGML_CATALOG_FILES
          SGML catalog behavior can be changed by redirecting queries to the
          user's own set of catalogs. This can be done by setting the
          SGML_CATALOG_FILES environment variable to a list of catalogs. An
          empty one should deactivate loading the default catalog.

      XML_CATALOG_FILES



                                    - 7 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



          XML catalog behavior can be changed by redirecting queries to the
          user's own set of catalogs. This can be done by setting the
          XML_CATALOG_FILES 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.

      XML_DEBUG_CATALOG
          Setting the environment variable XML_DEBUG_CATALOG to non-zero
          using the export command outputs debugging information related to
          catalog operations.

      XMLLINT_INDENT
          Setting the environment variable XMLLINT_INDENT controls the
          indentation. The default value is two spaces " ".

 DIAGNOSTICS
      xmllint return codes provide information that can be used when calling
      it from scripts.

      0
          No error

      1
          Unclassified

      2
          Error in DTD

      3
          Validation error

      4
          Document isn't well-formed or couldn't be read

      5
          Error in schema compilation

      6
          Error writing output

      7
          Error in pattern (generated when --pattern option is used)

      9
          Out of memory error

      10
          XPath evaluation error



                                    - 8 -         Formatted:  March 20, 2026






 XMLLINT(1)                        xmllint                        XMLLINT(1)
 xmllint Manual                                               xmllint Manual

                                 03/04/2026



      11
          XPath result is empty

 SEE ALSO
      More information can be found in the libxml2 repo at m[blue]-
      https://gitlab.gnome.org/GNOME/libxml2m[]

 AUTHORS
      John Fleck <jfleck@inkstain.net>

      Ziying Sherwin <sherwin@nlm.nih.gov>

      Heiko Rupp <hwr@pilhuhn.de>

 COPYRIGHT
      Copyright c 2001, 2004




































                                    - 9 -         Formatted:  March 20, 2026