public void InternalSchemaSetShouldUseSeparateXmlResolver() { CXmlTestResolver res = new CXmlTestResolver(); CResolverHolder holder = new CResolverHolder(); res.CalledResolveUri += new XmlTestResolverEventHandler(holder.CallBackResolveUri); res.CalledGetEntity += new XmlTestResolverEventHandler(holder.CallBackGetEntity); XmlNamespaceManager manager = new XmlNamespaceManager(new NameTable()); XmlSchemaValidator val = new XmlSchemaValidator(new NameTable(), new XmlSchemaSet(){ XmlResolver = new XmlUrlResolver()}, manager, AllFlags); val.XmlResolver = res; val.Initialize(); val.AddSchema(XmlSchema.Read(XmlReader.Create(TestData + XSDFILE_VALIDATE_ATTRIBUTE), null)); // this schema has xs:import val.ValidateElement("NoAttributesElement", "", null); Assert.True(!holder.IsCalledResolveUri); Assert.True(!holder.IsCalledGetEntity); return; }
public void CustomXmlNameSpaceResolverImplementation() { XmlSchemaValidator val; XmlSchemaInfo info = new XmlSchemaInfo(); XmlSchemaSet sch = new XmlSchemaSet(); ObservedNamespaceManager nsManager = new ObservedNamespaceManager(new NameTable()); nsManager.AddNamespace("n1", "uri:tempuri"); val = new XmlSchemaValidator(new NameTable(), sch, nsManager, AllFlags); val.AddSchema(XmlSchema.Read(XmlReader.Create(new StringReader("<?xml version=\"1.0\" ?>\n" + "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"\n" + " xmlns:n1=\"uri:tempuri\"\n" + " targetNamespace=\"uri:tempuri1\">\n" + " <xs:complexType name=\"foo\">\n" + " <xs:sequence>\n" + " <xs:element name=\"bar\" />\n" + " </xs:sequence>\n" + " </xs:complexType>\n" + "</xs:schema>")), null)); val.Initialize(); val.ValidateElement("root", "", info, "n1:foo", null, null, null); Assert.True(nsManager.IsLookupNamespaceCalled); return; }