private static void InitFacet(XsdBuilder builder, string value)
{
switch (builder.CurrentElement)
{
case SchemaNames.Token.XsdEnumeration:
builder._facet = new XmlSchemaEnumerationFacet();
break;
case SchemaNames.Token.XsdLength:
builder._facet = new XmlSchemaLengthFacet();
break;
case SchemaNames.Token.XsdMaxExclusive:
builder._facet = new XmlSchemaMaxExclusiveFacet();
break;
case SchemaNames.Token.XsdMaxInclusive:
builder._facet = new XmlSchemaMaxInclusiveFacet();
break;
case SchemaNames.Token.XsdMaxLength:
builder._facet = new XmlSchemaMaxLengthFacet();
break;
case SchemaNames.Token.XsdMinExclusive:
builder._facet = new XmlSchemaMinExclusiveFacet();
break;
case SchemaNames.Token.XsdMinInclusive:
builder._facet = new XmlSchemaMinInclusiveFacet();
break;
case SchemaNames.Token.XsdMinLength:
builder._facet = new XmlSchemaMinLengthFacet();
break;
case SchemaNames.Token.XsdPattern:
builder._facet = new XmlSchemaPatternFacet();
break;
case SchemaNames.Token.XsdTotalDigits:
builder._facet = new XmlSchemaTotalDigitsFacet();
break;
case SchemaNames.Token.XsdFractionDigits:
builder._facet = new XmlSchemaFractionDigitsFacet();
break;
case SchemaNames.Token.XsdWhitespace:
builder._facet = new XmlSchemaWhiteSpaceFacet();
break;
}
builder._xso = builder._facet;
if (SchemaNames.Token.XsdSimpleTypeRestriction == builder.ParentElement)
{
builder._simpleTypeRestriction.Facets.Add(builder._facet);
}
else
{
if (builder._simpleContentRestriction.Attributes.Count != 0 || (builder._simpleContentRestriction.AnyAttribute != null))
{
builder.SendValidationEvent(SR.Sch_InvalidFacetPosition, null);
}
builder._simpleContentRestriction.Facets.Add(builder._facet);
}
}