Similar to VIR_DOMAIN_DEF_PARSE_VALIDATE_SCHEMA; the next patch will
put it to use with a counterpart public API flag.
No need to change qemudomainsnapshotxml2xmltest to use the flag, since
the testsuite already has a separate virschematest that does the same.
Signed-off-by: Eric Blake <eblake@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
#include <sys/stat.h>
#include <unistd.h>
+#include "configmake.h"
#include "internal.h"
#include "virbitmap.h"
#include "virbuffer.h"
goto cleanup;
}
+ if (flags & VIR_DOMAIN_SNAPSHOT_PARSE_VALIDATE) {
+ VIR_AUTOFREE(char *) schema = NULL;
+
+ schema = virFileFindResource("domainsnapshot.rng",
+ abs_top_srcdir "/docs/schemas",
+ PKGDATADIR "/schemas");
+ if (!schema)
+ goto cleanup;
+ if (virXMLValidateAgainstSchema(schema, xml) < 0)
+ goto cleanup;
+ }
+
ctxt = xmlXPathNewContext(xml);
if (ctxt == NULL) {
virReportOOMError();
VIR_DOMAIN_SNAPSHOT_PARSE_DISKS = 1 << 1,
VIR_DOMAIN_SNAPSHOT_PARSE_INTERNAL = 1 << 2,
VIR_DOMAIN_SNAPSHOT_PARSE_OFFLINE = 1 << 3,
+ VIR_DOMAIN_SNAPSHOT_PARSE_VALIDATE = 1 << 4,
} virDomainSnapshotParseFlags;
typedef enum {