System.IO.DirectoryNotFoundException:针对XSD验证XML时

时间:2013-03-06 09:23:43

标签: c# xml exception random xsd

我有一个用C#编写的程序,它根据模式验证XML文件。

有时当我致电xmlSchemaCollection.Add(null, schemaFileName)时,xmlSchemaCollectionXmlSchemaCollectionschemaFileName是我得到的架构文件的uri:

  

“System.IO.DirectoryNotFoundException:找不到部分内容   路径”。

具有架构的文件存在于本地磁盘上,并且每个人都具有读取权限。这种情况在100次中随机发生一次。

有没有人见过这个?

2 个答案:

答案 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);
        }  

您创建的路径中必定存在一些错误。 。