public function readUntilStopped()
    {
        while ($this->xmlReader->read()) {
            $nodeType = $this->xmlReader->nodeType;
            $nodeNamePossiblyWithPrefix = $this->xmlReader->name;
            $nodeNameWithoutPrefix = $this->xmlReader->localName;

            $callbackData = $this->getRegisteredCallbackData($nodeNamePossiblyWithPrefix, $nodeNameWithoutPrefix, $nodeType);

            if ($callbackData !== null) {
                $callbackResponse = $this->invokeCallback($callbackData, [$this->xmlReader]);

                if ($callbackResponse === self::PROCESSING_STOP) {
                    // stop reading
                    break;
                }
            }
        }
    }