/// <summary>
        /// Creates an instance of this class and populates its members using reflection on the specified
        /// <see cref="XliffElement"/>
        /// </summary>
        /// <param name="element">The element to reflect upon.</param>
        /// <returns>An instance of this class with information about the elements children and attributes.</returns>
        public static IElementInformation Create(XliffElement element)
        {
            ElementInformationFromReflection result;

            result = new ElementInformationFromReflection();
            result.ChildMap = Reflector.GetSchemaChildren(element.GetType());
            result.AttributeMap = Reflector.GetSchemaAttributes(element.GetType(), element as IInheritanceInfoProvider, element as IOutputResolver);

            return result;
        }
        /// <summary>
        /// Creates an instance of this class and populates its members using reflection on the specified
        /// <see cref="XliffElement"/>
        /// </summary>
        /// <param name="element">The element to reflect upon.</param>
        /// <returns>An instance of this class with information about the elements children and attributes.</returns>
        public static IElementInformation Create(XliffElement element)
        {
            ElementInformationFromReflection result;

            result              = new ElementInformationFromReflection();
            result.ChildMap     = Reflector.GetSchemaChildren(element.GetType());
            result.AttributeMap = Reflector.GetSchemaAttributes(element.GetType(), element as IInheritanceInfoProvider, element as IOutputResolver);

            return(result);
        }