internal static string XmlDataTypeName(Type type)
{
if (type == typeof(char))
return "_"; // has to have SimpleType in this column.
if (type == typeof(byte[]) || type == typeof(SqlBytes))
return "base64Binary"; // has to have SimpleType in this column.
if (type == typeof(DateTime) || type == typeof(SqlDateTime))
return "dateTime";
if (type == typeof(TimeSpan))
return "duration";
if (type == typeof(decimal) || type == typeof(SqlDecimal) || type == typeof(SqlMoney))
return "decimal";
if (type == typeof(int))
return "int";
if (type == typeof(bool) || type == typeof(SqlBoolean))
return "boolean";
if (type == typeof(float) || type == typeof(SqlSingle))
return "float";
if (type == typeof(double) || type == typeof(SqlDouble))
return "double";
if (type == typeof(sbyte) || type == typeof(SqlByte))
return "byte";
if (type == typeof(byte))
return "unsignedByte";
if (type == typeof(short) || type == typeof(SqlInt16))
return "short";
if (type == typeof(int) || type == typeof(SqlInt32))
return "int";
if (type == typeof(long) || type == typeof(SqlInt64))
return "long";
if (type == typeof(ushort))
return "unsignedShort";
if (type == typeof(uint))
return "unsignedInt";
if (type == typeof(ulong))
return "unsignedLong";
if (type == typeof(System.Numerics.BigInteger))
return Keywords.XSD_ANYTYPE; //"integer";
if (type == typeof(Uri))
return "anyURI";
if (type == typeof(SqlBinary))
return "hexBinary";
if (type == typeof(string) || type == typeof(SqlGuid) || type == typeof(SqlString) || type == typeof(SqlChars))
return "string";
if (type == typeof(object) || type == typeof(SqlXml) || type == typeof(DateTimeOffset))
return Keywords.XSD_ANYTYPE;
return string.Empty;
// by default, if we dont map anything, we will map to String
// but I can not make Sql Types that will map to string be unmapped, because in schema , I will miss the second part and wont
// be able to differenciate between string snd SqlString and others that map to String
}