We need you! We're working hard on the next version of Developer Fusion -
Let us know what you think we should be up to!
- namespace System.Runtime.Serialization.Formatters.Soap
- {
- using System.Threading;
- using System.Runtime.Remoting;
- using System.Runtime.Remoting.Metadata;
- using System.Runtime.Remoting.Metadata.W3cXsd2001;
- using System.Runtime.Serialization;
- using System;
- using System.Reflection;
- using System.Globalization;
- using System.Text;
- using System.Security.Permissions;
-
- internal sealed class Converter
- {
- private Converter()
- {
- }
-
-
- private static int primitiveTypeEnumLength = 46;
-
-
-
-
-
- static internal InternalPrimitiveTypeE SoapToCode(Type type)
- {
- return ToCode(type);
- }
-
- static internal InternalPrimitiveTypeE ToCode(Type type)
- {
- InternalST.Soap("Converter", "ToCode Type Entry ", type, " IsEnum " + type.IsEnum);
- InternalPrimitiveTypeE code = InternalPrimitiveTypeE.Invalid;
- if (type.IsEnum)
- return code = InternalPrimitiveTypeE.Invalid;
-
- TypeCode typeCode = Type.GetTypeCode(type);
-
- if (typeCode == TypeCode.Object) {
- if (typeofISoapXsd.IsAssignableFrom(type)) {
- if (type == typeofSoapTime)
- code = InternalPrimitiveTypeE.Time;
- else if (type == typeofSoapDate)
- code = InternalPrimitiveTypeE.Date;
- else if (type == typeofSoapYearMonth)
- code = InternalPrimitiveTypeE.YearMonth;
- else if (type == typeofSoapYear)
- code = InternalPrimitiveTypeE.Year;
- else if (type == typeofSoapMonthDay)
- code = InternalPrimitiveTypeE.MonthDay;
- else if (type == typeofSoapDay)
- code = InternalPrimitiveTypeE.Day;
- else if (type == typeofSoapMonth)
- code = InternalPrimitiveTypeE.Month;
- else if (type == typeofSoapHexBinary)
- code = InternalPrimitiveTypeE.HexBinary;
- else if (type == typeofSoapBase64Binary)
- code = InternalPrimitiveTypeE.Base64Binary;
- else if (type == typeofSoapInteger)
- code = InternalPrimitiveTypeE.Integer;
- else if (type == typeofSoapPositiveInteger)
- code = InternalPrimitiveTypeE.PositiveInteger;
- else if (type == typeofSoapNonPositiveInteger)
- code = InternalPrimitiveTypeE.NonPositiveInteger;
- else if (type == typeofSoapNonNegativeInteger)
- code = InternalPrimitiveTypeE.NonNegativeInteger;
- else if (type == typeofSoapNegativeInteger)
- code = InternalPrimitiveTypeE.NegativeInteger;
- else if (type == typeofSoapAnyUri)
- code = InternalPrimitiveTypeE.AnyUri;
- else if (type == typeofSoapQName)
- code = InternalPrimitiveTypeE.QName;
- else if (type == typeofSoapNotation)
- code = InternalPrimitiveTypeE.Notation;
- else if (type == typeofSoapNormalizedString)
- code = InternalPrimitiveTypeE.NormalizedString;
- else if (type == typeofSoapToken)
- code = InternalPrimitiveTypeE.Token;
- else if (type == typeofSoapLanguage)
- code = InternalPrimitiveTypeE.Language;
- else if (type == typeofSoapName)
- code = InternalPrimitiveTypeE.Name;
- else if (type == typeofSoapIdrefs)
- code = InternalPrimitiveTypeE.Idrefs;
- else if (type == typeofSoapEntities)
- code = InternalPrimitiveTypeE.Entities;
- else if (type == typeofSoapNmtoken)
- code = InternalPrimitiveTypeE.Nmtoken;
- else if (type == typeofSoapNmtokens)
- code = InternalPrimitiveTypeE.Nmtokens;
- else if (type == typeofSoapNcName)
- code = InternalPrimitiveTypeE.NcName;
- else if (type == typeofSoapId)
- code = InternalPrimitiveTypeE.Id;
- else if (type == typeofSoapIdref)
- code = InternalPrimitiveTypeE.Idref;
- else if (type == typeofSoapEntity)
- code = InternalPrimitiveTypeE.Entity;
- }
- else {
- if (type == typeofTimeSpan)
- code = InternalPrimitiveTypeE.TimeSpan;
- else
- code = InternalPrimitiveTypeE.Invalid;
- }
- }
- else
- code = ToPrimitiveTypeEnum(typeCode);
-
- InternalST.Soap("Converter", "ToCode Exit ", ((Enum)code).ToString());
- return code;
- }
-
-
-
-
-
- static internal 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"))
-
- 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")
- 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")
- code = InternalPrimitiveTypeE.Byte;
- else if (lxsdType == "system.sbyte")
- code = InternalPrimitiveTypeE.SByte;
- else if (lxsdType == "system")
- code = ToCode(value.Substring(7));
- else if (lxsdType == "system.runtime.remoting.metadata")
-
-
-
-
- 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;
- }
-
- static internal bool IsWriteAsByteArray(InternalPrimitiveTypeE code)
- {
- bool isWrite = false;
-
- switch (code) {
- case InternalPrimitiveTypeE.Boolean:
- case InternalPrimitiveTypeE.Char:
- case InternalPrimitiveTypeE.Byte:
- case InternalPrimitiveTypeE.Double:
- case InternalPrimitiveTypeE.Int16:
- case InternalPrimitiveTypeE.Int32:
- case InternalPrimitiveTypeE.Int64:
- case InternalPrimitiveTypeE.SByte:
- case InternalPrimitiveTypeE.Single:
- case InternalPrimitiveTypeE.UInt16:
- case InternalPrimitiveTypeE.UInt32:
- case InternalPrimitiveTypeE.UInt64:
- isWrite = true;
- break;
- }
- return isWrite;
- }
-
- static internal InternalNameSpaceE GetNameSpaceEnum(InternalPrimitiveTypeE code, Type type, WriteObjectInfo objectInfo, out string typeName)
- {
- InternalST.Soap("Converter", "GetNameSpaceEnum Entry ", ((Enum)code).ToString(), " type ", type);
- InternalNameSpaceE nameSpaceEnum = InternalNameSpaceE.None;
- typeName = null;
-
- if (code != InternalPrimitiveTypeE.Invalid) {
-
- if (code == InternalPrimitiveTypeE.Char) {
- nameSpaceEnum = InternalNameSpaceE.UrtSystem;
- typeName = "System.Char";
- }
- else {
- nameSpaceEnum = InternalNameSpaceE.XdrPrimitive;
- typeName = ToXmlDataType(code);
- }
- }
-
- if ((nameSpaceEnum == InternalNameSpaceE.None) && (type != null)) {
- if (type == typeofString)
- nameSpaceEnum = InternalNameSpaceE.XdrString;
- else {
- if (objectInfo == null) {
- typeName = type.FullName;
- if (type.Module.Assembly == urtAssembly)
- nameSpaceEnum = InternalNameSpaceE.UrtSystem;
- else
- nameSpaceEnum = InternalNameSpaceE.UrtUser;
- }
- else {
- typeName = objectInfo.GetTypeFullName();
-
-
- if (objectInfo.GetAssemblyString().Equals(urtAssemblyString))
- nameSpaceEnum = InternalNameSpaceE.UrtSystem;
- else
- nameSpaceEnum = InternalNameSpaceE.UrtUser;
- }
- }
- }
-
-
- if (objectInfo != null) {
- if (!objectInfo.isSi && (objectInfo.IsAttributeNameSpace() || objectInfo.IsCustomXmlAttribute() || objectInfo.IsCustomXmlElement())) {
- nameSpaceEnum = InternalNameSpaceE.Interop;
- }
- else if (objectInfo.IsCallElement()) {
- nameSpaceEnum = InternalNameSpaceE.CallElement;
- }
- }
-
- InternalST.Soap("Converter", "GetNameSpaceEnum Exit ", ((Enum)nameSpaceEnum).ToString(), " typeName ", typeName);
- return nameSpaceEnum;
- }
-
-
- static internal bool IsSiTransmitType(InternalPrimitiveTypeE code)
- {
- switch (code) {
- case InternalPrimitiveTypeE.TimeSpan:
- case InternalPrimitiveTypeE.DateTime:
- case InternalPrimitiveTypeE.Time:
- case InternalPrimitiveTypeE.Date:
- case InternalPrimitiveTypeE.YearMonth:
- case InternalPrimitiveTypeE.Year:
- case InternalPrimitiveTypeE.MonthDay:
- case InternalPrimitiveTypeE.Day:
- case InternalPrimitiveTypeE.Month:
- case InternalPrimitiveTypeE.HexBinary:
- case InternalPrimitiveTypeE.Base64Binary:
- case InternalPrimitiveTypeE.Integer:
- case InternalPrimitiveTypeE.PositiveInteger:
- case InternalPrimitiveTypeE.NonPositiveInteger:
- case InternalPrimitiveTypeE.NonNegativeInteger:
- case InternalPrimitiveTypeE.NegativeInteger:
- case InternalPrimitiveTypeE.AnyUri:
- case InternalPrimitiveTypeE.QName:
- case InternalPrimitiveTypeE.Notation:
- case InternalPrimitiveTypeE.NormalizedString:
- case InternalPrimitiveTypeE.Token:
- case InternalPrimitiveTypeE.Language:
- case InternalPrimitiveTypeE.Name:
- case InternalPrimitiveTypeE.Idrefs:
- case InternalPrimitiveTypeE.Entities:
- case InternalPrimitiveTypeE.Nmtoken:
- case InternalPrimitiveTypeE.Nmtokens:
- case InternalPrimitiveTypeE.NcName:
- case InternalPrimitiveTypeE.Id:
- case InternalPrimitiveTypeE.Idref:
- case InternalPrimitiveTypeE.Entity:
- case InternalPrimitiveTypeE.Invalid:
- return true;
- default:
- return false;
- }
- }
-
-
- private static Type[] typeA;
-
- private static void InitTypeA()
- {
- typeA = new Type[primitiveTypeEnumLength];
- typeA[(int)InternalPrimitiveTypeE.Invalid] = null;
- typeA[(int)InternalPrimitiveTypeE.Boolean] = typeofBoolean;
- typeA[(int)InternalPrimitiveTypeE.Byte] = typeofByte;
- typeA[(int)InternalPrimitiveTypeE.Char] = typeofChar;
- typeA[(int)InternalPrimitiveTypeE.Decimal] = typeofDecimal;
- typeA[(int)InternalPrimitiveTypeE.Double] = typeofDouble;
- typeA[(int)InternalPrimitiveTypeE.Int16] = typeofInt16;
- typeA[(int)InternalPrimitiveTypeE.Int32] = typeofInt32;
- typeA[(int)InternalPrimitiveTypeE.Int64] = typeofInt64;
- typeA[(int)InternalPrimitiveTypeE.SByte] = typeofSByte;
- typeA[(int)InternalPrimitiveTypeE.Single] = typeofSingle;
- typeA[(int)InternalPrimitiveTypeE.TimeSpan] = typeofTimeSpan;
- typeA[(int)InternalPrimitiveTypeE.DateTime] = typeofDateTime;
- typeA[(int)InternalPrimitiveTypeE.UInt16] = typeofUInt16;
- typeA[(int)InternalPrimitiveTypeE.UInt32] = typeofUInt32;
- typeA[(int)InternalPrimitiveTypeE.UInt64] = typeofUInt64;
- typeA[(int)InternalPrimitiveTypeE.Time] = typeofSoapTime;
- typeA[(int)InternalPrimitiveTypeE.Date] = typeofSoapDate;
- typeA[(int)InternalPrimitiveTypeE.YearMonth] = typeofSoapYearMonth;
- typeA[(int)InternalPrimitiveTypeE.Year] = typeofSoapYear;
- typeA[(int)InternalPrimitiveTypeE.MonthDay] = typeofSoapMonthDay;
- typeA[(int)InternalPrimitiveTypeE.Day] = typeofSoapDay;
- typeA[(int)InternalPrimitiveTypeE.Month] = typeofSoapMonth;
- typeA[(int)InternalPrimitiveTypeE.HexBinary] = typeofSoapHexBinary;
- typeA[(int)InternalPrimitiveTypeE.Base64Binary] = typeofSoapBase64Binary;
- typeA[(int)InternalPrimitiveTypeE.Integer] = typeofSoapInteger;
- typeA[(int)InternalPrimitiveTypeE.PositiveInteger] = typeofSoapPositiveInteger;
- typeA[(int)InternalPrimitiveTypeE.NonPositiveInteger] = typeofSoapNonPositiveInteger;
- typeA[(int)InternalPrimitiveTypeE.NonNegativeInteger] = typeofSoapNonNegativeInteger;
- typeA[(int)InternalPrimitiveTypeE.NegativeInteger] = typeofSoapNegativeInteger;
- typeA[(int)InternalPrimitiveTypeE.AnyUri] = typeofSoapAnyUri;
- typeA[(int)InternalPrimitiveTypeE.QName] = typeofSoapQName;
- typeA[(int)InternalPrimitiveTypeE.Notation] = typeofSoapNotation;
- typeA[(int)InternalPrimitiveTypeE.NormalizedString] = typeofSoapNormalizedString;
- typeA[(int)InternalPrimitiveTypeE.Token] = typeofSoapToken;
- typeA[(int)InternalPrimitiveTypeE.Language] = typeofSoapLanguage;
- typeA[(int)InternalPrimitiveTypeE.Name] = typeofSoapName;
- typeA[(int)InternalPrimitiveTypeE.Idrefs] = typeofSoapIdrefs;
- typeA[(int)InternalPrimitiveTypeE.Entities] = typeofSoapEntities;
- typeA[(int)InternalPrimitiveTypeE.Nmtoken] = typeofSoapNmtoken;
- typeA[(int)InternalPrimitiveTypeE.Nmtokens] = typeofSoapNmtokens;
- typeA[(int)InternalPrimitiveTypeE.NcName] = typeofSoapNcName;
- typeA[(int)InternalPrimitiveTypeE.Id] = typeofSoapId;
- typeA[(int)InternalPrimitiveTypeE.Idref] = typeofSoapIdref;
- typeA[(int)InternalPrimitiveTypeE.Entity] = typeofSoapEntity;
- }
-
-
-
- static internal Type SoapToType(InternalPrimitiveTypeE code)
- {
- return ToType(code);
- }
-
- static internal Type ToType(InternalPrimitiveTypeE code)
- {
- InternalST.Soap("Converter", "ToType Entry ", ((Enum)code).ToString());
- lock (typeofConverter) {
- if (typeA == null)
- InitTypeA();
- }
- InternalST.Soap("Converter", "ToType Exit ", ((typeA[(int)code] == null) ? "null " : typeA[(int)code].Name));
- return typeA[(int)code];
- }
-
- private static string[] valueA;
-
- private static void InitValueA()
- {
- valueA = new string[primitiveTypeEnumLength];
- valueA[(int)InternalPrimitiveTypeE.Invalid] = null;
- valueA[(int)InternalPrimitiveTypeE.Boolean] = "System.Boolean";
- valueA[(int)InternalPrimitiveTypeE.Byte] = "System.Byte";
- valueA[(int)InternalPrimitiveTypeE.Char] = "System.Char";
- valueA[(int)InternalPrimitiveTypeE.Decimal] = "System.Decimal";
- valueA[(int)InternalPrimitiveTypeE.Double] = "System.Double";
- valueA[(int)InternalPrimitiveTypeE.Int16] = "System.Int16";
- valueA[(int)InternalPrimitiveTypeE.Int32] = "System.Int32";
- valueA[(int)InternalPrimitiveTypeE.Int64] = "System.Int64";
- valueA[(int)InternalPrimitiveTypeE.SByte] = "System.SByte";
- valueA[(int)InternalPrimitiveTypeE.Single] = "System.Single";
- valueA[(int)InternalPrimitiveTypeE.TimeSpan] = "System.TimeSpan";
- valueA[(int)InternalPrimitiveTypeE.DateTime] = "System.DateTime";
- valueA[(int)InternalPrimitiveTypeE.UInt16] = "System.UInt16";
- valueA[(int)InternalPrimitiveTypeE.UInt32] = "System.UInt32";
- valueA[(int)InternalPrimitiveTypeE.UInt64] = "System.UInt64";
-
- valueA[(int)InternalPrimitiveTypeE.Time] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime";
- valueA[(int)InternalPrimitiveTypeE.Date] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDate";
- valueA[(int)InternalPrimitiveTypeE.YearMonth] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth";
- valueA[(int)InternalPrimitiveTypeE.Year] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYear";
- valueA[(int)InternalPrimitiveTypeE.MonthDay] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay";
- valueA[(int)InternalPrimitiveTypeE.Day] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay";
- valueA[(int)InternalPrimitiveTypeE.Month] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth";
- valueA[(int)InternalPrimitiveTypeE.HexBinary] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary";
- valueA[(int)InternalPrimitiveTypeE.Base64Binary] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary";
- valueA[(int)InternalPrimitiveTypeE.Integer] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger";
- valueA[(int)InternalPrimitiveTypeE.PositiveInteger] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger";
- valueA[(int)InternalPrimitiveTypeE.NonPositiveInteger] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger";
- valueA[(int)InternalPrimitiveTypeE.NonNegativeInteger] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger";
- valueA[(int)InternalPrimitiveTypeE.NegativeInteger] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger";
- valueA[(int)InternalPrimitiveTypeE.AnyUri] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri";
- valueA[(int)InternalPrimitiveTypeE.QName] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName";
- valueA[(int)InternalPrimitiveTypeE.Notation] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNotation";
- valueA[(int)InternalPrimitiveTypeE.NormalizedString] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString";
- valueA[(int)InternalPrimitiveTypeE.Token] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapToken";
- valueA[(int)InternalPrimitiveTypeE.Language] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapLanguage";
- valueA[(int)InternalPrimitiveTypeE.Name] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapName";
- valueA[(int)InternalPrimitiveTypeE.Idrefs] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapIdrefs";
- valueA[(int)InternalPrimitiveTypeE.Entities] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapEntities";
- valueA[(int)InternalPrimitiveTypeE.Nmtoken] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNmtoken";
- valueA[(int)InternalPrimitiveTypeE.Nmtokens] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNmtokens";
- valueA[(int)InternalPrimitiveTypeE.NcName] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNcName";
- valueA[(int)InternalPrimitiveTypeE.Id] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapId";
- valueA[(int)InternalPrimitiveTypeE.Idref] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapIdref";
- valueA[(int)InternalPrimitiveTypeE.Entity] = "System.Runtime.Remoting.Metadata.W3cXsd2001.SoapEntity";
- }
-
-
- static internal string SoapToComType(InternalPrimitiveTypeE code)
- {
- return ToComType(code);
- }
-
- static internal string ToComType(InternalPrimitiveTypeE code)
- {
- InternalST.Soap("Converter", "ToComType Entry ", ((Enum)code).ToString());
-
- lock (typeofConverter) {
- if (valueA == null)
- InitValueA();
- }
-
- InternalST.Soap("Converter", "ToComType Exit ", ((valueA[(int)code] == null) ? "null" : valueA[(int)code]));
-
- return valueA[(int)code];
- }
-
- private static string[] valueB;
-
- private static void InitValueB()
- {
- valueB = new string[primitiveTypeEnumLength];
- valueB[(int)InternalPrimitiveTypeE.Invalid] = null;
- valueB[(int)InternalPrimitiveTypeE.Boolean] = "boolean";
- valueB[(int)InternalPrimitiveTypeE.Byte] = "unsignedByte";
- valueB[(int)InternalPrimitiveTypeE.Char] = "char";
-
- valueB[(int)InternalPrimitiveTypeE.Decimal] = "decimal";
- valueB[(int)InternalPrimitiveTypeE.Double] = "double";
- valueB[(int)InternalPrimitiveTypeE.Int16] = "short";
- valueB[(int)InternalPrimitiveTypeE.Int32] = "int";
- valueB[(int)InternalPrimitiveTypeE.Int64] = "long";
- valueB[(int)InternalPrimitiveTypeE.SByte] = "byte";
- valueB[(int)InternalPrimitiveTypeE.Single] = "float";
- valueB[(int)InternalPrimitiveTypeE.TimeSpan] = "duration";
- valueB[(int)InternalPrimitiveTypeE.DateTime] = "dateTime";
- valueB[(int)InternalPrimitiveTypeE.UInt16] = "unsignedShort";
- valueB[(int)InternalPrimitiveTypeE.UInt32] = "unsignedInt";
- valueB[(int)InternalPrimitiveTypeE.UInt64] = "unsignedLong";
-
- valueB[(int)InternalPrimitiveTypeE.Time] = SoapTime.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Date] = SoapDate.XsdType;
- valueB[(int)InternalPrimitiveTypeE.YearMonth] = SoapYearMonth.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Year] = SoapYear.XsdType;
- valueB[(int)InternalPrimitiveTypeE.MonthDay] = SoapMonthDay.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Day] = SoapDay.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Month] = SoapMonth.XsdType;
- valueB[(int)InternalPrimitiveTypeE.HexBinary] = SoapHexBinary.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Base64Binary] = SoapBase64Binary.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Integer] = SoapInteger.XsdType;
- valueB[(int)InternalPrimitiveTypeE.PositiveInteger] = SoapPositiveInteger.XsdType;
- valueB[(int)InternalPrimitiveTypeE.NonPositiveInteger] = SoapNonPositiveInteger.XsdType;
- valueB[(int)InternalPrimitiveTypeE.NonNegativeInteger] = SoapNonNegativeInteger.XsdType;
- valueB[(int)InternalPrimitiveTypeE.NegativeInteger] = SoapNegativeInteger.XsdType;
- valueB[(int)InternalPrimitiveTypeE.AnyUri] = SoapAnyUri.XsdType;
- valueB[(int)InternalPrimitiveTypeE.QName] = SoapQName.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Notation] = SoapNotation.XsdType;
- valueB[(int)InternalPrimitiveTypeE.NormalizedString] = SoapNormalizedString.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Token] = SoapToken.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Language] = SoapLanguage.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Name] = SoapName.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Idrefs] = SoapIdrefs.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Entities] = SoapEntities.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Nmtoken] = SoapNmtoken.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Nmtokens] = SoapNmtokens.XsdType;
- valueB[(int)InternalPrimitiveTypeE.NcName] = SoapNcName.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Id] = SoapId.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Idref] = SoapIdref.XsdType;
- valueB[(int)InternalPrimitiveTypeE.Entity] = SoapEntity.XsdType;
- }
-
-
-
- static internal string ToXmlDataType(InternalPrimitiveTypeE code)
- {
- InternalST.Soap("Converter", "ToXmlDataType Entry ", ((Enum)code).ToString());
-
- lock (typeofConverter) {
- if (valueB == null)
- InitValueB();
- }
-
- InternalST.Soap("Converter", "ToXmlDataType Exit ", ((valueB[(int)code] == null) ? "null" : valueB[(int)code]));
-
- return valueB[(int)code];
- }
-
- private static TypeCode[] typeCodeA;
-
- private static void InitTypeCodeA()
- {
- typeCodeA = new TypeCode[primitiveTypeEnumLength];
- typeCodeA[(int)InternalPrimitiveTypeE.Invalid] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Boolean] = TypeCode.Boolean;
- typeCodeA[(int)InternalPrimitiveTypeE.Byte] = TypeCode.Byte;
- typeCodeA[(int)InternalPrimitiveTypeE.Char] = TypeCode.Char;
- typeCodeA[(int)InternalPrimitiveTypeE.Decimal] = TypeCode.Decimal;
- typeCodeA[(int)InternalPrimitiveTypeE.Double] = TypeCode.Double;
- typeCodeA[(int)InternalPrimitiveTypeE.Int16] = TypeCode.Int16;
- typeCodeA[(int)InternalPrimitiveTypeE.Int32] = TypeCode.Int32;
- typeCodeA[(int)InternalPrimitiveTypeE.Int64] = TypeCode.Int64;
- typeCodeA[(int)InternalPrimitiveTypeE.SByte] = TypeCode.SByte;
- typeCodeA[(int)InternalPrimitiveTypeE.Single] = TypeCode.Single;
- typeCodeA[(int)InternalPrimitiveTypeE.TimeSpan] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.DateTime] = TypeCode.DateTime;
- typeCodeA[(int)InternalPrimitiveTypeE.UInt16] = TypeCode.UInt16;
- typeCodeA[(int)InternalPrimitiveTypeE.UInt32] = TypeCode.UInt32;
- typeCodeA[(int)InternalPrimitiveTypeE.UInt64] = TypeCode.UInt64;
-
- typeCodeA[(int)InternalPrimitiveTypeE.Time] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Date] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.YearMonth] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Year] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.MonthDay] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Day] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Month] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.HexBinary] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Base64Binary] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Integer] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.PositiveInteger] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.NonPositiveInteger] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.NonNegativeInteger] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.NegativeInteger] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.AnyUri] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.QName] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Notation] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.NormalizedString] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Token] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Language] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Name] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Idrefs] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Entities] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Nmtoken] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Nmtokens] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.NcName] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Id] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Idref] = TypeCode.Object;
- typeCodeA[(int)InternalPrimitiveTypeE.Entity] = TypeCode.Object;
- }
-
-
- static internal TypeCode ToTypeCode(InternalPrimitiveTypeE code)
- {
- lock (typeofConverter) {
- if (typeCodeA == null)
- &n