diff --git a/src/Core/WinSWCore/ServiceDescriptor.cs b/src/Core/WinSWCore/ServiceDescriptor.cs index 5845843..1627658 100755 --- a/src/Core/WinSWCore/ServiceDescriptor.cs +++ b/src/Core/WinSWCore/ServiceDescriptor.cs @@ -103,7 +103,10 @@ namespace winsw public void ValidateAndLoadXmlSchema(XmlReader reader) { - XmlReaderSettings settings = new XmlReaderSettings(); + XmlReaderSettings settings = new XmlReaderSettings(); + + settings.ValidationType = ValidationType.Schema; + settings.ValidationEventHandler += new ValidationEventHandler(XmlValidationEventHandler); Assembly a = Assembly.GetExecutingAssembly(); @@ -115,10 +118,9 @@ namespace winsw } } - settings.ValidationType = ValidationType.Schema; - settings.ValidationEventHandler += new ValidationEventHandler(XmlValidationEventHandler); + var new_reader = XmlReader.Create(reader, settings); - dom.Load(reader); + dom.Load(new_reader); } private XmlReader GetXMLReader() diff --git a/src/Test/winswTests/ServiceDescriptorTests.cs b/src/Test/winswTests/ServiceDescriptorTests.cs index 9e34ab4..0c495ed 100644 --- a/src/Test/winswTests/ServiceDescriptorTests.cs +++ b/src/Test/winswTests/ServiceDescriptorTests.cs @@ -448,15 +448,19 @@ $@" [Test] public void ValidateAndLoadXmlSchemaTest() { - const string seedXml = "" + - "myapp " + - "MyApp Service (powered by WinSW)" + - "This service is a service created from a minimal configuration" + -""; + const string seedXml = @" + myapp + appname + app description + jenkins + "; + + + var dom = new XmlDocument(); + dom.LoadXml(seedXml); + var serviceDescriptor = new ServiceDescriptor(dom); - var serviceDescriptor = ServiceDescriptor.FromXML(seedXml); var reader = XmlReader.Create(new StringReader(seedXml)); - Assert.That(() => serviceDescriptor.ValidateAndLoadXmlSchema(reader), Throws.TypeOf()); } }