/** * @internal */ static function extractWorkspaceFromNode($xmlnode) { // Assumes only one workspace for now // Load up the workspace object with arrays of // links // URI Templates // Collections // Capabilities // General Repository Information $retval = new stdClass(); $retval->links = CMISRepositoryWrapper::getLinksArray($xmlnode); $retval->uritemplates = array(); $retval->collections = array(); $retval->capabilities = array(); $retval->repositoryInfo = array(); $retval->permissions = array(); $retval->permissionsMapping = array(); $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmisra:uritemplate"); foreach ($result as $node) { $retval->uritemplates[$node->getElementsByTagName("type")->item(0)->nodeValue] = $node->getElementsByTagName("template")->item(0)->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//app:collection"); foreach ($result as $node) { $retval->collections[$node->getElementsByTagName("collectionType")->item(0)->nodeValue] = $node->attributes->getNamedItem("href")->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmis:capabilities/*"); foreach ($result as $node) { $retval->capabilities[$node->nodeName] = $node->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmisra:repositoryInfo/*[name()!='cmis:capabilities' and name()!='cmis:aclCapability']"); foreach ($result as $node) { $retval->repositoryInfo[$node->nodeName] = $node->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmis:aclCapability/cmis:permissions"); foreach ($result as $node) { $retval->permissions[$node->getElementsByTagName("permission")->item(0)->nodeValue] = $node->getElementsByTagName("description")->item(0)->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmis:aclCapability/cmis:mapping"); foreach ($result as $node) { $key = $node->getElementsByTagName("key")->item(0)->nodeValue; $values = array(); foreach ($node->getElementsByTagName("permission") as $value) { array_push($values, $value->nodeValue); } $retval->permissionsMapping[$key] = $values; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmis:aclCapability/*[name()!='cmis:permissions' and name()!='cmis:mapping']"); foreach ($result as $node) { $retval->repositoryInfo[$node->nodeName] = $node->nodeValue; } return $retval; }
static function extractWorkspaceFromNode($xmlnode) { // Assumes only one workspace for now // Load up the workspace object with arrays of // links // URI Templates // Collections // Capabilities // General Repository Information $retval = new stdClass(); $retval->links = CMISRepositoryWrapper::getLinksArray($xmlnode); $retval->uritemplates = array(); $retval->collections = array(); $retval->capabilities = array(); $retval->repositoryInfo = array(); $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmisra:uritemplate"); foreach ($result as $node) { $retval->uritemplates[$node->getElementsByTagName("type")->item(0)->nodeValue] = $node->getElementsByTagName("template")->item(0)->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//app:collection"); foreach ($result as $node) { $retval->collections[$node->getElementsByTagName("collectionType")->item(0)->nodeValue] = $node->attributes->getNamedItem("href")->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmis:capabilities/*"); foreach ($result as $node) { $retval->capabilities[$node->nodeName] = $node->nodeValue; } $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//cmisra:repositoryInfo/*"); foreach ($result as $node) { if ($node->nodeName != "cmis:capabilities") { $retval->repositoryInfo[$node->nodeName] = $node->nodeValue; } } return $retval; }