AddSchema() public méthode

public AddSchema ( XmlSchema schema ) : void
schema XmlSchema
Résultat void
Exemple #1
0
        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;
        }