C# &引用;找不到元素的架构信息…“;在XML文档中
我正在尝试验证GXL 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">
<?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;
}
}
}