xsd.exeでxsdスキーマから生成されたクラスがあります。私はスキーマを制御できません。 XmlSerlializerでの読み書き、シリアル化されたデータの検証はうまくいきます。 私は、スキーマのルールに基づいて、ユーザー入力を含むデータにオンラインエラーチェックを実装したいと考えています。繰り返しますが、シリアライズと検証の問題はありませんが、フォールトの位置を追跡する簡単な方法は見当たりません。どのクラスのインスタンスが発生したのでしょうか。 XmlValidatingWriterが存在しない理由は、クラスが既にスキーマの互換性を保証しているということですが、これはxsd.exe生成クラスでは当てはまりません。 XmlSchemaValidator push-based validationについてのページがありますが、これは私のクラスのすべてがxml直列化可能であるという事実を完全に無視しているようなスーパーマニュアルに見えます。障害位置のXSDに対するC#データ検証
私は同様の質問を見つけましたが、誰もこの特定の目標を持っていないようです。私は解決策につながる答えを見つけることもできませんでした。私は何らかの理由でこれが不可能であると結論づけました。現時点では私には見えますが、その理由を理解して、私のアーキテクチャ全体が間違っていた場所を知りたいと思います。
ありがとうございます。
ほとんどの 'XmlReader'インスタンスは[' IXmlLineInfo'](https://msdn.microsoft.com/en-us/library/system.xml.ixmllineinfo.aspx)を実装しています。 'XElement' [これも実装しています](https://stackoverflow.com/a/4471030/3744182)。 XMLの検証方法に応じて、[この回答](https://stackoverflow.com/a/29882953/3744182)または[こちら](https: //stackoverflow.com/a/621069/3744182)。 XMLを検証する方法を示す[mcve]を共有するために質問を編集できますか? – dbc
また、 'XmlSchemaException'には行と位置の情報があります。 [XmlReaderSettings.ValidationEventHandler'](https://msdn.microsoft.com/en-us/library/system.xml.xmlreadersettings.validationeventhandler(v = vs.110).aspx)に正しくあります。行く。 – dbc
デシリアライズ時に検証する一般的なメソッドについては、[要素が見つからない場合はC#でXmlSerializerを使用して逆シリアル化できませんか?](https://stackoverflow.com/a/259969/3744182)を参照してください。検証に失敗すると、 'XmlSchemaException'を含む[ValidationEventArgs'](https://msdn.microsoft.com/en-us/library/system.xml.schema.validationeventargs(v = vs.110).aspx)が渡されます。 。 – dbc