public void v50()
{
bWarningCallback = false;
bErrorCallback = false;
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlSchema schema = new XmlSchema();
schemaSet.Add(schema);
schema.TargetNamespace = "http://myns/";
//type
XmlSchemaType schemaType = new XmlSchemaComplexType();
schemaType.Name = "MySimpleType";
schema.Items.Add(schemaType);
schemaSet.Reprocess(schema);
schemaSet.Compile();
//element
XmlSchemaElement schemaElement = new XmlSchemaElement();
schemaElement.Name = "MyElement";
schema.Items.Add(schemaElement);
schemaSet.Reprocess(schema);
schemaSet.Compile();
//attribute
XmlSchemaAttribute schemaAttribute = new XmlSchemaAttribute();
schemaAttribute.Name = "MyAttribute";
schema.Items.Add(schemaAttribute);
schemaSet.Reprocess(schema);
schemaSet.Compile();
schemaSet.Reprocess(schema);
schemaSet.Compile();
schema.Items.Remove(schemaType);//what is the best way to remove it?
schema.Items.Remove(schemaElement);
schema.Items.Remove(schemaAttribute);
schemaSet.Reprocess(schema);
schemaSet.Compile();
schemaType = new XmlSchemaComplexType();
schemaType.Name = "MySimpleType";
schema.Items.Add(schemaType);
schema.Items.Add(schemaElement);
schema.Items.Add(schemaAttribute);
schemaSet.Reprocess(schema);
schemaSet.Compile();
CError.Compare(schemaSet.GlobalElements.Count, 1, "Element count mismatch!");
CError.Compare(schemaSet.GlobalAttributes.Count, 1, "Attributes count mismatch!");
CError.Compare(schemaSet.GlobalTypes.Count, 2, "Types count mismatch!");
return;
}