示例#1
0
        ResumeParsingBuffer(XMLParser *parser, ref ParseStatus parseStatus, out XMLError error)
        {
            bool      result = true;
            XMLStatus status = LibExpat.XMLResumeParser(parser);

            switch (status)
            {
            case XMLStatus.OK:
                error = XMLError.NONE;
                XMLParsingStatus pStatus;
                LibExpat.XMLGetParsingStatus(parser, out pStatus);
                if (pStatus.FinalBuffer == XMLBool.FALSE)
                {
                    result = false;
                }
                else
                {
                    parseStatus = ParseStatus.Finished;
                }
                break;

            case XMLStatus.ERROR:
                error = LibExpat.XMLGetErrorCode(parser);
                if (error == XMLError.ABORTED)
                {
                    parseStatus = ParseStatus.Aborted;
                }
                else
                {
                    parseStatus = ParseStatus.FatalError;
                }
                break;

            case XMLStatus.SUSPENDED:
                error       = XMLError.NONE;
                parseStatus = ParseStatus.Suspended;
                break;

            default:
                error = XMLError.NONE;
                break;
            }
            return(result);
        }