Add a test case for issue #332

XML Declarations can occur only at the beginning of an XML Document.
Parse() should throw an error, for not well-formed XML Documents.
diff --git a/xmltest.cpp b/xmltest.cpp
index b70fc51..597cebb 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -1459,6 +1459,25 @@
 		doc.LoadFile( "resources/dream.xml" );

 		XMLTest( "Error should be cleared", false, doc.Error() );

 	}

+	

+	{

+		// Check that declarations are parsed only as the FirstChild

+        	const char* xml0 =  	"<?xml version=\"1.0\" ?>"

+        				"   <!-- xml version=\"1.1\" -->"

+        				"<first />";

+        	const char* xml1 =  	"<?xml version=\"1.0\" ?>"

+        				"   <?xml version=\"1.1\" ?>"

+        				"<first />";

+        	const char* xml2 =  	"<first />"

+        				"<?xml version=\"1.0\" ?>";

+        	XMLDocument doc;

+        	doc.Parse(xml0);

+        	XMLTest("Test that the code changes do not affect normal parsing", doc.Error(), false);

+        	doc.Parse(xml1);

+        	XMLTest("Test that the second declaration throws an error", doc.Error(), true);

+        	doc.Parse(xml2);

+        	XMLTest("Test that declaration after a child throws an error", doc.Error(), true);

+	}

 

 	// ----------- Performance tracking --------------

 	{