0

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

有时当我调用xmlSchemaCollection.Add(null, schemaFileName)where xmlSchemaCollectionis aXmlSchemaCollectionschemaFileNameis 到架构文件的 uri 时,我得到:

“System.IO.DirectoryNotFoundException:找不到路径的一部分”。

具有架构的文件存在于本地磁盘上,并且每个人都对其具有读取权限。这大约是 100 次随机发生的。

有没有人见过这个?

4

2 回答 2

0

像这样写

sc.Add(null, "DataSet1.xsd");  

将 DataSet1.xsd 添加到您的项目并将属性“复制到输出目录”设置为“始终复制”。(右键DataSet1.xsd,选择properties设置属性)

希望对你有帮助...

已编辑

我在我的系统中创建了与您提供的相同的路径和相同的模式名称,并且我能够毫无例外地执行以下代码:

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

您创建的路径一定有错误。. .

于 2013-03-06T09:39:34.587 回答
0

您的架构引用了另一个架构,并且解析器正在尝试从(不存在的)文件位置打开它。你能发布xsd的第一行吗?

于 2013-03-06T09:25:57.493 回答