public XmlDocument LoadXmlDocumentFromStream(Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } bool succeeded = false; try { XmlDocument result; stream = TestUtil.EnsureStreamWithSeek(stream); if (this == JsonLight) { result = JsonValidator.ConvertToXmlDocument(stream); } else if (this == Atom) { XmlDocument document = new XmlDocument(TestUtil.TestNameTable); document.Load(stream); result = document; } else { throw new NotSupportedException("XmlDocument creation not supported for serialization format " + this.Name); } succeeded = true; return(result); } finally { if (!succeeded) { if (stream.CanSeek) { stream.Position = 0; Trace.WriteLine("Failing document:"); Trace.Indent(); Trace.WriteLine(new StreamReader(stream).ReadToEnd()); Trace.Unindent(); } } } }