2012-04-02 16 views
2

ファイル自体に指定されたスキーマを持たない特定のXMLを取得するWebサービスがあります。 取得したXMLファイルをテストするために使用されるプロジェクトにXSDスキーマがあります。特定のXSDスキーマに対してXMLを検証する

問題は、バリデータが有効でない場合でも、バリデータがそのファイルを受け入れるように見えることです。

私が使用しているコードは(一部はそれを容易にするために省略)これです:

var schemaReader = XmlReader.Create(new StringReader(xmlSchemeInput)); 
var xmlSchema = XmlSchema.Read(schemaReader, ValidationHandler); 

var xmlReaderSettings = new XmlReaderSettings(); 
xmlReaderSettings.Schemas.Add(xmlSchema); 
xmlReaderSettings.ValidationEventHandler += ValidationHandler; 
xmlReaderSettings.ValidationType = ValidationType.Schema; 
xmlReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessIdentityConstraints; 
xmlReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings; 
xmlReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation; 

using(var xmlReader = XmlReader.Create(new StringReader(xmlInput), xmlReaderSettings)) 
{ 
    while (xmlReader.Read()) { } 
} 

// return if the xml is valid or not 

私は素晴らしい仕事インライン指定されたスキーマを持ついくつかの解決策を見つけましたが、同様に指定されたスキーマできましたこれは(私は動作するはずです)私は何かを見つけるように見えることはできません。

何か間違っていますか?あるいは、私はそれがうまくいかなければならないと仮定して間違っていますか?

ありがとうございます!

答えて

0

てみ

xmlReaderSettings.Schemas.Add(xmlSchema); 

は、そのような状況で私のために働いた

xmlReaderSettings.Schemas.Compile() 

後に追加すること。

関連する問題