private TypeDesc GetDataTypeSource(XmlSchemaSimpleType dataType, TypeFlags flags)
{
TypeDesc typeDesc = null;
if (dataType.Name != null && dataType.Name.Length != 0)
{
typeDesc = Scope.GetTypeDesc(dataType);
if (typeDesc != null) return typeDesc;
}
XmlQualifiedName qname = BaseTypeName(dataType);
AddReference(qname, TypesInUse, SR.XmlCircularTypeReference);
typeDesc = GetDataTypeSource(FindDataType(qname, flags), flags);
if (qname.Namespace != XmlSchema.Namespace)
RemoveReference(qname, TypesInUse);
return typeDesc;
}