Index: Ringtoets/Common/src/Ringtoets.Common.IO/Readers/CombinedXmlSchemaDefinition.cs
===================================================================
diff -u -r0d6159f5ff86ecb8733595159267c32d68bd4bfb -r7683c48cab2de71c7e6e3960f43d491660a4b552
--- Ringtoets/Common/src/Ringtoets.Common.IO/Readers/CombinedXmlSchemaDefinition.cs (.../CombinedXmlSchemaDefinition.cs) (revision 0d6159f5ff86ecb8733595159267c32d68bd4bfb)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/Readers/CombinedXmlSchemaDefinition.cs (.../CombinedXmlSchemaDefinition.cs) (revision 7683c48cab2de71c7e6e3960f43d491660a4b552)
@@ -26,6 +26,7 @@
using System.Net;
using System.Text;
using System.Xml;
+using System.Xml.Linq;
using System.Xml.Schema;
namespace Ringtoets.Common.IO.Readers
@@ -77,6 +78,16 @@
}
///
+ /// Validates the provided XML document based on the combined schema definition.
+ ///
+ /// The XML document to validate.
+ /// Thrown when the provided XML document does not match the combined schema definition.
+ public void Validate(XDocument document)
+ {
+ document.Validate(xmlSchemaSet, null);
+ }
+
+ ///
/// Check the provided schema definitions for not being null, empty or only containing white spaces.
///
/// A string representing the main schema definition.
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs
===================================================================
diff -u -rc2e949a351b7f5d3d112a7e02d3baf8370bfb40b -r7683c48cab2de71c7e6e3960f43d491660a4b552
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs (.../CombinedXmlSchemaDefinitionTest.cs) (revision c2e949a351b7f5d3d112a7e02d3baf8370bfb40b)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs (.../CombinedXmlSchemaDefinitionTest.cs) (revision 7683c48cab2de71c7e6e3960f43d491660a4b552)
@@ -23,6 +23,7 @@
using System.Collections.Generic;
using System.IO;
using System.Xml;
+using System.Xml.Linq;
using System.Xml.Schema;
using Core.Common.TestUtil;
using NUnit.Framework;
@@ -200,6 +201,54 @@
Assert.DoesNotThrow(call);
}
+ [Test]
+ public void Validate_ValidXmlDocument_DoesNotThrowException()
+ {
+ // Setup
+ string xmlFilePath = Path.Combine(testDirectoryPath, "validXmlDocument.xml");
+ XDocument validXmlDocument = XDocument.Load(xmlFilePath, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo | LoadOptions.SetBaseUri);
+
+ var combinedXmlSchemaDefinition = new CombinedXmlSchemaDefinition(validMainSchemaDefinition, new Dictionary
+ {
+ {
+ "NestedSchemaDefinition1.xsd", validNestedSchemaDefinition1
+ },
+ {
+ "NestedSchemaDefinition2.xsd", validNestedSchemaDefinition2
+ }
+ });
+
+ // Call
+ TestDelegate call = () => combinedXmlSchemaDefinition.Validate(validXmlDocument);
+
+ // Assert
+ Assert.DoesNotThrow(call);
+ }
+
+ [Test]
+ public void Validate_InvalidXmlDocument_ThrowXmlSchemaValidationException()
+ {
+ // Setup
+ string xmlFilePath = Path.Combine(testDirectoryPath, "invalidXmlDocument.xml");
+ XDocument validXmlDocument = XDocument.Load(xmlFilePath, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo | LoadOptions.SetBaseUri);
+
+ var combinedXmlSchemaDefinition = new CombinedXmlSchemaDefinition(validMainSchemaDefinition, new Dictionary
+ {
+ {
+ "NestedSchemaDefinition1.xsd", validNestedSchemaDefinition1
+ },
+ {
+ "NestedSchemaDefinition2.xsd", validNestedSchemaDefinition2
+ }
+ });
+
+ // Call
+ TestDelegate call = () => combinedXmlSchemaDefinition.Validate(validXmlDocument);
+
+ // Assert
+ Assert.Throws(call);
+ }
+
public CombinedXmlSchemaDefinitionTest()
{
validMainSchemaDefinition = File.ReadAllText(Path.Combine(testDirectoryPath, "validMainSchemaDefinition.xsd"));
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/invalidXmlDocument.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/invalidXmlDocument.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/invalidXmlDocument.xml (revision 7683c48cab2de71c7e6e3960f43d491660a4b552)
@@ -0,0 +1,6 @@
+
+
+ -
+
+
+
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validXmlDocument.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validXmlDocument.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validXmlDocument.xml (revision 7683c48cab2de71c7e6e3960f43d491660a4b552)
@@ -0,0 +1,6 @@
+
+
+ -
+ Test
+
+
\ No newline at end of file