public void XmlSchemaSetCompileAfterRemovingLastSchemaInTheSetIsNotClearingCachedCompiledInformationUsedForValidation_2()
{
string schemaXml = @"<Schema:schema xmlns:Schema='http://www.w3.org/2001/XMLSchema' targetNamespace='uri1'>
<Schema:element name='doc' type='Schema:string'/>
</Schema:schema>";
string instanceXml = @"<doc xmlns='uri1'>some</doc>";
XmlSchemaSet ss = new XmlSchemaSet(new NameTable());
XmlSchema schema = XmlSchema.Read(new StringReader(schemaXml), null);
ss.Add(schema);
Assert.Equal(ss.Count, 1);
ss.Compile();
Assert.Equal(ss.Count, 1);
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas = ss;
settings.ValidationType = ValidationType.Schema;
using (XmlReader xmlReader = XmlReader.Create(new StringReader(instanceXml), settings))
{
while (xmlReader.Read()) ;
}
XmlSchema removedSchema = ss.Remove(schema);
Assert.Equal(ss.Count, 0);
ss.Compile();
Assert.Equal(ss.Count, 0);
settings = new XmlReaderSettings();
settings.Schemas = ss;
settings.ValidationType = ValidationType.Schema;
using (XmlReader xmlReader = XmlReader.Create(new StringReader(instanceXml), settings))
{
while (xmlReader.Read()) ;
}
return;
}