2017-04-19 1 views
0

Schematron.netのnugetパッケージを使用しています。結果を構造化形式で処理できるようにValidateへの呼び出しの出力を得ることができるかどうかを知りたいと思います。私の既存のソリューションはtry catchブロックに依存しており、アサーションの失敗はすべてエラーメッセージとして例外内のメッセージとして返されます。この情報をXMLとして取得する方法はありますか?私はこのような質問をするpostを見ましたが、答えはSchematron.netの実装を参照していません。Schematron.netの構造化エラー報告

try 
{ 
    var bookValidator = new Validator(); 
    bookValidator.AddSchema("book.xsd"); 
    bookValidator.Validate("book.xml"); 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message); 
} 

答えて

0

それは実際にはかなり簡単です:

私のコードは次のようになります。

try 
{ 
    //OutputFormatting is a public enum from the Schematron library. Valid values include boolean, default, Log, simple and XML. 
    OutputFormatting format = OutputFormatting.XML; 
    var bookValidator = new Validator(format); 
    bookValidator.AddSchema("book.xsd"); 
    bookValidator.Validate("book.xml"); 
} 
catch (Exception ex) 
{ 
    //ex.Message will now be in XML format and can be processed however I want! 
    Console.WriteLine(ex.Message); 
} 

そして、あなたの構造化された結果があります:私はちょうどバリのコンストラクタにOutputFormattingの、適切な列挙を渡すと、そのように、私は例外で、メッセージのフォーマットを制御することを可能にすることを実現しました。それが私には分かりませんでしたので、誰かを助けることを願っています。