public Generator_NMTOKEN(CompiledFacets rFacets) : base(rFacets) { }
public Generator_base64Binary(CompiledFacets rFacets) { CheckFacets(rFacets); }
public Generator_float(CompiledFacets rFacets) { CheckFacets(rFacets); }
public Generator_double(CompiledFacets rFacets) { CheckFacets(rFacets); }
public Generator_duration(CompiledFacets rFacets) { CheckFacets(rFacets); }
private static XmlValueGenerator CreateListGenerator(XmlSchemaDatatype dtype, CompiledFacets facets, int listLength) { var itemType = (XmlSchemaDatatype)dtype.GetType().InvokeMember("itemType", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, dtype, null); var list_genr = new Generator_List(facets); list_genr.ListLength = listLength; list_genr.AddGenerator(XmlValueGenerator.CreateGenerator(itemType, listLength)); return list_genr; }
public Generator_decimal(CompiledFacets rFacets) { CheckFacets(rFacets); }
public Generator_short(CompiledFacets rFacets) { maxBound = 32767; minBound = -32768; CheckFacets(rFacets); }
public Generator_string(CompiledFacets rFacets) { if ( rFacets != null ) { CheckFacets(rFacets); } }
public Generator_positiveInteger(CompiledFacets rFacets) { startValue = 1; minBound = 1; CheckFacets(rFacets); }
public Generator_QName(CompiledFacets rFacets) { Prefix = "qname"; CheckFacets(rFacets); }
public Generator_normalizedString(CompiledFacets rFacets) : base(rFacets) { }
public Generator_nonPositiveInteger(CompiledFacets rFacets) { startValue = 0; increment = 1; maxBound = 0; CheckFacets(rFacets); }
public Generator_nonNegativeInteger(CompiledFacets rFacets) { startValue = 0; minBound = 0; CheckFacets(rFacets); }
public Generator_unsignedShort(CompiledFacets rFacets) { maxBound = 65535; CheckFacets(rFacets); }
public Generator_dateTime(CompiledFacets rFacets) { CheckFacets(rFacets); }
internal static XmlValueGenerator CreateGenerator(XmlSchemaDatatype datatype, int listLength) { var typeCode = datatype.TypeCode; var restriction = datatype.GetType().InvokeMember("Restriction", BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Instance, null, datatype, null); var rFacets = new CompiledFacets(restriction); XmlValueGenerator generator; if ( datatype.Variety == XmlSchemaDatatypeVariety.Union ) { generator = CreateUnionGenerator(datatype, rFacets, listLength); } else if ( datatype.Variety == XmlSchemaDatatypeVariety.List ) { generator = CreateListGenerator(datatype, rFacets, listLength); } else { switch ( typeCode ) { case XmlTypeCode.None: generator = AnyGenerator; break; case XmlTypeCode.Item: generator = AnyGenerator; break; case XmlTypeCode.AnyAtomicType: generator = AnySimpleTypeGenerator; break; case XmlTypeCode.String: generator = new Generator_string(rFacets); break; case XmlTypeCode.Boolean: generator = new Generator_boolean(); break; case XmlTypeCode.Float: generator = new Generator_float(rFacets); break; case XmlTypeCode.Double: generator = new Generator_double(rFacets); break; case XmlTypeCode.AnyUri: generator = new Generator_anyURI(rFacets); break; case XmlTypeCode.Integer: generator = new Generator_integer(rFacets); break; case XmlTypeCode.Decimal: generator = new Generator_decimal(rFacets); break; case XmlTypeCode.NonPositiveInteger: generator = new Generator_nonPositiveInteger(rFacets); break; case XmlTypeCode.NegativeInteger: generator = new Generator_negativeInteger(rFacets); break; case XmlTypeCode.Long: generator = new Generator_long(rFacets); break; case XmlTypeCode.Int: generator = new Generator_int(rFacets); break; case XmlTypeCode.Short: generator = new Generator_short(rFacets); break; case XmlTypeCode.Byte: generator = new Generator_byte(rFacets); break; case XmlTypeCode.NonNegativeInteger: generator = new Generator_nonNegativeInteger(rFacets); break; case XmlTypeCode.UnsignedLong: generator = new Generator_unsignedLong(rFacets); break; case XmlTypeCode.UnsignedInt: generator = new Generator_unsignedInt(rFacets); break; case XmlTypeCode.UnsignedShort: generator = new Generator_unsignedShort(rFacets); break; case XmlTypeCode.UnsignedByte: generator = new Generator_unsignedByte(rFacets); break; case XmlTypeCode.PositiveInteger: generator = new Generator_positiveInteger(rFacets); break; case XmlTypeCode.Duration: generator = new Generator_duration(rFacets); break; case XmlTypeCode.DateTime: generator = new Generator_dateTime(rFacets); break; case XmlTypeCode.Date: generator = new Generator_date(rFacets); break; case XmlTypeCode.GYearMonth: generator = new Generator_gYearMonth(rFacets); break; case XmlTypeCode.GYear: generator = new Generator_gYear(rFacets); break; case XmlTypeCode.GMonthDay: generator = new Generator_gMonthDay(rFacets); break; case XmlTypeCode.GDay: generator = new Generator_gDay(rFacets); break; case XmlTypeCode.GMonth: generator = new Generator_gMonth(rFacets); break; case XmlTypeCode.Time: generator = new Generator_time(rFacets); break; case XmlTypeCode.HexBinary: generator = new Generator_hexBinary(rFacets); break; case XmlTypeCode.Base64Binary: generator = new Generator_base64Binary(rFacets); break; case XmlTypeCode.QName: generator = new Generator_QName(rFacets); break; case XmlTypeCode.Notation: generator = new Generator_Notation(rFacets); break; case XmlTypeCode.NormalizedString: generator = new Generator_normalizedString(rFacets); break; case XmlTypeCode.Token: generator = new Generator_token(rFacets); break; case XmlTypeCode.Language: generator = new Generator_language(rFacets); break; case XmlTypeCode.NmToken: generator = new Generator_NMTOKEN(rFacets); break; case XmlTypeCode.Name: generator = new Generator_Name(rFacets); break; case XmlTypeCode.NCName: generator = new Generator_NCName(rFacets); break; case XmlTypeCode.Id: g_ID.CheckFacets(rFacets); generator = g_ID; break; case XmlTypeCode.Idref: g_IDREF.CheckFacets(rFacets); generator = g_IDREF; break; default: generator = AnyGenerator; break; } } generator.SetDatatype(datatype); return generator; }
public Generator_time(CompiledFacets rFacets) { step = XmlConvert.ToTimeSpan("PT1M30S"); CheckFacets(rFacets); }
private static XmlValueGenerator CreateUnionGenerator(XmlSchemaDatatype dtype, CompiledFacets facets, int listLength) { var memberTypes = (XmlSchemaSimpleType[])dtype.GetType().InvokeMember("types", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, dtype, null); var union_genr = new Generator_Union(facets); foreach ( XmlSchemaSimpleType st1 in memberTypes ) { union_genr.AddGenerator(XmlValueGenerator.CreateGenerator(st1.Datatype, listLength)); } return union_genr; }
public Generator_token(CompiledFacets rFacets) { Prefix = "Token"; CheckFacets(rFacets); }
public void CheckFacets(CompiledFacets genFacets) { if ( genFacets != null ) { var flags = genFacets.Flags; if ( ( flags & RestrictionFlags.MaxInclusive ) != 0 ) { maxBound = (decimal)Convert.ChangeType(genFacets.MaxInclusive, typeof(decimal)); } if ( ( flags & RestrictionFlags.MaxExclusive ) != 0 ) { maxBound = (decimal)Convert.ChangeType(genFacets.MaxExclusive, typeof(decimal)) - 1; } if ( ( flags & RestrictionFlags.MinInclusive ) != 0 ) { startValue = (decimal)Convert.ChangeType(genFacets.MinInclusive, typeof(decimal)); minBound = startValue; } if ( ( flags & RestrictionFlags.MinExclusive ) != 0 ) { startValue = (decimal)Convert.ChangeType(genFacets.MinExclusive, typeof(decimal)) + 1; minBound = startValue; } if ( ( flags & RestrictionFlags.Enumeration ) != 0 ) { AllowedValues = genFacets.Enumeration; } if ( ( flags & RestrictionFlags.TotalDigits ) != 0 ) { var totalDigitsValue = (decimal)Math.Pow(10, genFacets.TotalDigits) - 1; if ( totalDigitsValue <= maxBound ) { //Use the lower of totalDigits value and maxInc/maxEx maxBound = totalDigitsValue; minBound = 0 - maxBound; } } if ( ( flags & RestrictionFlags.FractionDigits ) != 0 && genFacets.FractionDigits > 0 ) { if ( ( flags & RestrictionFlags.TotalDigits ) != 0 ) { //if (T,F) is (6,3) the max value is not 999.999 but 99999.9d but we are going with the smaller range on the integral part to generate more varied fractional part. int range = genFacets.TotalDigits - genFacets.FractionDigits; double integralPart = Math.Pow(10, range) - 1; double fractionPart = integralPart / Math.Pow(10, range); maxBound = (decimal)( integralPart + fractionPart ); minBound = 0 - maxBound; step = (decimal)( 1 / Math.Pow(10, range) ); } //If there is no TotalDigits facet, we use the step for decimal as 0.1 anyway which will satisfy fractionDigits >= 1 } if ( maxBound <= 0 ) { startValue = maxBound; occurNum++; stateStep = 2; } if ( startValue == minBound ) { stateStep = 2; } } }
public void CheckFacets(CompiledFacets genFacets) { if ( genFacets != null ) { var flags = genFacets.Flags; if ( ( flags & RestrictionFlags.MaxInclusive ) != 0 ) { maxBound = (DateTime)genFacets.MaxInclusive; } if ( ( flags & RestrictionFlags.MaxExclusive ) != 0 ) { maxBound = ( (DateTime)genFacets.MaxExclusive ).Subtract(step); } if ( ( flags & RestrictionFlags.MinInclusive ) != 0 ) { startValue = (DateTime)genFacets.MinInclusive; minBound = startValue; } if ( ( flags & RestrictionFlags.MinExclusive ) != 0 ) { startValue = ( (DateTime)genFacets.MinExclusive ).Add(step); minBound = startValue; } if ( ( flags & RestrictionFlags.Enumeration ) != 0 ) { AllowedValues = genFacets.Enumeration; } if ( DateTime.Compare(startValue, maxBound) == 0 ) { occurNum++; stateStep = 2; } if ( DateTime.Compare(startValue, minBound) == 0 ) { stateStep = 2; } } }
public Generator_anyURI(CompiledFacets rFacets) { Prefix = "http://uri"; CheckFacets(rFacets); }
public Generator_unsignedByte(CompiledFacets rFacets) { maxBound = 255; CheckFacets(rFacets); }
public void CheckFacets(CompiledFacets genFacets) { if ( genFacets != null ) { var flags = genFacets.Flags; if ( ( flags & RestrictionFlags.MaxInclusive ) != 0 ) { maxBound = (TimeSpan)genFacets.MaxInclusive; } if ( ( flags & RestrictionFlags.MaxExclusive ) != 0 ) { maxBound = (TimeSpan)genFacets.MaxExclusive - endValue; } if ( ( flags & RestrictionFlags.MinInclusive ) != 0 ) { startValue = (TimeSpan)genFacets.MinInclusive; minBound = startValue; } if ( ( flags & RestrictionFlags.MinExclusive ) != 0 ) { startValue = (TimeSpan)genFacets.MinExclusive + endValue; minBound = startValue; } if ( ( flags & RestrictionFlags.Enumeration ) != 0 ) { AllowedValues = genFacets.Enumeration; } if ( TimeSpan.Compare(maxBound, TimeSpan.Zero) == -1 ) { startValue = maxBound; occurNum++; stateStep = 2; } if ( TimeSpan.Compare(minBound, startValue) == 0 ) { stateStep = 2; } } }
public Generator_unsignedInt(CompiledFacets rFacets) { maxBound = 4294967295; CheckFacets(rFacets); }
internal void CheckFacets(CompiledFacets genFacets) { if ( genFacets != null ) { var flags = genFacets.Flags; if ( ( flags & RestrictionFlags.Length ) != 0 ) { length = genFacets.Length; } if ( ( flags & RestrictionFlags.MinLength ) != 0 ) { minLength = genFacets.MinLength; } if ( ( flags & RestrictionFlags.MaxLength ) != 0 ) { maxLength = genFacets.MaxLength; } if ( ( flags & RestrictionFlags.Enumeration ) != 0 ) { AllowedValues = genFacets.Enumeration; } } }
public Generator_unsignedLong(CompiledFacets rFacets) { maxBound = 18446744073709551615; CheckFacets(rFacets); }
public void CheckFacets(CompiledFacets genFacets) { if ( genFacets != null ) { var flags = genFacets.Flags; if ( ( flags & RestrictionFlags.MaxInclusive ) != 0 ) { maxBound = (float)genFacets.MaxInclusive; } if ( ( flags & RestrictionFlags.MaxExclusive ) != 0 ) { maxBound = (float)genFacets.MaxExclusive - 1; } if ( ( flags & RestrictionFlags.MinInclusive ) != 0 ) { startValue = (float)genFacets.MinInclusive; minBound = startValue; } if ( ( flags & RestrictionFlags.MinExclusive ) != 0 ) { startValue = (float)genFacets.MinExclusive + 1; minBound = startValue; } if ( ( flags & RestrictionFlags.Enumeration ) != 0 ) { AllowedValues = genFacets.Enumeration; } if ( maxBound <= 0 ) { startValue = maxBound; occurNum++; stateStep = 2; } if ( startValue == minBound ) { stateStep = 2; } } }
public Generator_negativeInteger(CompiledFacets rFacets) { startValue = -1; maxBound = -1; CheckFacets(rFacets); }