/// <summary>
        /// Checks if XML document has one root element
        /// </summary>
        /// <param name="document"></param>
        private void CheckDocumentElement(DOM.Document document)
        {
            int rootElementCount = 0;

            foreach (var entity in document.Entities)
            {
                if (entity is DOM.Element)
                {
                    rootElementCount++;
                }

                var scope = entity as Scope;
                if (scope != null)
                {
                    rootElementCount += CalcNumOfRootElements(scope);
                }

                if (entity is DOM.Alias)
                {
                    rootElementCount += CalcNumOfRootElements((Alias)entity);
                }

                if (rootElementCount > 1)
                {
                    break;
                }
            }
            if (rootElementCount == 0)
            {
                Context.AddError(CompilerErrorFactory.DocumentMustHaveOneRootElement((Document)document,
                                                                                     document.Module.FileName, " at least"));
            }
            else if (rootElementCount > 1)
            {
                Context.AddError(CompilerErrorFactory.DocumentMustHaveOneRootElement((Document)document,
                                                                                     document.Module.FileName, " only"));
            }
        }