String lName, ns = null; int index = -1; int code;   if ((index = name.lastIndexOf(":"))> -1) { ns = name.substring(0, index); }    int lNameStartIdx = index+1;    if (name.charAt(lNameStartIdx) == '@') { code = DTM.ATTRIBUTE_NODE; lNameStartIdx++; } else { code = DTM.ELEMENT_NODE; }   lName = (lNameStartIdx == 0) ? name : name.substring(lNameStartIdx);  return this.getExpandedTypeID(ns, lName, code);
return getGeneralizedType(name, true);
    public int getGeneralizedType(final String name) {        String lName, ns = null;        int index = -1;        int code;        // Is there a prefix?        if ((index = name.lastIndexOf(":"))> -1) {            ns = name.substring(0, index);        }        // Local part of name is after colon.  lastIndexOf returns -1 if        // there is no colon, so lNameStartIdx will be zero in that case.        int lNameStartIdx = index+1;        // Distinguish attribute and element names.  Attribute has @ before        // local part of name.        if (name.charAt(lNameStartIdx) == '@') {            code = DTM.ATTRIBUTE_NODE;            lNameStartIdx++;        }        else {            code = DTM.ELEMENT_NODE;        }        // Extract local name        lName = (lNameStartIdx == 0) ? name : name.substring(lNameStartIdx);        return this.getExpandedTypeID(ns, lName, code);    }