private Type ParseDataType(string dt)
{
if (!IsXsdType(dt))
{
if (_udSimpleTypes != null)
{
XmlSchemaSimpleType simpleType = (XmlSchemaSimpleType)_udSimpleTypes[dt];
if (simpleType == null)
{ // it is not named simple type, it is not XSD type, it should be unsupported type like xs:token
throw ExceptionBuilder.UndefinedDatatype(dt);
}
SimpleType rootType = new SimpleType(simpleType);
while (rootType.BaseSimpleType != null)
{
rootType = rootType.BaseSimpleType;
}
return ParseDataType(rootType.BaseType);
}
}
NameType nt = FindNameType(dt);
return nt.type;
}
/* later we may need such a function