private void ReadAheadForMemberType()
{
while (_coreReader.Read())
{
switch (_coreReader.NodeType)
{
case XmlNodeType.Element:
Debug.Assert(false); //Should not happen as the caching reader does not cache elements in simple content
break;
case XmlNodeType.Text:
case XmlNodeType.CDATA:
_validator.ValidateText(GetStringValue);
break;
case XmlNodeType.Whitespace:
case XmlNodeType.SignificantWhitespace:
_validator.ValidateWhitespace(GetStringValue);
break;
case XmlNodeType.Comment:
case XmlNodeType.ProcessingInstruction:
break;
case XmlNodeType.EndElement:
_atomicValue = _validator.ValidateEndElement(_xmlSchemaInfo); //?? pop namespaceManager scope
_originalAtomicValueString = GetOriginalAtomicValueStringOfElement();
if (_atomicValue == null)
{ //Invalid marker
_atomicValue = this;
}
else if (_xmlSchemaInfo.IsDefault)
{ //The atomicValue returned is a default value
_cachingReader.SwitchTextNodeAndEndElement(_xmlSchemaInfo.XmlType.ValueConverter.ToString(_atomicValue), _originalAtomicValueString);
}
goto breakWhile;
}
continue;
breakWhile:
break;
}
}