public override void ElementEnd(string element)
 {
     // chained handler gets first crack at this element
     if (ChainedHandler != null)
     {
         ChainedHandler.ElementEnd(element);
         // clean up if completed
         if (ChainedHandler.Completed())
         {
             CleanupChainedHandler();
         }
     }
     else
     {
         ElementEndLocal(element);
     }
 }
 public override void ElementStart(string element, XMLAttributes attributes)
 {
     // chained handler gets first crack at this element
     if (ChainedHandler != null)
     {
         ChainedHandler.ElementStart(element, attributes);
         // clean up if completed
         if (ChainedHandler.Completed())
         {
             CleanupChainedHandler();
         }
     }
     else
     {
         ElementStartLocal(element, attributes);
     }
 }