void ProcessEndElement ()
{
popScope = true;
elementStack.Pop ();
// If no schema specification, then skip validation.
if (currentAutomata == null)
return;
// EndElementDeriv
DTDElementDeclaration elem =
DTD.ElementDecls [reader.Name];
if (elem == null) {
HandleError (String.Format ("Element {0} is not declared.", reader.Name),
XmlSeverityType.Error);
}
previousAutomata = currentAutomata;
// Don't let currentAutomata
DTDAutomata tmpAutomata = currentAutomata.TryEndElement ();
if (tmpAutomata == DTD.Invalid) {
HandleError (String.Format ("Invalid end element found: {0}", reader.Name),
XmlSeverityType.Error);
currentAutomata = previousAutomata;
}
currentAutomata = automataStack.Pop () as DTDAutomata;
}