コード例 #1
0
 /**
  * @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;
 }
コード例 #2
0
 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;
 }