|
//----------------------------------------------------------------------------------------
// patterns & practices - Smart Client Software Factory - Guidance Package
//
// This file was generated by this guidance package as part of the solution template
//
// The XmlValidationHelper class is a helper used internally to work with xml serialization and validation
//
// For more information see:
// ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ms.practices.scsf.2007may/SCSF/html/03-01-010-How_to_Create_Smart_Client_Solutions.htm
//
// Latest version of this Guidance Package: http://go.microsoft.com/fwlink/?LinkId=62182
//----------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.IO;
using System.Xml.Serialization;
using System.Reflection;
namespace DialogBox.Infrastructure.Library
{
internal static class XmlValidationHelper
{
public static TRootElement DeserializeXml<TRootElement>(string xml, string xsdResourceName, string schemaUri)
{
XmlSerializer serializer = new XmlSerializer(typeof(TRootElement));
using (XmlReader reader = GetValidatingReader(xml, xsdResourceName, schemaUri))
return (TRootElement)serializer.Deserialize(reader);
}
public static XmlReader GetValidatingReader(string xml, string xsdResourceName, string schemaUri)
{
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(String.Format("{1}.{0}", xsdResourceName, typeof(XmlValidationHelper).Namespace));
XmlTextReader schemaReader = new XmlTextReader(stream);
stream.Dispose();
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(schemaUri, schemaReader);
StringReader xmlStringReader = new StringReader(xml);
XmlReader catalogReader = XmlReader.Create(xmlStringReader, settings);
return catalogReader;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Program Manager in Sculpture project, Interesting in .NET Model driven development.