public override void Skip()
{
//Skip on caching reader should move to the end of the subtree, past all cached events
switch (_cachedNode.NodeType)
{
case XmlNodeType.Element:
if (_coreReader.NodeType != XmlNodeType.EndElement && !_readAhead)
{ //will be true for IsDefault cases where we peek only one node ahead
int startDepth = _coreReader.Depth - 1;
while (_coreReader.Read() && _coreReader.Depth > startDepth)
;
}
_coreReader.Read();
_cacheState = CachingReaderState.ReaderClosed;
_cacheHandler(this);
break;
case XmlNodeType.Attribute:
MoveToElement();
goto case XmlNodeType.Element;
default:
Debug.Assert(_cacheState == CachingReaderState.Replay);
Read();
break;
}
}