private function _propfind_startElement($parser, $name, $attrs) {
        // lower XML Names... maybe break a RFC, don't know ...
        $parserid = (int) $parser;

        $propname = strtolower($name);
        if (!empty($this->_xmltree[$parserid])) {
            $this->_xmltree[$parserid] .= $propname . '_';
        } else {
            $this->_xmltree[$parserid] = $propname . '_';
        }

        // translate xml tree to a flat array ...
        switch($this->_xmltree[$parserid]) {
        case 'dav::multistatus_dav::response_':
            // new element in mu
            $this->_ls_ref =& $this->_ls[$parserid][];
            break;
        case 'dav::multistatus_dav::response_dav::href_':
            $this->_ls_ref_cdata = &$this->_ls_ref['href'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::creationdate_':
            $this->_ls_ref_cdata = &$this->_ls_ref['creationdate'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::getlastmodified_':
            $this->_ls_ref_cdata = &$this->_ls_ref['lastmodified'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::getcontenttype_':
            $this->_ls_ref_cdata = &$this->_ls_ref['getcontenttype'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::getcontentlength_':
            $this->_ls_ref_cdata = &$this->_ls_ref['getcontentlength'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::lockdiscovery_dav::activelock_dav::depth_':
            $this->_ls_ref_cdata = &$this->_ls_ref['activelock_depth'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::lockdiscovery_dav::activelock_dav::owner_dav::href_':
            $this->_ls_ref_cdata = &$this->_ls_ref['activelock_owner'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::lockdiscovery_dav::activelock_dav::owner_':
            $this->_ls_ref_cdata = &$this->_ls_ref['activelock_owner'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::lockdiscovery_dav::activelock_dav::timeout_':
            $this->_ls_ref_cdata = &$this->_ls_ref['activelock_timeout'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::lockdiscovery_dav::activelock_dav::locktoken_dav::href_':
            $this->_ls_ref_cdata = &$this->_ls_ref['activelock_token'];
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::lockdiscovery_dav::activelock_dav::locktype_dav::write_':
            $this->_ls_ref_cdata = &$this->_ls_ref['activelock_type'];
            $this->_ls_ref_cdata = 'write';
            $this->_ls_ref_cdata = &$this->_null;
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::prop_dav::resourcetype_dav::collection_':
            $this->_ls_ref_cdata = &$this->_ls_ref['resourcetype'];
            $this->_ls_ref_cdata = 'collection';
            $this->_ls_ref_cdata = &$this->_null;
            break;
        case 'dav::multistatus_dav::response_dav::propstat_dav::status_':
            $this->_ls_ref_cdata = &$this->_ls_ref['status'];
            break;

        default:
            // handle unknown xml elements...
            $this->_ls_ref_cdata = &$this->_ls_ref[$this->_xmltree[$parserid]];
        }
    }