http://mws.codeplex.com/
Showing posts with label XML. Show all posts
Showing posts with label XML. Show all posts
Saturday, January 19, 2013
Monday, June 13, 2011
XML Validation
Its worth documenting this somewhere even though its pretty straight forward.
namespace XmlValidator { using System; using System.IO; using System.Linq; using System.Xml; using System.Xml.Linq; using System.Xml.Schema; public class EasyXmlValidator { private Action<string> output; public EasyXmlValidator(Action<string> outputWriter) { this.output = outputWriter; } public bool Verify(string[] schemaFilenames, string xml) { var schemaSet = new XmlSchemaSet(); foreach (string schema in schemaFilenames) { string content = File.ReadAllText(schema); XDocument document = XDocument.Parse(content); var namespaceElement = document.Root.Attributes("targetNamespace").FirstOrDefault(); var name = namespaceElement == null ? string.Empty : namespaceElement.Value; schemaSet.Add(name, XmlReader.Create(new StringReader(content))); } XDocument doc1 = XDocument.Parse(xml); Console.WriteLine("Validating doc1"); bool errors = false; doc1.Validate(schemaSet, (o, e) => { this.output(string.Format("{0}", e.Message)); errors = true; }); this.output(string.Format("doc1 {0}", errors ? "did not validate" : "validated")); return !errors; } public bool Verify(string schema, string xml) { return Verify(new[] { schema }, xml); } } }
Subscribe to:
Posts (Atom)