# XML Format

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.

- Domains
- Networks
- Network filtering
- Network ports
- Storage
- Storage encryption
- Capabilities
- Domain capabilities
- Storage Pool capabilities
- Node devices
- Secrets
- Snapshots
- Checkpoints
- Backup jobs

## Command line validation

The `virt-xml-validate` 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

    $ virt-xml-validate /path/to/XML/file