org_eclipse_lemminx_extensions_xsl_XSLCompletionExtensionsTest_java
org.apache.xerces.impl.xs.traversers.XSDAttributeTraverser
XSAttributeDecl traverseNamedAttr(Element element, Object[] objectArray, XSDocumentInfo xSDocumentInfo, SchemaGrammar schemaGrammar, boolean bl, XSComplexTypeDecl xSComplexTypeDecl) {
        Object object;
        Object object2;
        String string = (String)objectArray[XSAttributeChecker.ATTIDX_DEFAULT];
        String string2 = (String)objectArray[XSAttributeChecker.ATTIDX_FIXED];
        XInt xInt = (XInt)objectArray[XSAttributeChecker.ATTIDX_FORM];
        String string3 = (String)objectArray[XSAttributeChecker.ATTIDX_NAME];
        QName qName = (QName)objectArray[XSAttributeChecker.ATTIDX_TYPE];
        XSAttributeDecl xSAttributeDecl = null;
        xSAttributeDecl = this.fSchemaHandler.fDeclPool != null ? this.fSchemaHandler.fDeclPool.getAttributeDecl() : new XSAttributeDecl();
        if (string3 != null) {
            string3 = this.fSymbolTable.addSymbol(string3);
        }
        String string4 = null;
        XSComplexTypeDecl xSComplexTypeDecl2 = null;
        short s = 0;
        if (bl) {
            string4 = xSDocumentInfo.fTargetNamespace;
            s = 1;
        } else {
            if (xSComplexTypeDecl != null) {
                xSComplexTypeDecl2 = xSComplexTypeDecl;
                s = 2;
            }
            if (xInt != null) {
                if (xInt.intValue() == 1) {
                    string4 = xSDocumentInfo.fTargetNamespace;
                }
            } else if (xSDocumentInfo.fAreLocalAttributesQualified) {
                string4 = xSDocumentInfo.fTargetNamespace;
            }
        }
        ValidatedInfo validatedInfo = null;
        short s2 = 0;
        if (bl) {
            if (string2 != null) {
                validatedInfo = new ValidatedInfo();
                validatedInfo.normalizedValue = string2;
                s2 = 2;
            } else if (string != null) {
                validatedInfo = new ValidatedInfo();
                validatedInfo.normalizedValue = string;
                s2 = 1;
            }
        }
        Element element2 = DOMUtil.getFirstChildElement(element);
        XSAnnotationImpl xSAnnotationImpl = null;
        if (element2 != null && DOMUtil.getLocalName(element2).equals(SchemaSymbols.ELT_ANNOTATION)) {
            xSAnnotationImpl = this.traverseAnnotationDecl(element2, objectArray, false, xSDocumentInfo);
            element2 = DOMUtil.getNextSiblingElement(element2);
        } else {
            object2 = DOMUtil.getSyntheticAnnotation(element);
            if (object2 != null) {
                xSAnnotationImpl = this.traverseSyntheticAnnotation(element, (String)object2, objectArray, false, xSDocumentInfo);
            }
        }
        object2 = null;
        boolean bl2 = false;
        if (element2 != null && ((String)(object = DOMUtil.getLocalName(element2))).equals(SchemaSymbols.ELT_SIMPLETYPE)) {
            object2 = this.fSchemaHandler.fSimpleTypeTraverser.traverseLocal(element2, xSDocumentInfo, schemaGrammar);
            bl2 = true;
            element2 = DOMUtil.getNextSiblingElement(element2);
        }
        if (object2 == null && qName != null) {
            object = (XSTypeDefinition)this.fSchemaHandler.getGlobalDecl(xSDocumentInfo, 7, qName, element);
            if (object != null && object.getTypeCategory() == 16) {
                object2 = (XSSimpleType)object;
            } else {
                this.reportSchemaError("src-resolve", new Object[]{qName.rawname, "simpleType definition"}, element);
                if (object == null) {
                    xSAttributeDecl.fUnresolvedTypeName = qName;
                }
            }
        }
        if (object2 == null) {
            object2 = SchemaGrammar.fAnySimpleType;
        }
        if (xSAnnotationImpl != null) {
            object = new XSObjectListImpl();
            ((XSObjectListImpl)object).addXSObject(xSAnnotationImpl);
        } else {
            object = XSObjectListImpl.EMPTY_LIST;
        }
        xSAttributeDecl.setValues(string3, string4, (XSSimpleType)object2, s2, s, validatedInfo, xSComplexTypeDecl2, (XSObjectList)object);
        if (string3 == null) {
            if (bl) {
                this.reportSchemaError("s4s-att-must-appear", new Object[]{SchemaSymbols.ELT_ATTRIBUTE, SchemaSymbols.ATT_NAME}, element);
            } else {
                this.reportSchemaError("src-attribute.3.1", null, element);
            }
            string3 = "(no name)";
        }
        if (element2 != null) {
            this.reportSchemaError("s4s-elt-must-match.1", new Object[]{string3, "(annotation?, (simpleType?))", DOMUtil.getLocalName(element2)}, element2);
        }
        if (string != null && string2 != null) {
            this.reportSchemaError("src-attribute.1", new Object[]{string3}, element);
        }
        if (bl2 && qName != null) {
            this.reportSchemaError("src-attribute.4", new Object[]{string3}, element);
        }
        this.checkNotationType(string3, (XSTypeDefinition)object2, element);
        if (validatedInfo != null) {
            this.fValidationState.setNamespaceSupport(xSDocumentInfo.fNamespaceSupport);
            try {
                this.checkDefaultValid(xSAttributeDecl);
            }
            catch (InvalidDatatypeValueException invalidDatatypeValueException) {
                this.reportSchemaError(invalidDatatypeValueException.getKey(), invalidDatatypeValueException.getArgs(), element);
                this.reportSchemaError("a-props-correct.2", new Object[]{string3, validatedInfo.normalizedValue}, element);
                validatedInfo = null;
                s2 = 0;
                xSAttributeDecl.setValues(string3, string4, (XSSimpleType)object2, s2, s, validatedInfo, xSComplexTypeDecl2, (XSObjectList)object);
            }
        }
        if (validatedInfo != null && object2.isIDType()) {
            this.reportSchemaError("a-props-correct.3", new Object[]{string3}, element);
            validatedInfo = null;
            s2 = 0;
            xSAttributeDecl.setValues(string3, string4, (XSSimpleType)object2, s2, s, validatedInfo, xSComplexTypeDecl2, (XSObjectList)object);
        }
        if (string3 != null && string3.equals(XMLSymbols.PREFIX_XMLNS)) {
            this.reportSchemaError("no-xmlns", null, element);
            return null;
        }
        if (string4 != null && string4.equals(SchemaSymbols.URI_XSI)) {
            this.reportSchemaError("no-xsi", new Object[]{SchemaSymbols.URI_XSI}, element);
            return null;
        }
        if (string3.equals("(no name)")) {
            return null;
        }
        if (bl) {
            String string5;
            XSAttributeDecl xSAttributeDecl2;
            if (schemaGrammar.getGlobalAttributeDecl(string3) == null) {
                schemaGrammar.addGlobalAttributeDecl(xSAttributeDecl);
            }
            if ((xSAttributeDecl2 = schemaGrammar.getGlobalAttributeDecl(string3, string5 = this.fSchemaHandler.schemaDocument2SystemId(xSDocumentInfo))) == null) {
                schemaGrammar.addGlobalAttributeDecl(xSAttributeDecl, string5);
            }
            if (this.fSchemaHandler.fTolerateDuplicates) {
                if (xSAttributeDecl2 != null) {
                    xSAttributeDecl = xSAttributeDecl2;
                }
                this.fSchemaHandler.addGlobalAttributeDecl(xSAttributeDecl);
            }
        }
        return xSAttributeDecl;
    }
 -> java.lang.String.hashCode(): int -> java.lang.String.intern(): java.lang.String -> java.lang.String.length(): int -> java.lang.String.getChars(int,int,char[],int): void -> java.util.Vector.contains(java.lang.Object): boolean -> java.util.Hashtable.get(java.lang.Object): java.lang.Object -> java.lang.Object.hashCode(): int -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean
 [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.hashCode(): int [EXIT] [CALL] [CALL] -> java.lang.String.intern(): java.lang.String -> java.lang.String.length(): int -> java.lang.String.getChars(int,int,char[],int): void [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] -> java.util.Vector.contains(java.lang.Object): boolean [EXIT] [CALL] -> java.util.Hashtable.get(java.lang.Object): java.lang.Object [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.lang.Object.hashCode(): int [EXIT] [CALL] -> java.lang.Object.equals(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean [EXIT]