void (XmlTag tag, String tagName, XmlTag context, XmlTag ref) { if (ATTRIBUTE_TAG_NAME.equals(tagName)) { String name = tag.getAttributeValue(NAME_ATTR_NAME); if (name == null) return; String use = null; if (ATTRIBUTE_TAG_NAME.equals(context.getLocalName())) { // from ref use = context.getAttributeValue("use"); } if (use == null) use = tag.getAttributeValue("use"); if (PROHIBITED_ATTR_VALUE.equals(use)) { removeAttributeDescriptor(result, name, null); } else { XmlAttributeDescriptorImpl descriptor = new XmlAttributeDescriptorImpl(tag); descriptor.myUse = use; if (ref != null) { descriptor.myReferenceName = ref.getAttributeValue(REF_ATTR_NAME); } addAttributeDescriptor(result, descriptor); } } }