6

C#/ .NET 2.0で、XmlSerializerを使用してオブジェクトをシリアル化する場合、XMLスキーマに対して出力を検証する最も簡単な方法は何ですか?

問題は、XmlSerializerを使用して無効なXMLを作成するのは非常に簡単であり、面倒に見えないXMLを検証する方法が見つからないことです。理想的には、XmlSerializerでスキーマを設定するか、検証するXmlWriterを使用することを期待します。

4

2 に答える 2

4

検証リーダーを使用して再度読み込むのはどうですか

これが簡単な刺し傷です

Stream stream = new MemoryStream(Encoding.UTF8.GetBytes("<YourXml />"));
var input = mappingAssembly.GetManifestResourceStream(
            "MySchema.xsd"
            ); //This could be whatever resource your schema is           
var schemas = new XmlSchemaSet();            
schemas.Add(
   "urn:YourSchemaUrn",
   XmlReader.Create(
      input
      )
 );

var settings = new XmlReaderSettings
                           {
                               ValidationType = ValidationType.Schema,
                               Schemas = schemas
                           };

settings.ValidationEventHandler += MakeAHandlerToHandleAnyErrors;

var reader = XmlReader.Create(stream, settings);
while (reader.Read()) {} //Makes it read to the end, therefore validates

エラーが発生したときに何かを実行するには、ハンドラーが必要です。

于 2010-03-09T09:50:13.320 に答える
0

XmlReaderを使用して、XSDスキーマに対してXMLファイルを検証できます。

于 2010-03-09T09:46:56.643 に答える