public void v10()
{
XmlCachedSchemaSetResolver resolver = new XmlCachedSchemaSetResolver();
XmlTextReader r = new XmlTextReader(Path.Combine(TestData._Root, @"RedefineEmployee.xsd"));
XmlSchema s = XmlSchema.Read(r, null);
resolver.Add(new Uri(s.SourceUri), s);
XmlTextReader r2 = new XmlTextReader(Path.Combine(TestData._Root, @"BaseEmployee2.xsd"));
XmlSchema s2 = XmlSchema.Read(r2, null);
resolver.Add(new Uri(s2.SourceUri), s2);
XmlSchemaSet set = new XmlSchemaSet();
set.ValidationEventHandler += new ValidationEventHandler(callback);
set.XmlResolver = resolver;
set.Add(s2);
Assert.Equal(set.Count, 1);
Assert.Equal(set.Contains(s2), true);
Assert.Equal(set.IsCompiled, false);
set.Add(s);
Assert.Equal(set.Count, 2);
Assert.Equal(set.Contains(s), true);
Assert.Equal(set.IsCompiled, false);
set.Compile();
Assert.Equal(set.Count, 2);
Assert.Equal(set.Contains(s2), true);
Assert.Equal(set.Contains(s), true);
Assert.Equal(set.IsCompiled, true);
XmlTextReader r3 = new XmlTextReader(Path.Combine(TestData._Root, @"BaseEmployee2.xsd"));
XmlSchema s3 = XmlSchema.Read(r3, null);
resolver.Add(new Uri(s3.SourceUri), s3);
//Clear includes in S
foreach (XmlSchemaExternal ext in s.Includes)
{
ext.Schema = null;
}
XmlSchemaSet set2 = new XmlSchemaSet();
set2.ValidationEventHandler += new ValidationEventHandler(callback);
set2.XmlResolver = resolver;
set2.Add(s3);
Assert.Equal(set2.Count, 1);
Assert.Equal(set2.Contains(s2), false);
Assert.Equal(set2.Contains(s), false);
Assert.Equal(set2.Contains(s3), true);
Assert.Equal(set2.IsCompiled, false);
set2.Add(s);
Assert.Equal(set2.Count, 2);
Assert.Equal(set2.Contains(s2), false);
Assert.Equal(set2.Contains(s), true);
Assert.Equal(set2.Contains(s3), true);
Assert.Equal(set2.IsCompiled, false);
set2.Compile();
Assert.Equal(set2.Count, 2);
Assert.Equal(set2.Contains(s2), false);
Assert.Equal(set2.Contains(s), true);
Assert.Equal(set2.Contains(s3), true);
Assert.Equal(set2.IsCompiled, true);
Assert.Equal(errorCount, 0);
}