| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using System;
- using System.IO;
- using System.Xml;
- using System.Xml.Schema;
- using System.Xml.Serialization;
- public class Test
- {
- static char SEP = Path.DirectorySeparatorChar;
- public static void Main ()
- {
- RunTest ("msxsdtest");
- RunTest ("nisttest");
- RunTest ("suntest");
- }
-
- static void RunTest (string subdir)
- {
- Console.WriteLine ("Started: " + DateTime.Now);
- string basePath = @"Xsd-Test-Suite" + SEP;
- XmlDocument doc = new XmlDocument ();
- doc.Load (basePath + subdir + SEP + "tests-all.xml");
- foreach (XmlElement test in doc.SelectNodes ("/tests/test")) {
- // Test schema
- string schemaFile = test.SelectSingleNode ("@schema").InnerText;
- if (schemaFile.Length > 2)
- schemaFile = schemaFile.Substring (2);
- bool isValidSchema = test.SelectSingleNode ("@out_s").InnerText == "1";
- XmlSchema schema = null;
- XmlTextReader sxr = null;
- try {
- sxr = new XmlTextReader (basePath + schemaFile);
- schema = XmlSchema.Read (sxr, null);
- sxr.Close ();
- schema.Compile (null);
- if (!isValidSchema) {
- Console.WriteLine ("Incorrectly Valid schema : " + schemaFile);
- continue;
- }
- } catch (XmlSchemaException ex) {
- if (isValidSchema) {
- Console.WriteLine ("Incorrectly Invalid schema : " + schemaFile + " " + ex.Message);
- continue;
- }
- } catch (Exception ex) {
- Console.WriteLine ("Unexpected Exception on schema: " + schemaFile + " " + ex.Message);
- continue;
- } finally {
- sxr.Close ();
- }
- // Test instances
- string instanceFile = test.SelectSingleNode ("@instance").InnerText;
- if (instanceFile.Length == 0)
- continue;
- else if (instanceFile.StartsWith ("./"))
- instanceFile = instanceFile.Substring (2);
- bool isValidInstance = test.SelectSingleNode ("@out_x").InnerText == "1";
- XmlValidatingReader xvr = null;
- try {
- xvr = new XmlValidatingReader (new XmlTextReader (basePath + "\\" + instanceFile));
- xvr.Schemas.Add (schema);
- while (!xvr.EOF)
- xvr.Read ();
- if (!isValidInstance)
- Console.WriteLine ("Incorrectly Valid instance: " + schemaFile);
- } catch (XmlSchemaException ex) {
- if (isValidInstance)
- Console.WriteLine ("Incorrectly Invalid instance: " + schemaFile + " " + ex.Message);
- } catch (Exception ex) {
- Console.WriteLine ("Unexpected Exception on instance: " + schemaFile + " " + ex.Message);
- } finally {
- xvr.Close ();
- }
- }
- Console.WriteLine ("Finished: " + DateTime.Now);
- }
- }
|