function fromXML($xmlElement)
    {

        if (isset($xmlElement->id)) $this->id = $xmlElement->id;
        $this->email = (string)$xmlElement->email;
        if (isset($xmlElement->permission)) $this->permission = Permission::getPermission((string)$xmlElement->permission);
        if (isset($xmlElement->external_id)) (string)$this->external_id = $xmlElement->external_id;
        if (isset($xmlElement->anonymous)) (string)$this->anonymous = $xmlElement->anonymous;
        if (isset($xmlElement['anonymous'])) $this->anonymous = $xmlElement['anonymous'];

        if (isset($xmlElement->created)) $this->created = $xmlElement->created;
        if (isset($xmlElement->updated)) $this->updated = $xmlElement->updated;

        if (isset($xmlElement->standard_fields)) {
            $this->standard_fields = array();
            foreach ($xmlElement->standard_fields->children() as $field) {
                $this->standard_fields[trim($field->name)] = (string)$field->value; // The trim is required to make a safer string from the object
            }
        }

        if (isset($xmlElement->custom_fields)) {
            foreach ($xmlElement->custom_fields->children() as $field) {
                $this->custom_fields[trim($field->name)] = (string)$field->value; // The trim is required to make a safer string from the object
            }
        }
    }