protected virtual XObject VisitContainer([NotNull] XContainer container) { switch (container) { case XElement e: return(VisitElement(e)); case XDocument d: return(VisitDocument(d)); default: throw new VisitorException(container.GetType()); } }