我有一个用C#编写的程序,它根据模式验证XML文件。
有时当我致电xmlSchemaCollection.Add(null, schemaFileName)
时,xmlSchemaCollection
是XmlSchemaCollection
而schemaFileName
是我得到的架构文件的uri:
“System.IO.DirectoryNotFoundException:找不到部分内容 路径”。
具有架构的文件存在于本地磁盘上,并且每个人都具有读取权限。这种情况在100次中随机发生一次。
有没有人见过这个?
答案 0 :(得分:0)
您的架构引用了另一个架构,解析器正在尝试从(未存在的)文件位置打开它。你能发布xsd的第一行吗?
答案 1 :(得分:0)
像这样写
sc.Add(null, "DataSet1.xsd");
将DataSet1.xsd添加到项目中,并将“复制到输出目录”属性设置为“始终复制”。 (右键单击DataSet1.xsd并选择属性以设置属性)
希望这会对你有帮助......
已修改
我在系统中创建了相同的路径和相同的模式名称,我可以执行以下代码,没有任何异常:
try
{
XmlSchemaCollection sc = new XmlSchemaCollection();
sc.ValidationEventHandler += new ValidationEventHandler(sc_ValidationEventHandler);
var schemaFileName = "C:\\BrackeGis\\xmlschema\\BGO-Info-1_2.xsd";
sc.Add(null, schemaFileName);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
您创建的路径中必定存在一些错误。 。