private static object TryGetElementsOrValue(IEnumerable<XElement> requestedElements)
 {
     if (requestedElements.HasPluralElements())
     {
         if (DynamicXmlExtensions.ContainsValueOnly((XElement) requestedElements.First()))
             return requestedElements.Select(e => e.Value);
         return new DynamicXmlReader(requestedElements);
     }
     if (requestedElements.HasSingleElement())
     {
         var element = requestedElements.Single();
         if (element.ContainsValueOnly())
             return element.Value;
         return new DynamicXmlReader(element, true);
     }
     return null;
 }