2012-01-27 14 views
3

XSDスキーマを持つXMLファイルを検証したいと考えています。私は以下を使用します:無効な要素にアクセスしてC#でXSDでXMLを検証する

var settings = new XmlReaderSettings(); 
settings.ValidationFlags = XmlSchemaValidationFlags.AllowXmlAttributes 
    | XmlSchemaValidationFlags.ProcessIdentityConstraints 
    | XmlSchemaValidationFlags.ProcessInlineSchema   
    | XmlSchemaValidationFlags.ReportValidationWarnings; 
settings.ValidationType = ValidationType.Schema; 
settings.ValidationEventHandler += new ValidationEventHandler(settings_ValidationEventHandler); 
settings.Schemas.Add(xsc); 
var vreader = XmlReader.Create(stream, settings); 
while (vreader.Read()); 

そして、何らかのエラーが発生した場合、私はハンドラで人間が読めるような情報を持っています。しかし、私はエラーを引き起こしたノードを知りたい。 XmlElementなどのオブジェクトへのアクセスはありません。それを行う方法はありますか?

答えて

1

これを行う簡単な方法はわかりません...まず、ノードに関連付けられたSchemaInfoプロパティを見てみましょう。直感的には、エラーに応じて、あなたはまったくそれを得ることができません...

これらの間の唯一の "キー"は、行/列番号である可能性があります、次に相互索引を付けることができます(read this、 Xml.Linqを使用しています)。

関連する問題