public override void WriteEndDocument()
{
try
{
// auto-close all elements
while (_elemTop > 0)
{
WriteEndElement();
}
State prevState = _currentState;
AdvanceState(Token.EndDocument);
if (prevState != State.AfterRootEle)
{
throw new ArgumentException(SR.Xml_NoRoot);
}
if (_rawWriter == null)
{
_writer.WriteEndDocument();
}
}
catch
{
_currentState = State.Error;
throw;
}
}