internal override Exception TryParseValue(string s, XmlNameTable nameTable, IXmlNamespaceResolver nsmgr, out object typedValue)
        {
            typedValue = null;
            Exception exception = DatatypeImplementation.binaryFacetsChecker.CheckLexicalFacets(ref s, this);

            if (exception == null)
            {
                byte[] buffer = null;
                try
                {
                    buffer = XmlConvert.FromBinHexString(s, false);
                }
                catch (ArgumentException exception2)
                {
                    return(exception2);
                }
                catch (XmlException exception3)
                {
                    return(exception3);
                }
                exception = DatatypeImplementation.binaryFacetsChecker.CheckValueFacets(buffer, this);
                if (exception == null)
                {
                    typedValue = buffer;
                    return(null);
                }
            }
            return(exception);
        }
Example #2
0
		internal static object FromXmlString (TypeData type, string value)
		{
			if (value == null) return null;

			switch (type.XmlType)
			{
				case "boolean": return XmlConvert.ToBoolean (value);
				case "unsignedByte": return XmlConvert.ToByte (value);
				case "char": return (char)XmlConvert.ToInt32 (value);
				case "dateTime": return XmlConvert.ToDateTime (value, XmlDateTimeSerializationMode.RoundtripKind);
				case "date": return XmlConvert.ToDateTime (value).Date;
				case "time": return DateTime.ParseExact(value, allTimeFormats, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite | DateTimeStyles.NoCurrentDateDefault | DateTimeStyles.RoundtripKind);
				case "decimal": return XmlConvert.ToDecimal (value);
				case "double": return XmlConvert.ToDouble (value);
				case "short": return XmlConvert.ToInt16 (value);
				case "int": return XmlConvert.ToInt32 (value);
				case "long": return XmlConvert.ToInt64 (value);
				case "byte": return XmlConvert.ToSByte (value);
				case "float": return XmlConvert.ToSingle (value);
				case "unsignedShort": return XmlConvert.ToUInt16 (value);
				case "unsignedInt": return XmlConvert.ToUInt32 (value);
				case "unsignedLong": return XmlConvert.ToUInt64 (value);
				case "guid": return XmlConvert.ToGuid (value);
				case "base64":
				case "base64Binary": return Convert.FromBase64String (value);
				case "hexBinary": return XmlConvert.FromBinHexString (value);
				case "duration": return value;
				default: 
					if (type.Type != null)
						return Convert.ChangeType (value, type.Type, null);
					else
						return value;
			}
		}
Example #3
0
 internal static byte[] ToByteArrayHex(string value)
 {
     if (value == null)
     {
         return(null);
     }
     value = value.Trim();
     return(XmlConvert.FromBinHexString(value));
 }
Example #4
0
 protected static byte[] StringToHexBinary(string value)
 {
     byte[] buffer;
     try
     {
         buffer = XmlConvert.FromBinHexString(XmlConvert.TrimString(value), false);
     }
     catch (XmlException exception)
     {
         throw new FormatException(exception.Message);
     }
     return(buffer);
 }
Example #5
0
        internal static byte[] ToByteArrayHex(string value)
        {
            if (value == null)
            {
                return(null);
            }
            value = value.Trim();
#if XMLSERIALIZERGENERATOR
            return(System.Xml.Extensions.ExtensionMethods.FromBinHexString(value, true));
#else
            return(XmlConvert.FromBinHexString(value));
#endif
        }
Example #6
0
        internal static object FromXmlString(TypeData type, string value)
        {
            if (value == null)
            {
                return(null);
            }

            switch (type.XmlType)
            {
            case "boolean": return(XmlConvert.ToBoolean(value));

            case "unsignedByte": return(XmlConvert.ToByte(value));

            case "char": return((char)XmlConvert.ToInt32(value));

#if NET_2_0
            case "dateTime": return(XmlConvert.ToDateTime(value, XmlDateTimeSerializationMode.RoundtripKind));

            case "date": return(XmlConvert.ToDateTime(value).Date);

            case "time": return(DateTime.ParseExact(value, "HH:mm:ss.FFFFFFF", null));
#else
            case "dateTime": return(XmlConvert.ToDateTime(value));

            case "date": return(XmlConvert.ToDateTime(value).Date);

            case "time": return(DateTime.ParseExact(value, "HH:mm:ss.fffffffzzz", null));
#endif
            case "decimal": return(XmlConvert.ToDecimal(value));

            case "double": return(XmlConvert.ToDouble(value));

            case "short": return(XmlConvert.ToInt16(value));

            case "int": return(XmlConvert.ToInt32(value));

            case "long": return(XmlConvert.ToInt64(value));

            case "byte": return(XmlConvert.ToSByte(value));

            case "float": return(XmlConvert.ToSingle(value));

            case "unsignedShort": return(XmlConvert.ToUInt16(value));

            case "unsignedInt": return(XmlConvert.ToUInt32(value));

            case "unsignedLong": return(XmlConvert.ToUInt64(value));

            case "guid": return(XmlConvert.ToGuid(value));

            case "base64":
            case "base64Binary": return(Convert.FromBase64String(value));

            case "hexBinary": return(XmlConvert.FromBinHexString(value));

            case "duration": return(value);

            default:
                if (type.Type != null)
                {
                    return(Convert.ChangeType(value, type.Type, null));
                }
                else
                {
                    return(value);
                }
            }
        }
 protected static byte[] ToByteArrayHex(string value)
 {
     return(XmlConvert.FromBinHexString(value));
 }
 public override object ParseValue(string s, XmlNameTable nameTable, IXmlNamespaceResolver nsmgr)
 {
     return(XmlConvert.FromBinHexString(base.Normalize(s)));
 }