System.Xml.Tests.TCEndValidation.TestForRootLevelIdentityConstraints_Valid_IDREFMissingInvalid_IgnoreIdentityConstraintsIsSetInvalid C# (CSharp) Méthode

TestForRootLevelIdentityConstraints_Valid_IDREFMissingInvalid_IgnoreIdentityConstraintsIsSetInvalid() private méthode

private TestForRootLevelIdentityConstraints_Valid_IDREFMissingInvalid_IgnoreIdentityConstraintsIsSetInvalid ( String validity ) : void
validity String
Résultat void
        public void TestForRootLevelIdentityConstraints_Valid_IDREFMissingInvalid_IgnoreIdentityConstraintsIsSetInvalid(String validity)
        {
            XmlSchemaValidator val;
            XmlSchemaInfo info = new XmlSchemaInfo();
            string[] keys = new string[] { };
            string[] keyrefs = new string[] { };

            switch (validity)
            {
                case "valid":
                    keys = new string[] { "a1", "a2" };
                    keyrefs = new string[] { "a1", "a1", "a2" };
                    break;

                case "missing":
                    keys = new string[] { "a1", "a2" };
                    keyrefs = new string[] { "a1", "a1", "a3" };
                    break;

                case "ignore":
                    keys = new string[] { "a1", "a1" };
                    keyrefs = new string[] { "a2", "a2" };
                    break;

                default:
                    Assert.True(false);
                    break;
            }

            if (validity == "ignore")
                val = CreateValidator(XSDFILE_IDENTITY_CONSTRAINS, "", XmlSchemaValidationFlags.ReportValidationWarnings | XmlSchemaValidationFlags.ProcessSchemaLocation | XmlSchemaValidationFlags.ProcessInlineSchema);
            else
                val = CreateValidator(XSDFILE_IDENTITY_CONSTRAINS);

            val.Initialize();

            val.ValidateElement("rootIDREFs", "", info);
            val.ValidateEndOfAttributes(null);

            foreach (string str in keyrefs)
            {
                val.ValidateElement("foo", "", info);
                val.ValidateAttribute("attr", "", StringGetter(str), info);
                val.ValidateEndOfAttributes(null);
                val.ValidateEndElement(info);
            }

            val.ValidateEndElement(info);

            val.ValidateElement("rootIDs", "", info);
            val.ValidateEndOfAttributes(null);

            foreach (string str in keys)
            {
                val.ValidateElement("foo", "", info);
                val.ValidateAttribute("attr", "", StringGetter(str), info);
                val.ValidateEndOfAttributes(null);
                val.ValidateEndElement(info);
            }

            val.ValidateEndElement(info);

            if (validity == "missing")
            {
                try
                {
                    val.EndValidation();
                    Assert.True(false);
                }
                catch (XmlSchemaValidationException)
                {
                    //XmlExceptionVerifier.IsExceptionOk(e, "Sch_UndeclaredId", new string[] { "a3" });
                    return;
                }
            }
            else
                val.EndValidation();

            return;
        }
    }