0

スキーマに対して XML ファイルを検証する C# で記述されたプログラムがあります。

xmlSchemaCollection.Add(null, schemaFileName)where xmlSchemaCollectionis a XmlSchemaCollectionand schemaFileNameis the uri をスキーマ ファイルに呼び出すと、次のようになることがあります。

「System.IO.DirectoryNotFoundException: パスの一部が見つかりませんでした」.

スキーマを含むファイルはローカル ディスクに存在し、全員が読み取り権限を持っています。これは、100 回に 1 回程度ランダムに発生します。

誰もこれを見たことがありますか?

4

2 に答える 2

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

作成したパスに誤りがあるはずです。。。

于 2013-03-06T09:39:34.587 に答える
0

スキーマが別のスキーマを参照しており、パーサーが (存在しない) ファイルの場所からスキーマを開こうとしています。xsd の最初の行を投稿できますか?

于 2013-03-06T09:25:57.493 に答える