private static void InitSimpleType(XsdBuilder builder, string value)
{
builder._xso = builder._simpleType = new XmlSchemaSimpleType();
switch (builder.ParentElement)
{
case SchemaNames.Token.XsdSchema:
builder._canIncludeImport = false; // disable import and include elements in schema
builder._schema.Items.Add(builder._simpleType);
break;
case SchemaNames.Token.XsdRedefine:
builder._redefine.Items.Add(builder._simpleType);
break;
case SchemaNames.Token.XsdAttribute:
if (builder._attribute.SchemaType != null)
{
builder.SendValidationEvent(SR.Sch_DupXsdElement, "simpleType");
}
builder._attribute.SchemaType = builder._simpleType;
break;
case SchemaNames.Token.XsdElement:
if (builder._element.SchemaType != null)
{
builder.SendValidationEvent(SR.Sch_DupXsdElement, "simpleType");
}
if (builder._element.Constraints.Count != 0)
{
builder.SendValidationEvent(SR.Sch_TypeAfterConstraints, null);
}
builder._element.SchemaType = builder._simpleType;
break;
case SchemaNames.Token.XsdSimpleTypeList:
if (builder._simpleTypeList.ItemType != null)
{
builder.SendValidationEvent(SR.Sch_DupXsdElement, "simpleType");
}
builder._simpleTypeList.ItemType = builder._simpleType;
break;
case SchemaNames.Token.XsdSimpleTypeRestriction:
if (builder._simpleTypeRestriction.BaseType != null)
{
builder.SendValidationEvent(SR.Sch_DupXsdElement, "simpleType");
}
builder._simpleTypeRestriction.BaseType = builder._simpleType;
break;
case SchemaNames.Token.XsdSimpleContentRestriction:
if (builder._simpleContentRestriction.BaseType != null)
{
builder.SendValidationEvent(SR.Sch_DupXsdElement, "simpleType");
}
if (
builder._simpleContentRestriction.Attributes.Count != 0 ||
builder._simpleContentRestriction.AnyAttribute != null ||
builder._simpleContentRestriction.Facets.Count != 0
)
{
builder.SendValidationEvent(SR.Sch_SimpleTypeRestriction, null);
}
builder._simpleContentRestriction.BaseType = builder._simpleType;
break;
case SchemaNames.Token.XsdSimpleTypeUnion:
builder._simpleTypeUnion.BaseTypes.Add(builder._simpleType);
break;
}
}