C# &引用;找不到元素的架构信息…“;在XML文档中

C# &引用;找不到元素的架构信息…“;在XML文档中,c#,xml,validation,C#,Xml,Validation,我正在尝试验证GXL XML验证器 <?xml version="1.0"?> <!DOCTYPE gxl SYSTEM "http://www.gupro.de/GXL/gxl-1.0.dtd"> <!-- attributes 05.02.2002 --> <gxl xmlns:xlink="http://www.w3.org/1999/xlink"> <graph id="attributes-instance">

我正在尝试验证GXL XML验证器

<?xml version="1.0"?>
<!DOCTYPE gxl SYSTEM "http://www.gupro.de/GXL/gxl-1.0.dtd">
<!-- attributes 05.02.2002  -->
<gxl xmlns:xlink="http://www.w3.org/1999/xlink">
    <graph id="attributes-instance">
        <type xlink:href="../../../schema/gxl/attributes/attributesSchema.gxl#attributesSchema"/>
        <node id="p">
            <type xlink:href="../../../schema/gxl/attributes/attributesSchema.gxl#Prog"/>
            <attr name="file">
                <seq>
                    <string>Ric</string>
                    <string>Andy</string>
                    <string>Susan</string>
                    <string>Andreas</string>
                </seq>
            </attr>
        </node>
    </graph>
</gxl>
是否有任何方法可以判断两个验证器是否产生相同的警告,只是Validome没有报告,或者验证器之间是否存在差异

另外,为什么“找不到元素的模式信息…”会是一个警告而不是更严重的错误?您不需要模式信息来拥有有用的XML文档吗

C#Validator

 // Set the validation settings.
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.DtdProcessing = DtdProcessing.Parse;
        settings.ValidationType = ValidationType.Schema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessIdentityConstraints;


        settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

        // Create the XmlReader object.
        XmlReader reader = XmlReader.Create(path, settings);

        try
        {
            // Parse the file. 
            while (reader.Read()) ;
            if (isValid)
            {
                Console.WriteLine("Validatoin Complete:Valid XMLFile");
            }
            else
            {
                Console.WriteLine("Validatoin Complete: Not a Valid XMLFile");
            }
        }
        catch (System.Xml.XmlException e)
        {
            //Displays any parsing errors
            Console.WriteLine("Parsing error:" + e.Message);
            isValid = false;
        }

  // Display any warnings, general errors, and validation errors .
    // If there are only warnings an xmldocument is still valid
    private static void ValidationCallBack(object sender, ValidationEventArgs args)
    {
         if (args.Severity == XmlSeverityType.Warning )
        {
            Console.WriteLine("Warning: " + String.Format("Line: {0}, Position: {1} \"{2}\"",
                args.Exception.LineNumber, args.Exception.LinePosition,
args.Exception.Message));
        }
        else if (args.Severity == XmlSeverityType.Error)
        {
            Console.WriteLine("Error: " + String.Format("Line: {0}, Position: {1} \"{2}\"",
                args.Exception.LineNumber, args.Exception.LinePosition,
args.Exception.Message));
            isValid = false;
        }
        else
        {
            Console.WriteLine("Validation error: " + args.Message);
            isValid = false;
        }

    }
  }
 // Set the validation settings.
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.DtdProcessing = DtdProcessing.Parse;
        settings.ValidationType = ValidationType.Schema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessIdentityConstraints;


        settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

        // Create the XmlReader object.
        XmlReader reader = XmlReader.Create(path, settings);

        try
        {
            // Parse the file. 
            while (reader.Read()) ;
            if (isValid)
            {
                Console.WriteLine("Validatoin Complete:Valid XMLFile");
            }
            else
            {
                Console.WriteLine("Validatoin Complete: Not a Valid XMLFile");
            }
        }
        catch (System.Xml.XmlException e)
        {
            //Displays any parsing errors
            Console.WriteLine("Parsing error:" + e.Message);
            isValid = false;
        }

  // Display any warnings, general errors, and validation errors .
    // If there are only warnings an xmldocument is still valid
    private static void ValidationCallBack(object sender, ValidationEventArgs args)
    {
         if (args.Severity == XmlSeverityType.Warning )
        {
            Console.WriteLine("Warning: " + String.Format("Line: {0}, Position: {1} \"{2}\"",
                args.Exception.LineNumber, args.Exception.LinePosition,
args.Exception.Message));
        }
        else if (args.Severity == XmlSeverityType.Error)
        {
            Console.WriteLine("Error: " + String.Format("Line: {0}, Position: {1} \"{2}\"",
                args.Exception.LineNumber, args.Exception.LinePosition,
args.Exception.Message));
            isValid = false;
        }
        else
        {
            Console.WriteLine("Validation error: " + args.Message);
            isValid = false;
        }

    }
  }