public override void VisitAttribute(AXmlAttribute attribute)
        {
            Debug.Assert(document != null);

            if (attribute.ParentElement != null)
            {
                if (attribute.ParentElement.Parent == document && attribute.LocalName == "Class" &&
                    attribute.Namespace == CompletionDataHelper.XamlNamespace)
                {
                    this.generatedClass = AddClass(attribute.Value, attribute.ParentElement);
                }
                else if (generatedClass != null && attribute.LocalName == "Name")
                {
                    string name = attribute.Value;

                    if (!string.IsNullOrEmpty(name))
                    {
                        IReturnType type     = TypeFromXmlNode(CompilationUnit, attribute.ParentElement);
                        DomRegion   position = CreateRegion(attribute.ParentElement.StartOffset, attribute.ParentElement.StartOffset + attribute.ParentElement.Name.Length);

                        ModifierEnum fieldModifier = ModifierEnum.Internal;

                        string modifierValue = (attribute.ParentElement.GetAttributeValue(CompletionDataHelper.XamlNamespace, "FieldModifier") ?? string.Empty).Trim();

                        string publicString = currentAmbience.ConvertAccessibility(ModifierEnum.Public).Trim();

                        if (projectContent.Language.NameComparer.Compare(modifierValue, publicString) == 0)
                        {
                            fieldModifier = ModifierEnum.Public;
                        }

                        generatedClass.Fields.Add(new DefaultField(type, name, fieldModifier, position, generatedClass));
                    }
                }
            }

            base.VisitAttribute(attribute);
        }