private void ProcessId(ITreeNode tagHeaderNode, ITypeElement typeElement) {
     IdTag idTag = (IdTag)tagHeaderNode.FindNextNode(IsOfType(tagHeaderNode, typeof(IdTag)));
     if (idTag != null) {
         HighlightUndefinedProperty(idTag, typeElement, "type");
     }
 }
        private void ProcessNestedCompositeElement(ITreeNode node, ITypeElement typeElement) {
            ITreeNode nestedCompositeElementNode = node.FindNextNode(IsOfType(node, typeof(NestedCompositeElementTag)));
            if (nestedCompositeElementNode == null) {
                return;
            }
            HighlightUndefinedProperty((IXmlTag)nestedCompositeElementNode, typeElement, "class");
            ITypeElement compositeType = HighlightUndefinedType((IXmlTag)nestedCompositeElementNode, "class");

            ProcessAssociationToOne(nestedCompositeElementNode, compositeType, typeof(CompositeElementTag), "class");
            ProcessProperties(nestedCompositeElementNode, compositeType);
            ProcessParent(nestedCompositeElementNode, compositeType);
            ProcessManyToOne(nestedCompositeElementNode, compositeType);
            ProcessNestedCompositeElement(nestedCompositeElementNode, compositeType);
        }
 private void ProcessParent(ITreeNode nextNode, ITypeElement componentType) {
     ParentTag parentNode = nextNode.FindNextNode(IsOfType(nextNode, typeof(ParentTag))) as ParentTag;
     if (parentNode != null) {
         Logger.LogMessage("Parent {0}", parentNode.GetText());
         IXmlAttribute nameAttribute = parentNode.GetNameAttribute();
         if ((nameAttribute != null) && (nameAttribute.UnquotedValue != null)) {
             HighlightUndefinedProperty(parentNode, componentType, "class");
         }
     }
 }