mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
src: add 'schema' and 'validate' variable to virXMLParseHelper()
Signed-off-by: Kristina Hanicova <khanicov@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
4de7ccc4d8
commit
f43c27960e
@ -281,7 +281,7 @@ virDomainBackupDefParseString(const char *xmlStr,
|
||||
g_autoptr(xmlDoc) xml = NULL;
|
||||
int keepBlanksDefault = xmlKeepBlanksDefault(0);
|
||||
|
||||
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_backup)")))) {
|
||||
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_backup)"), NULL, false))) {
|
||||
xmlKeepBlanksDefault(keepBlanksDefault);
|
||||
ret = virDomainBackupDefParseNode(xml, xmlDocGetRootElement(xml),
|
||||
xmlopt, flags);
|
||||
|
@ -226,7 +226,7 @@ virDomainCheckpointDefParseString(const char *xmlStr,
|
||||
xmlDocPtr xml;
|
||||
int keepBlanksDefault = xmlKeepBlanksDefault(0);
|
||||
|
||||
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_checkpoint)")))) {
|
||||
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_checkpoint)"), NULL, false))) {
|
||||
xmlKeepBlanksDefault(keepBlanksDefault);
|
||||
ret = virDomainCheckpointDefParseNode(xml, xmlDocGetRootElement(xml),
|
||||
xmlopt, parseOpaque, flags);
|
||||
|
@ -20400,7 +20400,7 @@ virDomainDefParse(const char *xmlStr,
|
||||
virDomainDef *def = NULL;
|
||||
int keepBlanksDefault = xmlKeepBlanksDefault(0);
|
||||
xmlNodePtr root;
|
||||
if (!(xml = virXMLParse(filename, xmlStr, _("(domain_definition)"))))
|
||||
if (!(xml = virXMLParse(filename, xmlStr, _("(domain_definition)"), NULL, false)))
|
||||
goto cleanup;
|
||||
|
||||
root = xmlDocGetRootElement(xml);
|
||||
|
@ -824,7 +824,7 @@ virInterfaceDefParse(const char *xmlStr,
|
||||
xmlDocPtr xml;
|
||||
virInterfaceDef *def = NULL;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(interface_definition)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(interface_definition)"), NULL, false))) {
|
||||
def = virInterfaceDefParseNode(xml, xmlDocGetRootElement(xml));
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
|
@ -2091,7 +2091,7 @@ virNetworkDefParse(const char *xmlStr,
|
||||
virNetworkDef *def = NULL;
|
||||
int keepBlanksDefault = xmlKeepBlanksDefault(0);
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(network_definition)"))))
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(network_definition)"), NULL, false)))
|
||||
def = virNetworkDefParseNode(xml, xmlDocGetRootElement(xml), xmlopt);
|
||||
|
||||
xmlKeepBlanksDefault(keepBlanksDefault);
|
||||
|
@ -2177,7 +2177,7 @@ virNodeDeviceDefParse(const char *str,
|
||||
xmlDocPtr xml;
|
||||
g_autoptr(virNodeDeviceDef) def = NULL;
|
||||
|
||||
if ((xml = virXMLParse(filename, str, _("(node_device_definition)")))) {
|
||||
if ((xml = virXMLParse(filename, str, _("(node_device_definition)"), NULL, false))) {
|
||||
def = virNodeDeviceDefParseNode(xml, xmlDocGetRootElement(xml),
|
||||
create, virt_type);
|
||||
xmlFreeDoc(xml);
|
||||
|
@ -2744,7 +2744,7 @@ virNWFilterDefParse(const char *xmlStr,
|
||||
virNWFilterDef *def = NULL;
|
||||
xmlDocPtr xml;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilter_definition)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilter_definition)"), NULL, false))) {
|
||||
def = virNWFilterDefParseNode(xml, xmlDocGetRootElement(xml));
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
|
@ -196,7 +196,7 @@ virSecretDefParse(const char *xmlStr,
|
||||
xmlDocPtr xml;
|
||||
virSecretDef *ret = NULL;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(definition_of_secret)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(definition_of_secret)"), NULL, false))) {
|
||||
ret = secretXMLParseNode(xml, xmlDocGetRootElement(xml));
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
|
@ -462,7 +462,7 @@ virDomainSnapshotDefParseString(const char *xmlStr,
|
||||
xmlDocPtr xml;
|
||||
int keepBlanksDefault = xmlKeepBlanksDefault(0);
|
||||
|
||||
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_snapshot)")))) {
|
||||
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_snapshot)"), NULL, false))) {
|
||||
xmlKeepBlanksDefault(keepBlanksDefault);
|
||||
ret = virDomainSnapshotDefParseNode(xml, xmlDocGetRootElement(xml),
|
||||
xmlopt, parseOpaque,
|
||||
|
@ -1009,7 +1009,7 @@ virStoragePoolDefParse(const char *xmlStr,
|
||||
virStoragePoolDef *ret = NULL;
|
||||
xmlDocPtr xml;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(storage_pool_definition)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(storage_pool_definition)"), NULL, false))) {
|
||||
ret = virStoragePoolDefParseNode(xml, xmlDocGetRootElement(xml));
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
@ -1478,7 +1478,7 @@ virStorageVolDefParse(virStoragePoolDef *pool,
|
||||
virStorageVolDef *ret = NULL;
|
||||
xmlDocPtr xml;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)"), NULL, false))) {
|
||||
ret = virStorageVolDefParseNode(pool, xml, xmlDocGetRootElement(xml), flags);
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
|
@ -297,7 +297,7 @@ virNetworkPortDefParse(const char *xmlStr,
|
||||
virNetworkPortDef *def = NULL;
|
||||
xmlDocPtr xml;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(networkport_definition)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(networkport_definition)"), NULL, false))) {
|
||||
def = virNetworkPortDefParseNode(xml, xmlDocGetRootElement(xml));
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
|
@ -188,7 +188,7 @@ virNWFilterBindingDefParse(const char *xmlStr,
|
||||
virNWFilterBindingDef *def = NULL;
|
||||
xmlDocPtr xml;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_definition)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_definition)"), NULL, false))) {
|
||||
def = virNWFilterBindingDefParseNode(xml, xmlDocGetRootElement(xml));
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
|
@ -265,7 +265,7 @@ virNWFilterBindingObjParse(const char *xmlStr,
|
||||
virNWFilterBindingObj *obj = NULL;
|
||||
xmlDocPtr xml;
|
||||
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_status)")))) {
|
||||
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_status)"), NULL, false))) {
|
||||
obj = virNWFilterBindingObjParseNode(xml, xmlDocGetRootElement(xml));
|
||||
xmlFreeDoc(xml);
|
||||
}
|
||||
|
@ -832,7 +832,7 @@ testParseXMLDocFromFile(xmlNodePtr node, const char *file, const char *type)
|
||||
if ((relFile = virXMLPropString(node, "file"))) {
|
||||
absFile = testBuildFilename(file, relFile);
|
||||
|
||||
if (!(doc = virXMLParse(absFile, NULL, type)))
|
||||
if (!(doc = virXMLParse(absFile, NULL, type, NULL, false)))
|
||||
goto error;
|
||||
|
||||
ret = xmlCopyNode(xmlDocGetRootElement(doc), 1);
|
||||
|
@ -1096,6 +1096,8 @@ catchXMLError(void *ctx, const char *msg G_GNUC_UNUSED, ...)
|
||||
* @url: URL of XML document for string parser
|
||||
* @rootelement: Optional name of the expected root element
|
||||
* @ctxt: optional pointer to populate with new context pointer
|
||||
* @schemafile: unused
|
||||
* @validate: unused
|
||||
*
|
||||
* Parse XML document provided either as a file or a string. The function
|
||||
* guarantees that the XML document contains a root element.
|
||||
@ -1111,7 +1113,9 @@ virXMLParseHelper(int domcode,
|
||||
const char *xmlStr,
|
||||
const char *url,
|
||||
const char *rootelement,
|
||||
xmlXPathContextPtr *ctxt)
|
||||
xmlXPathContextPtr *ctxt,
|
||||
const char *schemafile G_GNUC_UNUSED,
|
||||
bool validate G_GNUC_UNUSED)
|
||||
{
|
||||
struct virParserData private;
|
||||
g_autoptr(xmlParserCtxt) pctxt = NULL;
|
||||
|
@ -170,7 +170,9 @@ virXMLParseHelper(int domcode,
|
||||
const char *xmlStr,
|
||||
const char *url,
|
||||
const char *rootelement,
|
||||
xmlXPathContextPtr *ctxt);
|
||||
xmlXPathContextPtr *ctxt,
|
||||
const char *schemafile,
|
||||
bool validate);
|
||||
|
||||
const char *
|
||||
virXMLPickShellSafeComment(const char *str1,
|
||||
@ -185,8 +187,8 @@ virXMLPickShellSafeComment(const char *str1,
|
||||
*
|
||||
* Return the parsed document object, or NULL on failure.
|
||||
*/
|
||||
#define virXMLParse(filename, xmlStr, url) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, NULL)
|
||||
#define virXMLParse(filename, xmlStr, url, schemafile, validate) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, NULL, schemafile, validate)
|
||||
|
||||
/**
|
||||
* virXMLParseString:
|
||||
@ -198,7 +200,7 @@ virXMLPickShellSafeComment(const char *str1,
|
||||
* Return the parsed document object, or NULL on failure.
|
||||
*/
|
||||
#define virXMLParseString(xmlStr, url) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, NULL)
|
||||
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, NULL, NULL, false)
|
||||
|
||||
/**
|
||||
* virXMLParseFile:
|
||||
@ -209,7 +211,7 @@ virXMLPickShellSafeComment(const char *str1,
|
||||
* Return the parsed document object, or NULL on failure.
|
||||
*/
|
||||
#define virXMLParseFile(filename) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, NULL)
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, NULL, NULL, false)
|
||||
|
||||
/**
|
||||
* virXMLParseCtxt:
|
||||
@ -224,7 +226,7 @@ virXMLPickShellSafeComment(const char *str1,
|
||||
* Return the parsed document object, or NULL on failure.
|
||||
*/
|
||||
#define virXMLParseCtxt(filename, xmlStr, url, pctxt) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, pctxt)
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, pctxt, NULL, false)
|
||||
|
||||
/**
|
||||
* virXMLParseStringCtxt:
|
||||
@ -238,11 +240,11 @@ virXMLPickShellSafeComment(const char *str1,
|
||||
* Return the parsed document object, or NULL on failure.
|
||||
*/
|
||||
#define virXMLParseStringCtxt(xmlStr, url, pctxt) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, pctxt)
|
||||
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, pctxt, NULL, false)
|
||||
|
||||
/* virXMLParseStringCtxtRoot is same as above, except it also validates root node name */
|
||||
#define virXMLParseStringCtxtRoot(xmlStr, url, rootnode, pctxt) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, rootnode, pctxt)
|
||||
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, rootnode, pctxt, NULL, false)
|
||||
|
||||
/**
|
||||
* virXMLParseFileCtxt:
|
||||
@ -255,7 +257,7 @@ virXMLPickShellSafeComment(const char *str1,
|
||||
* Return the parsed document object, or NULL on failure.
|
||||
*/
|
||||
#define virXMLParseFileCtxt(filename, pctxt) \
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, pctxt)
|
||||
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, pctxt, NULL, false)
|
||||
|
||||
int
|
||||
virXMLSaveFile(const char *path,
|
||||
|
@ -593,7 +593,7 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath,
|
||||
|
||||
machineDescription = g_new0(virVBoxSnapshotConfMachine, 1);
|
||||
|
||||
xml = virXMLParse(filePath, NULL, NULL);
|
||||
xml = virXMLParse(filePath, NULL, NULL, NULL, false);
|
||||
if (xml == NULL) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Unable to parse the xml"));
|
||||
@ -1230,7 +1230,7 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath,
|
||||
_("filePath is null"));
|
||||
goto cleanup;
|
||||
}
|
||||
xml = virXMLParse(filePath, NULL, NULL);
|
||||
xml = virXMLParse(filePath, NULL, NULL, NULL, false);
|
||||
if (xml == NULL) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Unable to parse the xml"));
|
||||
@ -1292,7 +1292,7 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath,
|
||||
_("filePath is null"));
|
||||
goto cleanup;
|
||||
}
|
||||
xml = virXMLParse(filePath, NULL, NULL);
|
||||
xml = virXMLParse(filePath, NULL, NULL, NULL, false);
|
||||
if (xml == NULL) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Unable to parse the xml"));
|
||||
|
@ -4595,7 +4595,7 @@ prlsdkParseSnapshotTree(const char *treexml)
|
||||
if (*treexml == '\0')
|
||||
return snapshots;
|
||||
|
||||
if (!(xml = virXMLParse(NULL, treexml, _("(snapshot_tree)"))))
|
||||
if (!(xml = virXMLParse(NULL, treexml, _("(snapshot_tree)"), NULL, false)))
|
||||
goto cleanup;
|
||||
|
||||
root = xmlDocGetRootElement(xml);
|
||||
|
@ -678,7 +678,7 @@ testCompareXMLToArgv(const void *data)
|
||||
if (testCheckExclusiveFlags(info->flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!(xml = virXMLParse(info->infile, NULL, "(domain_definition)")))
|
||||
if (!(xml = virXMLParse(info->infile, NULL, "(domain_definition)", NULL, false)))
|
||||
goto cleanup;
|
||||
|
||||
root = xmlDocGetRootElement(xml);
|
||||
|
Loading…
x
Reference in New Issue
Block a user