0

サービス プロバイダーが提供する WSDL といくつかの XSD ファイルを使用して、パブリック SOAP Web サービスのクライアントを作成しました。XSD ファイルに対してユーザー データを検証する簡単な方法を見つけたかったので、MSDN の標準的な例を使用し、XSD ファイルの XmlSchemaSet、XmlReader、およびエラー メッセージをキャッチする検証ルーチンを使用しました。(コードはhttp://msdn.microsoft.com/en-us/library/as3tta56.aspxで入手できます。) 一部のデータ要素では機能しますが、無効な場合にエラーをスローしないものもあります。「ValidationFlags = ValidationFlags Or XmlSchemaValidationFlags.ReportValidationWarnings」を含めると、「要素 'MyRequest' のスキーマ情報が見つかりませんでした」、「属性 'TheDate' のスキーマ情報が見つかりませんでした」など、多くの警告が表示されます。しかし、VS2010 IDE で XSD ファイルを開くことができ、その XML スキーマ エクスプローラーにはこれらの要素と属性が表示されます。

このように VS2010 で XML データを検証することに精通している方への主な質問は、XmlReader 検証で処理できる XSD ファイルの複雑さに制限はありますか? ターゲット名前空間のプレフィックスが XmlReader を混乱させる可能性はありますか? スキーマには何千もの複雑な型が定義されており、7 つの XSD ファイルにまたがっています。そのため、ユーザー入力フィールドごとに検証ルーチンを作成するのではなく、これを自動的に処理する必要がありました。

前もって感謝します。

4

1 に答える 1

0

.NET の検証は完璧ではないかもしれませんが、業界で最高のものの 1 つです。彼らが確かに抱えている問題の 1 つは、スキーマ ローダー (私たちは独自のものを使用しています) に関するもので、簡単にだまされることがあります (私はそう思います)。上記以外に、あなたが説明した線に沿って、他の制限を認識していません。私たちは日常的に .NET XmlSchemaSet を使用して、あらゆる種類の名前空間の組み合わせで、数千の要素、型などを含む、数百のファイルにまたがる XSD を読み込んで検証します。

于 2013-04-05T11:26:12.920 に答える