in core/src/main/java/com/alibaba/smart/framework/engine/configuration/impl/DefaultXmlParserFacade.java [128:159]
public Object parseAttribute(QName attributeQName, XMLStreamReader reader, ParseContext context) {
if (null == attributeQName) {
return null;
}
QName currentNode = reader.getName();
String currentNodeNamespaceURI = currentNode.getNamespaceURI();
QName tunedAttributeQname;
String attributeNamespaceURI = attributeQName.getNamespaceURI();
String attributeLocalPart = attributeQName.getLocalPart();
if(StringUtil.isEmpty(attributeNamespaceURI)){
tunedAttributeQname=new QName(currentNodeNamespaceURI, attributeLocalPart);
}else{
tunedAttributeQname=attributeQName;
}
AttributeParser attributeParser = this.attributeParsers.get(tunedAttributeQname);
if (null == attributeParser) {
attributeParser = this.attributeParsers.get(currentNode);
}
if (null != attributeParser) {
return attributeParser.parseAttribute(attributeQName, reader, context);
} else if (StringUtil.equals(currentNodeNamespaceURI, attributeNamespaceURI)) {
return reader.getAttributeValue(attributeNamespaceURI, attributeLocalPart);
} else {
return null;
}
}