private object ChangeTypeWildcardSource(object value, Type destinationType, IXmlNamespaceResolver nsResolver) { if (destinationType == XmlBaseConverter.ByteType) { return(XmlBaseConverter.Int32ToByte(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.Int16Type) { return(XmlBaseConverter.Int32ToInt16(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.SByteType) { return(XmlBaseConverter.Int32ToSByte(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.UInt16Type) { return(XmlBaseConverter.Int32ToUInt16(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.UInt32Type) { return(XmlBaseConverter.Int64ToUInt32(this.ToInt64(value))); } if (destinationType == XmlBaseConverter.UInt64Type) { return(XmlBaseConverter.DecimalToUInt64(this.ToDecimal(value))); } return(this.ChangeListType(value, destinationType, nsResolver)); }
public override long ToInt64(object value) { if (value == null) { throw new ArgumentNullException("value"); } Type type = value.GetType(); if (type == XmlBaseConverter.DecimalType) { return(XmlBaseConverter.DecimalToInt64((decimal)value)); } if (type == XmlBaseConverter.Int32Type) { return((long)((int)value)); } if (type == XmlBaseConverter.Int64Type) { return((long)value); } if (type == XmlBaseConverter.StringType) { return(this.ToInt64((string)value)); } if (type == XmlBaseConverter.XmlAtomicValueType) { return(((XmlAtomicValue)value).ValueAsLong); } return((long)this.ChangeTypeWildcardDestination(value, XmlBaseConverter.Int64Type, null)); }
public override DateTimeOffset ToDateTimeOffset(string value) { if (value == null) { throw new ArgumentNullException("value"); } switch (base.TypeCode) { case XmlTypeCode.Time: return(XmlBaseConverter.StringToTimeOffset(value)); case XmlTypeCode.Date: return(XmlBaseConverter.StringToDateOffset(value)); case XmlTypeCode.GYearMonth: return(XmlBaseConverter.StringToGYearMonthOffset(value)); case XmlTypeCode.GYear: return(XmlBaseConverter.StringToGYearOffset(value)); case XmlTypeCode.GMonthDay: return(XmlBaseConverter.StringToGMonthDayOffset(value)); case XmlTypeCode.GDay: return(XmlBaseConverter.StringToGDayOffset(value)); case XmlTypeCode.GMonth: return(XmlBaseConverter.StringToGMonthOffset(value)); } return(XmlBaseConverter.StringToDateTimeOffset(value)); }
public override string ToString(DateTimeOffset value) { switch (base.TypeCode) { case XmlTypeCode.Time: return(XmlBaseConverter.TimeOffsetToString(value)); case XmlTypeCode.Date: return(XmlBaseConverter.DateOffsetToString(value)); case XmlTypeCode.GYearMonth: return(XmlBaseConverter.GYearMonthOffsetToString(value)); case XmlTypeCode.GYear: return(XmlBaseConverter.GYearOffsetToString(value)); case XmlTypeCode.GMonthDay: return(XmlBaseConverter.GMonthDayOffsetToString(value)); case XmlTypeCode.GDay: return(XmlBaseConverter.GDayOffsetToString(value)); case XmlTypeCode.GMonth: return(XmlBaseConverter.GMonthOffsetToString(value)); } return(XmlBaseConverter.DateTimeOffsetToString(value)); }
public override object ChangeType(object value, Type destinationType, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } Type derivedType = value.GetType(); if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if ((destinationType == XmlBaseConverter.XPathNavigatorType) && XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XPathNavigatorType)) { return((XPathNavigator)value); } if ((destinationType == XmlBaseConverter.XPathItemType) && XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XPathNavigatorType)) { return((XPathItem)value); } return(this.ChangeListType(value, destinationType, nsResolver)); }
public override DateTimeOffset ToDateTimeOffset(string value) { if (value == null) { throw new ArgumentNullException("value"); } return(XmlBaseConverter.UntypedAtomicToDateTimeOffset(value)); }
public override string ToString(object value, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } Type derivedType = value.GetType(); if (derivedType == XmlBaseConverter.ByteArrayType) { switch (base.TypeCode) { case XmlTypeCode.HexBinary: return(XmlConvert.ToBinHexString((byte[])value)); case XmlTypeCode.Base64Binary: return(XmlBaseConverter.Base64BinaryToString((byte[])value)); } } if (derivedType == XmlBaseConverter.StringType) { return((string)value); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.UriType) && (base.TypeCode == XmlTypeCode.AnyUri)) { return(XmlBaseConverter.AnyUriToString((Uri)value)); } if (derivedType == XmlBaseConverter.TimeSpanType) { switch (base.TypeCode) { case XmlTypeCode.YearMonthDuration: return(XmlBaseConverter.YearMonthDurationToString((TimeSpan)value)); case XmlTypeCode.DayTimeDuration: return(XmlBaseConverter.DayTimeDurationToString((TimeSpan)value)); case XmlTypeCode.Duration: return(XmlBaseConverter.DurationToString((TimeSpan)value)); } } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XmlQualifiedNameType)) { switch (base.TypeCode) { case XmlTypeCode.QName: return(XmlBaseConverter.QNameToString((XmlQualifiedName)value, nsResolver)); case XmlTypeCode.Notation: return(XmlBaseConverter.QNameToString((XmlQualifiedName)value, nsResolver)); } } return((string)this.ChangeTypeWildcardDestination(value, XmlBaseConverter.StringType, nsResolver)); }
public override DateTimeOffset ToDateTimeOffset(object value) { if (value == null) { throw new ArgumentNullException("value"); } if (value.GetType() == XmlBaseConverter.StringType) { return(XmlBaseConverter.UntypedAtomicToDateTimeOffset((string)value)); } return((DateTimeOffset)this.ChangeTypeWildcardDestination(value, XmlBaseConverter.DateTimeOffsetType, null)); }
public override long ToInt64(string value) { if (value == null) { throw new ArgumentNullException("value"); } if (base.TypeCode == XmlTypeCode.Decimal) { return(XmlBaseConverter.DecimalToInt64(XmlConvert.ToDecimal(value))); } return(XmlConvert.ToInt64(value)); }
internal void CompileFractionDigitsFacet(XmlSchemaFacet facet) { this.CheckProhibitedFlag(facet, RestrictionFlags.FractionDigits, "Sch_FractionDigitsFacetProhibited"); this.CheckDupFlag(facet, RestrictionFlags.FractionDigits, "Sch_DupFractionDigitsFacet"); this.derivedRestriction.FractionDigits = XmlBaseConverter.DecimalToInt32((decimal)this.ParseFacetValue(this.nonNegativeInt, facet, "Sch_FractionDigitsFacetInvalid", null, null)); if ((this.derivedRestriction.FractionDigits != 0) && (this.datatype.TypeCode != XmlTypeCode.Decimal)) { throw new XmlSchemaException("Sch_FractionDigitsFacetInvalid", Res.GetString("Sch_FractionDigitsNotOnDecimal"), facet); } if (((this.baseFlags & RestrictionFlags.FractionDigits) != 0) && (this.derivedRestriction.FractionDigits > this.datatype.Restriction.FractionDigits)) { throw new XmlSchemaException("Sch_TotalDigitsMismatch", string.Empty); } this.SetFlag(facet, RestrictionFlags.FractionDigits); }
public override object ChangeType(DateTimeOffset value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if (destinationType == XmlBaseConverter.StringType) { return(XmlBaseConverter.DateTimeOffsetToString(value)); } return(this.ChangeTypeWildcardSource(value, destinationType, null)); }
internal void CompileTotalDigitsFacet(XmlSchemaFacet facet) { this.CheckProhibitedFlag(facet, RestrictionFlags.TotalDigits, "Sch_TotalDigitsFacetProhibited"); this.CheckDupFlag(facet, RestrictionFlags.TotalDigits, "Sch_DupTotalDigitsFacet"); XmlSchemaDatatype datatype = DatatypeImplementation.GetSimpleTypeFromTypeCode(XmlTypeCode.PositiveInteger).Datatype; this.derivedRestriction.TotalDigits = XmlBaseConverter.DecimalToInt32((decimal)this.ParseFacetValue(datatype, facet, "Sch_TotalDigitsFacetInvalid", null, null)); if (((this.baseFixedFlags & RestrictionFlags.TotalDigits) != 0) && !this.datatype.IsEqual(this.datatype.Restriction.TotalDigits, this.derivedRestriction.TotalDigits)) { throw new XmlSchemaException("Sch_FacetBaseFixed", facet); } if (((this.baseFlags & RestrictionFlags.TotalDigits) != 0) && (this.derivedRestriction.TotalDigits > this.datatype.Restriction.TotalDigits)) { throw new XmlSchemaException("Sch_TotalDigitsMismatch", string.Empty); } this.SetFlag(facet, RestrictionFlags.TotalDigits); }
internal void CompileMaxLengthFacet(XmlSchemaFacet facet) { this.CheckProhibitedFlag(facet, RestrictionFlags.MaxLength, "Sch_MaxLengthFacetProhibited"); this.CheckDupFlag(facet, RestrictionFlags.MaxLength, "Sch_DupMaxLengthFacet"); this.derivedRestriction.MaxLength = XmlBaseConverter.DecimalToInt32((decimal)this.ParseFacetValue(this.nonNegativeInt, facet, "Sch_MaxLengthFacetInvalid", null, null)); if (((this.baseFixedFlags & RestrictionFlags.MaxLength) != 0) && !this.datatype.IsEqual(this.datatype.Restriction.MaxLength, this.derivedRestriction.MaxLength)) { throw new XmlSchemaException("Sch_FacetBaseFixed", facet); } if (((this.baseFlags & RestrictionFlags.MaxLength) != 0) && (this.datatype.Restriction.MaxLength < this.derivedRestriction.MaxLength)) { throw new XmlSchemaException("Sch_MaxLengthGtBaseMaxLength", facet); } if (((this.baseFlags & RestrictionFlags.Length) != 0) && (this.datatype.Restriction.Length > this.derivedRestriction.MaxLength)) { throw new XmlSchemaException("Sch_MaxMinLengthBaseLength", facet); } this.SetFlag(facet, RestrictionFlags.MaxLength); }
public override object ChangeType(long value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if (destinationType == XmlBaseConverter.DecimalType) { return((decimal)value); } if (destinationType == XmlBaseConverter.Int32Type) { return(XmlBaseConverter.Int64ToInt32(value)); } if (destinationType == XmlBaseConverter.Int64Type) { return(value); } if (destinationType == XmlBaseConverter.StringType) { return(XmlConvert.ToString(value)); } if (destinationType == XmlBaseConverter.XmlAtomicValueType) { return(new XmlAtomicValue(base.SchemaType, value)); } if (destinationType == XmlBaseConverter.XPathItemType) { return(new XmlAtomicValue(base.SchemaType, value)); } return(this.ChangeTypeWildcardSource(value, destinationType, null)); }
public override long ToInt64(decimal value) { return(XmlBaseConverter.DecimalToInt64(value)); }
public override object ChangeType(string value, Type destinationType, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if (destinationType == XmlBaseConverter.ByteArrayType) { switch (base.TypeCode) { case XmlTypeCode.HexBinary: return(XmlBaseConverter.StringToHexBinary(value)); case XmlTypeCode.Base64Binary: return(XmlBaseConverter.StringToBase64Binary(value)); } } if (destinationType == XmlBaseConverter.XmlQualifiedNameType) { switch (base.TypeCode) { case XmlTypeCode.QName: return(XmlBaseConverter.StringToQName(value, nsResolver)); case XmlTypeCode.Notation: return(XmlBaseConverter.StringToQName(value, nsResolver)); } } if (destinationType == XmlBaseConverter.StringType) { return(value); } if (destinationType == XmlBaseConverter.TimeSpanType) { switch (base.TypeCode) { case XmlTypeCode.YearMonthDuration: return(XmlBaseConverter.StringToYearMonthDuration(value)); case XmlTypeCode.DayTimeDuration: return(XmlBaseConverter.StringToDayTimeDuration(value)); case XmlTypeCode.Duration: return(XmlBaseConverter.StringToDuration(value)); } } if ((destinationType == XmlBaseConverter.UriType) && (base.TypeCode == XmlTypeCode.AnyUri)) { return(XmlConvert.ToUri(value)); } if (destinationType == XmlBaseConverter.XmlAtomicValueType) { return(new XmlAtomicValue(base.SchemaType, value, nsResolver)); } return(this.ChangeTypeWildcardSource(value, destinationType, nsResolver)); }
public override object ChangeType(object value, Type destinationType, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } Type derivedType = value.GetType(); if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if (destinationType == XmlBaseConverter.ByteArrayType) { if (derivedType == XmlBaseConverter.ByteArrayType) { switch (base.TypeCode) { case XmlTypeCode.HexBinary: return((byte[])value); case XmlTypeCode.Base64Binary: return((byte[])value); } } if (derivedType == XmlBaseConverter.StringType) { switch (base.TypeCode) { case XmlTypeCode.HexBinary: return(XmlBaseConverter.StringToHexBinary((string)value)); case XmlTypeCode.Base64Binary: return(XmlBaseConverter.StringToBase64Binary((string)value)); } } } if (destinationType == XmlBaseConverter.XmlQualifiedNameType) { if (derivedType == XmlBaseConverter.StringType) { switch (base.TypeCode) { case XmlTypeCode.QName: return(XmlBaseConverter.StringToQName((string)value, nsResolver)); case XmlTypeCode.Notation: return(XmlBaseConverter.StringToQName((string)value, nsResolver)); } } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XmlQualifiedNameType)) { switch (base.TypeCode) { case XmlTypeCode.QName: return((XmlQualifiedName)value); case XmlTypeCode.Notation: return((XmlQualifiedName)value); } } } if (destinationType == XmlBaseConverter.StringType) { return(this.ToString(value, nsResolver)); } if (destinationType == XmlBaseConverter.TimeSpanType) { if (derivedType == XmlBaseConverter.StringType) { switch (base.TypeCode) { case XmlTypeCode.YearMonthDuration: return(XmlBaseConverter.StringToYearMonthDuration((string)value)); case XmlTypeCode.DayTimeDuration: return(XmlBaseConverter.StringToDayTimeDuration((string)value)); case XmlTypeCode.Duration: return(XmlBaseConverter.StringToDuration((string)value)); } } if (derivedType == XmlBaseConverter.TimeSpanType) { switch (base.TypeCode) { case XmlTypeCode.YearMonthDuration: return((TimeSpan)value); case XmlTypeCode.DayTimeDuration: return((TimeSpan)value); case XmlTypeCode.Duration: return((TimeSpan)value); } } } if (destinationType == XmlBaseConverter.UriType) { if ((derivedType == XmlBaseConverter.StringType) && (base.TypeCode == XmlTypeCode.AnyUri)) { return(XmlConvert.ToUri((string)value)); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.UriType) && (base.TypeCode == XmlTypeCode.AnyUri)) { return((Uri)value); } } if (destinationType == XmlBaseConverter.XmlAtomicValueType) { if (derivedType == XmlBaseConverter.ByteArrayType) { switch (base.TypeCode) { case XmlTypeCode.HexBinary: return(new XmlAtomicValue(base.SchemaType, value)); case XmlTypeCode.Base64Binary: return(new XmlAtomicValue(base.SchemaType, value)); } } if (derivedType == XmlBaseConverter.StringType) { return(new XmlAtomicValue(base.SchemaType, (string)value, nsResolver)); } if (derivedType == XmlBaseConverter.TimeSpanType) { switch (base.TypeCode) { case XmlTypeCode.YearMonthDuration: return(new XmlAtomicValue(base.SchemaType, value)); case XmlTypeCode.DayTimeDuration: return(new XmlAtomicValue(base.SchemaType, value)); case XmlTypeCode.Duration: return(new XmlAtomicValue(base.SchemaType, value)); } } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.UriType) && (base.TypeCode == XmlTypeCode.AnyUri)) { return(new XmlAtomicValue(base.SchemaType, value)); } if (derivedType == XmlBaseConverter.XmlAtomicValueType) { return((XmlAtomicValue)value); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XmlQualifiedNameType)) { switch (base.TypeCode) { case XmlTypeCode.QName: return(new XmlAtomicValue(base.SchemaType, value, nsResolver)); case XmlTypeCode.Notation: return(new XmlAtomicValue(base.SchemaType, value, nsResolver)); } } } if ((destinationType == XmlBaseConverter.XPathItemType) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return((XmlAtomicValue)value); } if (destinationType == XmlBaseConverter.XPathItemType) { return((XPathItem)this.ChangeType(value, XmlBaseConverter.XmlAtomicValueType, nsResolver)); } if (derivedType == XmlBaseConverter.XmlAtomicValueType) { return(((XmlAtomicValue)value).ValueAs(destinationType, nsResolver)); } return(this.ChangeListType(value, destinationType, nsResolver)); }
protected XmlListConverter(XmlBaseConverter atomicConverter, Type clrTypeDefault) : base(atomicConverter, clrTypeDefault) { this.atomicConverter = atomicConverter; }
protected XmlBaseConverter(XmlBaseConverter converterAtomic, Type clrTypeDefault) { this.schemaType = converterAtomic.schemaType; this.typeCode = converterAtomic.typeCode; this.clrTypeDefault = clrTypeDefault; }
public override int ToInt32(decimal value) { return(XmlBaseConverter.DecimalToInt32(value)); }
protected XmlBaseConverter(XmlBaseConverter converterAtomic) { this.schemaType = converterAtomic.schemaType; this.typeCode = converterAtomic.typeCode; this.clrTypeDefault = Array.CreateInstance(converterAtomic.DefaultClrType, 0).GetType(); }
protected XmlAnyListConverter(XmlBaseConverter atomicConverter) : base(atomicConverter) { }
public override string ToString(object value, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } Type derivedType = value.GetType(); if (derivedType == XmlBaseConverter.BooleanType) { return(XmlConvert.ToString((bool)value)); } if (derivedType == XmlBaseConverter.ByteType) { return(XmlConvert.ToString((byte)value)); } if (derivedType == XmlBaseConverter.ByteArrayType) { return(XmlBaseConverter.Base64BinaryToString((byte[])value)); } if (derivedType == XmlBaseConverter.DateTimeType) { return(XmlBaseConverter.DateTimeToString((DateTime)value)); } if (derivedType == XmlBaseConverter.DateTimeOffsetType) { return(XmlBaseConverter.DateTimeOffsetToString((DateTimeOffset)value)); } if (derivedType == XmlBaseConverter.DecimalType) { return(XmlConvert.ToString((decimal)value)); } if (derivedType == XmlBaseConverter.DoubleType) { return(XmlConvert.ToString((double)value)); } if (derivedType == XmlBaseConverter.Int16Type) { return(XmlConvert.ToString((short)value)); } if (derivedType == XmlBaseConverter.Int32Type) { return(XmlConvert.ToString((int)value)); } if (derivedType == XmlBaseConverter.Int64Type) { return(XmlConvert.ToString((long)value)); } if (derivedType == XmlBaseConverter.SByteType) { return(XmlConvert.ToString((sbyte)value)); } if (derivedType == XmlBaseConverter.SingleType) { return(XmlConvert.ToString((float)value)); } if (derivedType == XmlBaseConverter.StringType) { return((string)value); } if (derivedType == XmlBaseConverter.TimeSpanType) { return(XmlBaseConverter.DurationToString((TimeSpan)value)); } if (derivedType == XmlBaseConverter.UInt16Type) { return(XmlConvert.ToString((ushort)value)); } if (derivedType == XmlBaseConverter.UInt32Type) { return(XmlConvert.ToString((uint)value)); } if (derivedType == XmlBaseConverter.UInt64Type) { return(XmlConvert.ToString((ulong)value)); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.UriType)) { return(XmlBaseConverter.AnyUriToString((Uri)value)); } if (derivedType == XmlBaseConverter.XmlAtomicValueType) { return((string)((XmlAtomicValue)value).ValueAs(XmlBaseConverter.StringType, nsResolver)); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XmlQualifiedNameType)) { return(XmlBaseConverter.QNameToString((XmlQualifiedName)value, nsResolver)); } return((string)this.ChangeTypeWildcardDestination(value, XmlBaseConverter.StringType, nsResolver)); }
public override string ToString(DateTimeOffset value) { return(XmlBaseConverter.DateTimeOffsetToString(value)); }
public override DateTime ToDateTime(DateTimeOffset value) { return(XmlBaseConverter.DateTimeOffsetToDateTime(value)); }
public override object ChangeType(object value, Type destinationType, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } Type derivedType = value.GetType(); if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if ((destinationType == XmlBaseConverter.BooleanType) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return(((XmlAtomicValue)value).ValueAsBoolean); } if ((destinationType == XmlBaseConverter.DateTimeType) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return(((XmlAtomicValue)value).ValueAsDateTime); } if ((destinationType == XmlBaseConverter.DateTimeOffsetType) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return(((XmlAtomicValue)value).ValueAs(XmlBaseConverter.DateTimeOffsetType)); } if ((destinationType == XmlBaseConverter.DecimalType) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return((decimal)((XmlAtomicValue)value).ValueAs(XmlBaseConverter.DecimalType)); } if ((destinationType == XmlBaseConverter.DoubleType) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return(((XmlAtomicValue)value).ValueAsDouble); } if ((destinationType == XmlBaseConverter.Int32Type) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return(((XmlAtomicValue)value).ValueAsInt); } if ((destinationType == XmlBaseConverter.Int64Type) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return(((XmlAtomicValue)value).ValueAsLong); } if ((destinationType == XmlBaseConverter.SingleType) && (derivedType == XmlBaseConverter.XmlAtomicValueType)) { return((float)((XmlAtomicValue)value).ValueAs(XmlBaseConverter.SingleType)); } if (destinationType == XmlBaseConverter.XmlAtomicValueType) { if (derivedType == XmlBaseConverter.XmlAtomicValueType) { return((XmlAtomicValue)value); } if (derivedType == XmlBaseConverter.BooleanType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Boolean), (bool)value)); } if (derivedType == XmlBaseConverter.ByteType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.UnsignedByte), value)); } if (derivedType == XmlBaseConverter.ByteArrayType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Base64Binary), value)); } if (derivedType == XmlBaseConverter.DateTimeType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.DateTime), (DateTime)value)); } if (derivedType == XmlBaseConverter.DateTimeOffsetType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.DateTime), (DateTimeOffset)value)); } if (derivedType == XmlBaseConverter.DecimalType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Decimal), value)); } if (derivedType == XmlBaseConverter.DoubleType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Double), (double)value)); } if (derivedType == XmlBaseConverter.Int16Type) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Short), value)); } if (derivedType == XmlBaseConverter.Int32Type) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Int), (int)value)); } if (derivedType == XmlBaseConverter.Int64Type) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Long), (long)value)); } if (derivedType == XmlBaseConverter.SByteType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Byte), value)); } if (derivedType == XmlBaseConverter.SingleType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Float), value)); } if (derivedType == XmlBaseConverter.StringType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.String), (string)value)); } if (derivedType == XmlBaseConverter.TimeSpanType) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.Duration), value)); } if (derivedType == XmlBaseConverter.UInt16Type) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.UnsignedShort), value)); } if (derivedType == XmlBaseConverter.UInt32Type) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.UnsignedInt), value)); } if (derivedType == XmlBaseConverter.UInt64Type) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.UnsignedLong), value)); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.UriType)) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.AnyUri), value)); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XmlQualifiedNameType)) { return(new XmlAtomicValue(XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.QName), value, nsResolver)); } } if (destinationType == XmlBaseConverter.XPathItemType) { if (derivedType == XmlBaseConverter.XmlAtomicValueType) { return((XmlAtomicValue)value); } if (XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XPathNavigatorType)) { return((XPathNavigator)value); } } if ((destinationType == XmlBaseConverter.XPathNavigatorType) && XmlBaseConverter.IsDerivedFrom(derivedType, XmlBaseConverter.XPathNavigatorType)) { return(this.ToNavigator((XPathNavigator)value)); } if (destinationType == XmlBaseConverter.XPathItemType) { return((XPathItem)this.ChangeType(value, XmlBaseConverter.XmlAtomicValueType, nsResolver)); } if (derivedType == XmlBaseConverter.XmlAtomicValueType) { return(((XmlAtomicValue)value).ValueAs(destinationType, nsResolver)); } return(this.ChangeListType(value, destinationType, nsResolver)); }
public override int ToInt32(long value) { return(XmlBaseConverter.Int64ToInt32(value)); }
protected XmlListConverter(XmlBaseConverter atomicConverter) : base(atomicConverter) { this.atomicConverter = atomicConverter; }
public override object ChangeType(object value, Type destinationType, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } Type type = value.GetType(); if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if (destinationType == XmlBaseConverter.DecimalType) { return(this.ToDecimal(value)); } if (destinationType == XmlBaseConverter.Int32Type) { return(this.ToInt32(value)); } if (destinationType == XmlBaseConverter.Int64Type) { return(this.ToInt64(value)); } if (destinationType == XmlBaseConverter.StringType) { return(this.ToString(value, nsResolver)); } if (destinationType == XmlBaseConverter.XmlAtomicValueType) { if (type == XmlBaseConverter.DecimalType) { return(new XmlAtomicValue(base.SchemaType, value)); } if (type == XmlBaseConverter.Int32Type) { return(new XmlAtomicValue(base.SchemaType, (int)value)); } if (type == XmlBaseConverter.Int64Type) { return(new XmlAtomicValue(base.SchemaType, (long)value)); } if (type == XmlBaseConverter.StringType) { return(new XmlAtomicValue(base.SchemaType, (string)value)); } if (type == XmlBaseConverter.XmlAtomicValueType) { return((XmlAtomicValue)value); } } if (destinationType == XmlBaseConverter.XPathItemType) { if (type == XmlBaseConverter.DecimalType) { return(new XmlAtomicValue(base.SchemaType, value)); } if (type == XmlBaseConverter.Int32Type) { return(new XmlAtomicValue(base.SchemaType, (int)value)); } if (type == XmlBaseConverter.Int64Type) { return(new XmlAtomicValue(base.SchemaType, (long)value)); } if (type == XmlBaseConverter.StringType) { return(new XmlAtomicValue(base.SchemaType, (string)value)); } if (type == XmlBaseConverter.XmlAtomicValueType) { return((XmlAtomicValue)value); } } if (destinationType == XmlBaseConverter.ByteType) { return(XmlBaseConverter.Int32ToByte(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.Int16Type) { return(XmlBaseConverter.Int32ToInt16(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.SByteType) { return(XmlBaseConverter.Int32ToSByte(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.UInt16Type) { return(XmlBaseConverter.Int32ToUInt16(this.ToInt32(value))); } if (destinationType == XmlBaseConverter.UInt32Type) { return(XmlBaseConverter.Int64ToUInt32(this.ToInt64(value))); } if (destinationType == XmlBaseConverter.UInt64Type) { return(XmlBaseConverter.DecimalToUInt64(this.ToDecimal(value))); } if (type == XmlBaseConverter.ByteType) { return(this.ChangeType((int)((byte)value), destinationType)); } if (type == XmlBaseConverter.Int16Type) { return(this.ChangeType((int)((short)value), destinationType)); } if (type == XmlBaseConverter.SByteType) { return(this.ChangeType((int)((sbyte)value), destinationType)); } if (type == XmlBaseConverter.UInt16Type) { return(this.ChangeType((int)((ushort)value), destinationType)); } if (type == XmlBaseConverter.UInt32Type) { return(this.ChangeType((long)((uint)value), destinationType)); } if (type == XmlBaseConverter.UInt64Type) { return(this.ChangeType((decimal)((ulong)value), destinationType)); } return(this.ChangeListType(value, destinationType, nsResolver)); }
public override object ChangeType(string value, Type destinationType, IXmlNamespaceResolver nsResolver) { if (value == null) { throw new ArgumentNullException("value"); } if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == XmlBaseConverter.ObjectType) { destinationType = base.DefaultClrType; } if (destinationType == XmlBaseConverter.BooleanType) { return(XmlConvert.ToBoolean(value)); } if (destinationType == XmlBaseConverter.ByteType) { return(XmlBaseConverter.Int32ToByte(XmlConvert.ToInt32(value))); } if (destinationType == XmlBaseConverter.ByteArrayType) { return(XmlBaseConverter.StringToBase64Binary(value)); } if (destinationType == XmlBaseConverter.DateTimeType) { return(XmlBaseConverter.UntypedAtomicToDateTime(value)); } if (destinationType == XmlBaseConverter.DateTimeOffsetType) { return(XmlBaseConverter.UntypedAtomicToDateTimeOffset(value)); } if (destinationType == XmlBaseConverter.DecimalType) { return(XmlConvert.ToDecimal(value)); } if (destinationType == XmlBaseConverter.DoubleType) { return(XmlConvert.ToDouble(value)); } if (destinationType == XmlBaseConverter.Int16Type) { return(XmlBaseConverter.Int32ToInt16(XmlConvert.ToInt32(value))); } if (destinationType == XmlBaseConverter.Int32Type) { return(XmlConvert.ToInt32(value)); } if (destinationType == XmlBaseConverter.Int64Type) { return(XmlConvert.ToInt64(value)); } if (destinationType == XmlBaseConverter.SByteType) { return(XmlBaseConverter.Int32ToSByte(XmlConvert.ToInt32(value))); } if (destinationType == XmlBaseConverter.SingleType) { return(XmlConvert.ToSingle(value)); } if (destinationType == XmlBaseConverter.TimeSpanType) { return(XmlBaseConverter.StringToDuration(value)); } if (destinationType == XmlBaseConverter.UInt16Type) { return(XmlBaseConverter.Int32ToUInt16(XmlConvert.ToInt32(value))); } if (destinationType == XmlBaseConverter.UInt32Type) { return(XmlBaseConverter.Int64ToUInt32(XmlConvert.ToInt64(value))); } if (destinationType == XmlBaseConverter.UInt64Type) { return(XmlBaseConverter.DecimalToUInt64(XmlConvert.ToDecimal(value))); } if (destinationType == XmlBaseConverter.UriType) { return(XmlConvert.ToUri(value)); } if (destinationType == XmlBaseConverter.XmlAtomicValueType) { return(new XmlAtomicValue(base.SchemaType, value)); } if (destinationType == XmlBaseConverter.XmlQualifiedNameType) { return(XmlBaseConverter.StringToQName(value, nsResolver)); } if (destinationType == XmlBaseConverter.XPathItemType) { return(new XmlAtomicValue(base.SchemaType, value)); } if (destinationType == XmlBaseConverter.StringType) { return(value); } return(this.ChangeTypeWildcardSource(value, destinationType, nsResolver)); }