System.Xml.Serialization.XmlSchemaImporter.FindDataType C# (CSharp) Method

FindDataType() private method

private FindDataType ( XmlQualifiedName name, TypeFlags flags ) : XmlSchemaSimpleType
name System.Xml.XmlQualifiedName
flags TypeFlags
return System.Xml.Schema.XmlSchemaSimpleType
        private XmlSchemaSimpleType FindDataType(XmlQualifiedName name, TypeFlags flags)
        {
            if (name == null || name.IsEmpty)
            {
                return (XmlSchemaSimpleType)Scope.GetTypeDesc(typeof(string)).DataType;
            }
            TypeDesc typeDesc = Scope.GetTypeDesc(name.Name, name.Namespace, flags);
            if (typeDesc != null && typeDesc.DataType is XmlSchemaSimpleType)
                return (XmlSchemaSimpleType)typeDesc.DataType;
            XmlSchemaSimpleType dataType = (XmlSchemaSimpleType)Schemas.Find(name, typeof(XmlSchemaSimpleType));
            if (dataType != null)
            {
                return dataType;
            }
            if (name.Namespace == XmlSchema.Namespace)
                return (XmlSchemaSimpleType)Scope.GetTypeDesc("string", XmlSchema.Namespace, flags).DataType;
            else
            {
                if (name.Name == Soap.Array && name.Namespace == Soap.Encoding)
                {
                    throw new InvalidOperationException(SR.Format(SR.XmlInvalidEncoding, name.ToString()));
                }
                else
                {
                    throw new InvalidOperationException(SR.Format(SR.XmlMissingDataType, name.ToString()));
                }
            }
        }