public void v11() { 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.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); XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.Schemas = set; using (XmlReader reader = XmlReader.Create(Path.Combine(TestData._Root, "EmployeesDefaultPrefix.xml"), settings)) { while (reader.Read()) ; } XmlTextReader r3 = new XmlTextReader(Path.Combine(TestData._Root, @"BaseEmployee2.xsd")); XmlSchema s3 = XmlSchema.Read(r3, null); resolver.Add(new Uri(s3.SourceUri), s3); XmlSchemaSet set2 = new XmlSchemaSet(); 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); foreach (XmlSchemaRedefine redefine in s.Includes) { redefine.Schema = null; } 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); settings.Schemas = set2; using (XmlReader reader = XmlReader.Create(Path.Combine(TestData._Root, "EmployeesDefaultPrefix.xml"), settings)) { while (reader.Read()) ; } Assert.Equal(errorCount, 0); }
public void v11() { 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.XmlResolver = resolver; set.Add(s2); Assert.Equal(1, set.Count); Assert.True(set.Contains(s2)); Assert.False(set.IsCompiled); set.Add(s); Assert.Equal(2, set.Count); Assert.True(set.Contains(s)); Assert.False(set.IsCompiled); set.Compile(); Assert.Equal(2, set.Count); Assert.True(set.Contains(s2)); Assert.True(set.Contains(s)); Assert.True(set.IsCompiled); XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.Schemas = set; using (XmlReader reader = XmlReader.Create(Path.Combine(TestData._Root, "EmployeesDefaultPrefix.xml"), settings)) { while (reader.Read()) { ; } } XmlTextReader r3 = new XmlTextReader(Path.Combine(TestData._Root, @"BaseEmployee2.xsd")); XmlSchema s3 = XmlSchema.Read(r3, null); resolver.Add(new Uri(s3.SourceUri), s3); XmlSchemaSet set2 = new XmlSchemaSet(); set2.XmlResolver = resolver; set2.Add(s3); Assert.Equal(1, set2.Count); Assert.False(set2.Contains(s2)); Assert.False(set2.Contains(s)); Assert.True(set2.Contains(s3)); Assert.False(set2.IsCompiled); foreach (XmlSchemaRedefine redefine in s.Includes) { redefine.Schema = null; } set2.Add(s); Assert.Equal(2, set2.Count); Assert.False(set2.Contains(s2)); Assert.True(set2.Contains(s)); Assert.True(set2.Contains(s3)); Assert.False(set2.IsCompiled); set2.Compile(); Assert.Equal(2, set2.Count); Assert.False(set2.Contains(s2)); Assert.True(set2.Contains(s)); Assert.True(set2.Contains(s3)); Assert.True(set2.IsCompiled); settings.Schemas = set2; using (XmlReader reader = XmlReader.Create(Path.Combine(TestData._Root, "EmployeesDefaultPrefix.xml"), settings)) { while (reader.Read()) { ; } } Assert.Equal(0, errorCount); }
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); }
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(1, set.Count); Assert.True(set.Contains(s2)); Assert.False(set.IsCompiled); set.Add(s); Assert.Equal(2, set.Count); Assert.True(set.Contains(s)); Assert.False(set.IsCompiled); set.Compile(); Assert.Equal(2, set.Count); Assert.True(set.Contains(s2)); Assert.True(set.Contains(s)); Assert.True(set.IsCompiled); 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(1, set2.Count); Assert.False(set2.Contains(s2)); Assert.False(set2.Contains(s)); Assert.True(set2.Contains(s3)); Assert.False(set2.IsCompiled); set2.Add(s); Assert.Equal(2, set2.Count); Assert.False(set2.Contains(s2)); Assert.True(set2.Contains(s)); Assert.True(set2.Contains(s3)); Assert.False(set2.IsCompiled); set2.Compile(); Assert.Equal(2, set2.Count); Assert.False(set2.Contains(s2)); Assert.True(set2.Contains(s)); Assert.True(set2.Contains(s3)); Assert.True(set2.IsCompiled); Assert.Equal(0, errorCount); }