function validate(\PEAR2\Pyrus\PackageInterface $package, array $file) { $parser = new \PEAR2\Pyrus\XMLParser(); $schemapath = \PEAR2\Pyrus\Main::getDataPath(); if (!file_exists(\PEAR2\Pyrus\Main::getDataPath() . '/customcommand-2.0.xsd')) { $schemapath = realpath(__DIR__ . '/../../../../../data'); } $taskschema = $schemapath . '/customcommand-2.0.xsd'; try { $taskinfo = $parser->parse($package->getFilePath($file['attribs']['name']), $taskschema); } catch (\Exception $e) { throw new \PEAR2\Pyrus\Installer\Role\Exception('Invalid custom command definition file,' . ' file does not conform to the schema', $e); } }