//
        // Internal methods for validators, DOM, XPathDocument etc.
        //
        private void ProcessCoreReaderEvent()
        {
            switch (_coreReader.NodeType)
            {
            case XmlNodeType.Whitespace:
                if (_coreReader.Depth > 0 || _coreReaderImpl.FragmentType != XmlNodeType.Document)
                {
                    if (_validator.PreserveWhitespace)
                    {
                        _coreReaderImpl.ChangeCurrentNodeType(XmlNodeType.SignificantWhitespace);
                    }
                }
                goto default;

            case XmlNodeType.DocumentType:
                ValidateDtd();
                break;

            case XmlNodeType.EntityReference:
                _parsingFunction = ParsingFunction.ResolveEntityInternally;
                goto default;

            default:
                _coreReaderImpl.InternalSchemaType = null;
                _coreReaderImpl.InternalTypedValue = null;
                _validator.Validate();
                break;
            }
        }