<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1>XML Format</h1>


    <p>
      Objects in the libvirt API are configured using XML documents to allow
      for ease of extension in future releases. Each XML document has an
      associated Relax-NG schema that can be used to validate documents
      prior to usage.
    </p>


    <ul>
      <li><a href="formatdomain.html">Domains</a></li>
      <li><a href="formatnetwork.html">Networks</a></li>
      <li><a href="formatnwfilter.html">Network filtering</a></li>
      <li><a href="formatnetworkport.html">Network ports</a></li>
      <li><a href="formatstorage.html">Storage</a></li>
      <li><a href="formatstorageencryption.html">Storage encryption</a></li>
      <li><a href="formatcaps.html">Capabilities</a></li>
      <li><a href="formatdomaincaps.html">Domain capabilities</a></li>
      <li><a href="formatstoragecaps.html">Storage Pool capabilities</a></li>
      <li><a href="formatnode.html">Node devices</a></li>
      <li><a href="formatsecret.html">Secrets</a></li>
      <li><a href="formatsnapshot.html">Snapshots</a></li>
      <li><a href="formatcheckpoint.html">Checkpoints</a></li>
    </ul>

    <h2>Command line validation</h2>

    <p>
      The <code>virt-xml-validate</code> tool provides a simple command line
      for validating XML documents prior to giving them to libvirt. It uses
      the locally instaled RNG schema documents. It will auto-detect which
      schema to use for validation based on the name of the top level element
      in the input document. Thus it merely requires the XML document filename
      to be passed on the command line
    </p>

    <pre>
$ virt-xml-validate /path/to/XML/file</pre>

  </body>
</html>
