{\r
DOMAttr* attribute = e->getAttributeNodeNS(XMLConstants::XSI_NS, type);\r
if (attribute) {\r
- int i;\r
const XMLCh* attributeValue = attribute->getTextContent();\r
- if (attributeValue && (i=XMLString::indexOf(attributeValue,chColon))>0) {\r
- XMLCh* prefix=new XMLCh[i+1];\r
- XMLString::subString(prefix,attributeValue,0,i);\r
- prefix[i]=chNull;\r
- QName* ret=new QName(e->lookupNamespaceURI(prefix), attributeValue + i + 1, prefix);\r
- delete[] prefix;\r
- return ret;\r
+ if (attributeValue && *attributeValue) {\r
+ int i;\r
+ if ((i=XMLString::indexOf(attributeValue,chColon))>0) {\r
+ XMLCh* prefix=new XMLCh[i+1];\r
+ XMLString::subString(prefix,attributeValue,0,i);\r
+ prefix[i]=chNull;\r
+ QName* ret=new QName(e->lookupNamespaceURI(prefix), attributeValue + i + 1, prefix);\r
+ delete[] prefix;\r
+ return ret;\r
+ }\r
+ else {\r
+ return new QName(e->lookupNamespaceURI(&chNull), attributeValue);\r
+ }\r
}\r
}\r
\r