public void v51(object param0, object param1, object param2, object param3)
{
bWarningCallback = false;
bErrorCallback = false;
string mainFile = Path.Combine(TestData._Root, param0.ToString());
string include1 = Path.Combine(TestData._Root, param1.ToString());
string include2 = Path.Combine(TestData._Root, param2.ToString());
string xmlFile = Path.Combine(TestData._Root, "bug382119.xml");
bool IsImport = (bool)param3;
XmlSchemaSet set1 = new XmlSchemaSet();
set1.XmlResolver = new XmlUrlResolver();
set1.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);
XmlSchema includedSchema = set1.Add(null, include1);
set1.Compile();
XmlSchemaSet set = new XmlSchemaSet();
set.XmlResolver = new XmlUrlResolver();
set.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);
XmlSchema mainSchema = set.Add(null, mainFile);
set.Compile();
_output.WriteLine("First validation ***************");
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);
settings.ValidationType = ValidationType.Schema;
settings.Schemas = set;
XmlReader reader = XmlReader.Create(xmlFile, settings);
while (reader.Read()) { }
CError.Compare(bWarningCallback, false, "Warning count mismatch");
CError.Compare(bErrorCallback, true, "Error count mismatch");
if (IsImport == true)
set.Remove(((XmlSchemaExternal)mainSchema.Includes[0]).Schema);
_output.WriteLine("re-setting include");
XmlSchema reParsedInclude = LoadSchema(include2, include1);
((XmlSchemaExternal)mainSchema.Includes[0]).Schema = reParsedInclude;
_output.WriteLine("Calling reprocess");
set.Reprocess(mainSchema);
set.Compile();
bWarningCallback = false;
bErrorCallback = false;
_output.WriteLine("Second validation ***************");
settings.Schemas = set;
reader = XmlReader.Create(xmlFile, settings);
while (reader.Read()) { }
CError.Compare(bWarningCallback, false, "Warning count mismatch");
CError.Compare(bErrorCallback, false, "Error count mismatch");
//Editing the include again
_output.WriteLine("Re-adding include to set1");
XmlSchema reParsedInclude2 = LoadSchema(include1, include1);
set1.Remove(includedSchema);
set1.Add(reParsedInclude2);
set1.Compile();
if (IsImport == true)
set.Remove(((XmlSchemaExternal)mainSchema.Includes[0]).Schema);
((XmlSchemaExternal)mainSchema.Includes[0]).Schema = reParsedInclude2;
set.Reprocess(mainSchema);
set.Compile();
bWarningCallback = false;
bErrorCallback = false;
_output.WriteLine("Third validation, Expecting errors ***************");
settings.Schemas = set;
reader = XmlReader.Create(xmlFile, settings);
while (reader.Read()) { }
CError.Compare(bWarningCallback, false, "Warning count mismatch");
CError.Compare(bErrorCallback, true, "Error count mismatch");
return;
}