public final void loadAssetDetailsFromXml(String... xmlFilePaths) {
		XStream xstream = new XStream(new DomDriver());
		for (String xmlFilePath : xmlFilePaths) {
			String xmlContents = FileManager.getFileContents(xmlFilePath);
			// Cast the xml contents to the same as our data field
			Map<String, Map<String, String>> parsedData = (Map<String, Map<String, String>>) xstream.fromXML(xmlContents);

			// Iterate through the new data and ensure there are not duplicate
			// asset names. If there are, give an error and don't add the asset.
			// Otherwise add the asset details as expected
			for (String newAssetKey : parsedData.keySet()) {
				// If we have an asset with the same name, throw an exception
				if (data.containsKey(newAssetKey)) {
					logger.error(new IllegalArgumentException(), "Duplicate key value for assetname '",
							newAssetKey, "' asset NOT added. Original value kept");
				} else if (!parsedData.get(newAssetKey).containsKey("fileLocation")) {
					// If there was no file location specified within the asset,
					// give an exception
					logger.error(new NullPointerException(),
							"Loaded XML did not have expected fileLocation field! asset name :: ", newAssetKey);
				} else {
					// If the data has both a unique asset name and a file
					// location add it to our hashmap of data
					data.put(newAssetKey, parsedData.get(newAssetKey));
				}
			}
		}
	}