private bool InitOnElement() {
Debug.Assert( reader.NodeType == XmlNodeType.Element );
bool isEmpty = reader.IsEmptyElement;
// move to content or off the empty element
reader.Read();
if ( isEmpty ) {
return false;
}
// make sure we are on a content node
if ( !MoveToNextContentNode( false ) ) {
if ( reader.NodeType != XmlNodeType.EndElement ) {
throw new XmlException( Res.Xml_InvalidNodeType, reader.NodeType.ToString(), reader as IXmlLineInfo );
}
// move off end element
reader.Read();
return false;
}
state = State.InReadElementContent;
isEnd = false;
return true;
}