internal static InternalPrimitiveTypeE ToCode(String value)
{
InternalST.Soap("Converter", "ToCode String Entry ",value);
if (value == null)
throw new ArgumentNullException("serParser", String.Format(CultureInfo.CurrentCulture, SoapUtil.GetResourceString("ArgumentNull_WithParamName"), value));
String lxsdType = value.ToLower(CultureInfo.InvariantCulture);
Char firstChar = lxsdType[0];
InternalPrimitiveTypeE code = InternalPrimitiveTypeE.Invalid;
switch (firstChar)
{
case 'a':
if (lxsdType == "anyuri")
code = InternalPrimitiveTypeE.AnyUri;
break;
case 'b':
if (lxsdType == "boolean")
code = InternalPrimitiveTypeE.Boolean;
else if (lxsdType == "byte")
code = InternalPrimitiveTypeE.SByte;
else if (lxsdType == "base64binary")
code = InternalPrimitiveTypeE.Base64Binary;
else if (lxsdType == "base64")
code = InternalPrimitiveTypeE.Base64Binary;
break;
case 'c':
if ((lxsdType == "char") || (lxsdType == "character")) // Not xsd types
code = InternalPrimitiveTypeE.Char;
break;
case 'd':
if (lxsdType == "double")
code = InternalPrimitiveTypeE.Double;
if (lxsdType == "datetime")
code = InternalPrimitiveTypeE.DateTime;
else if (lxsdType == "duration")
code = InternalPrimitiveTypeE.TimeSpan;
else if (lxsdType == "date")
code = InternalPrimitiveTypeE.Date;
else if (lxsdType == "decimal")
code = InternalPrimitiveTypeE.Decimal;
break;
case 'e':
if (lxsdType == "entities")
code = InternalPrimitiveTypeE.Entities;
else if (lxsdType == "entity")
code = InternalPrimitiveTypeE.Entity;
break;
case 'f':
if (lxsdType == "float")
code = InternalPrimitiveTypeE.Single;
break;
case 'g':
if (lxsdType == "gyearmonth")
code = InternalPrimitiveTypeE.YearMonth;
else if (lxsdType == "gyear")
code = InternalPrimitiveTypeE.Year;
else if (lxsdType == "gmonthday")
code = InternalPrimitiveTypeE.MonthDay;
else if (lxsdType == "gday")
code = InternalPrimitiveTypeE.Day;
else if (lxsdType == "gmonth")
code = InternalPrimitiveTypeE.Month;
break;
case 'h':
if (lxsdType == "hexbinary")
code = InternalPrimitiveTypeE.HexBinary;
break;
case 'i':
if (lxsdType == "int")
code = InternalPrimitiveTypeE.Int32;
if (lxsdType == "integer")
code = InternalPrimitiveTypeE.Integer;
else if (lxsdType == "idrefs")
code = InternalPrimitiveTypeE.Idrefs;
else if (lxsdType == "id")
code = InternalPrimitiveTypeE.Id;
else if (lxsdType == "idref")
code = InternalPrimitiveTypeE.Idref;
break;
case 'l':
if (lxsdType == "long")
code = InternalPrimitiveTypeE.Int64;
else if (lxsdType == "language")
code = InternalPrimitiveTypeE.Language;
break;
case 'n':
if (lxsdType == "number") //No longer used
code = InternalPrimitiveTypeE.Decimal;
else if (lxsdType == "normalizedstring")
code = InternalPrimitiveTypeE.NormalizedString;
else if (lxsdType == "nonpositiveinteger")
code = InternalPrimitiveTypeE.NonPositiveInteger;
else if (lxsdType == "negativeinteger")
code = InternalPrimitiveTypeE.NegativeInteger;
else if (lxsdType == "nonnegativeinteger")
code = InternalPrimitiveTypeE.NonNegativeInteger;
else if (lxsdType == "notation")
code = InternalPrimitiveTypeE.Notation;
else if (lxsdType == "nmtoken")
code = InternalPrimitiveTypeE.Nmtoken;
else if (lxsdType == "nmtokens")
code = InternalPrimitiveTypeE.Nmtokens;
else if (lxsdType == "name")
code = InternalPrimitiveTypeE.Name;
else if (lxsdType == "ncname")
code = InternalPrimitiveTypeE.NcName;
break;
case 'p':
if (lxsdType == "positiveinteger")
code = InternalPrimitiveTypeE.PositiveInteger;
break;
case 'q':
if (lxsdType == "qname")
code = InternalPrimitiveTypeE.QName;
break;
case 's':
if (lxsdType == "short")
code = InternalPrimitiveTypeE.Int16;
else if (lxsdType == "system.byte") // used during serialization
code = InternalPrimitiveTypeE.Byte;
else if (lxsdType == "system.sbyte") // used during serialization
code = InternalPrimitiveTypeE.SByte;
else if (lxsdType == "system") //used during serialization
code = ToCode(value.Substring(7));
else if (lxsdType == "system.runtime.remoting.metadata") //used during serialization
code = ToCode(value.Substring(33));
break;
case 't':
if (lxsdType == "time")
code = InternalPrimitiveTypeE.Time;
else if (lxsdType == "token")
code = InternalPrimitiveTypeE.Token;
else if (lxsdType == "timeinstant")
code = InternalPrimitiveTypeE.DateTime;
else if (lxsdType == "timeduration")
code = InternalPrimitiveTypeE.TimeSpan;
break;
case 'u':
if (lxsdType == "unsignedlong")
code = InternalPrimitiveTypeE.UInt64;
else if (lxsdType == "unsignedint")
code = InternalPrimitiveTypeE.UInt32;
else if (lxsdType == "unsignedshort")
code = InternalPrimitiveTypeE.UInt16;
else if (lxsdType == "unsignedbyte")
code = InternalPrimitiveTypeE.Byte;
break;
default:
code = InternalPrimitiveTypeE.Invalid;
break;
}
InternalST.Soap("Converter", "ToCode Exit ", ((Enum)code).ToString());
return code;
}