+2006-11-13 Michael Meeks <michael.meeks@novell.com>
+
+ * XmlReader.cs, XmlTextReader.cs, XmlTextReader2.cs:
+ pass the XmlResolver through to the GetStream impl.
+
2006-10-30 Atsushi Enomoto <atsushi@ximian.com>
* XmlTextReader2.cs : if DTD does not exist, do not try to resolve
settings = PopulateSettings (settings);
if (context == null)
context = PopulateParserContext (settings, url);
- XmlTextReader xtr = new XmlTextReader (true, url, GetNodeType (settings), context);
+ XmlTextReader xtr = new XmlTextReader (false, settings.XmlResolver, url, GetNodeType (settings), context);
XmlReader ret = CreateCustomizedTextReader (xtr, settings);
xtr.CloseInput = true;
return xtr;
// This is used in XmlReader.Create() to indicate that string
// argument is uri, not an xml fragment.
- internal XmlTextReader (bool dummy, string url, XmlNodeType fragType, XmlParserContext context)
+ internal XmlTextReader (bool dummy, XmlResolver resolver, string url, XmlNodeType fragType, XmlParserContext context)
{
+ if (resolver == null)
+ resolver = new XmlUrlResolver ();
+
+ this.XmlResolver = resolver;
string uriString;
Stream stream = GetStreamFromUrl (url, out uriString);
this.InitializeContext (uriString, context, new XmlStreamReader (stream), fragType);
source = new XmlTextReaderImpl (baseURI, xmlFragment, fragType, context);
}
- internal XmlTextReader (bool dummy, string url, XmlNodeType fragType, XmlParserContext context)
+ internal XmlTextReader (bool dummy, XmlResolver resolver, string url, XmlNodeType fragType, XmlParserContext context)
{
- source = new XmlTextReaderImpl (dummy, url, fragType, context);
+ source = new XmlTextReaderImpl (dummy, resolver, url, fragType, context);
}
private XmlTextReader (XmlTextReaderImpl entityContainer, bool insideAttribute)
+2006-11-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlReaderSettingsTests.cs : added custom resolver case for primary
+ XML stream (custom resolver is indeed used and here it should cause
+ error).
+
2006-11-13 Atsushi Enomoto <atsushi@ximian.com>
* XmlReaderSettingsTests.cs : added NullResolver() case.
#if NET_2_0
using System;
using System.IO;
+using System.Net;
using System.Text;
using System.Xml;
using System.Xml.Schema;
xr.Read ();
}
}
+
+ class ThrowExceptionResolver : XmlResolver
+ {
+ public override ICredentials Credentials {
+ set { }
+ }
+
+ public override object GetEntity (Uri uri, string type, Type expected)
+ {
+ throw new ApplicationException ("error");
+ }
+ }
+
+ [Test]
+ [ExpectedException (typeof (ApplicationException))]
+ public void CustomResolverUsedForXmlStream ()
+ {
+ XmlReaderSettings settings = new XmlReaderSettings ();
+ settings.XmlResolver = new ThrowExceptionResolver ();
+ using (XmlReader xr = XmlReader.Create ("Test/XmlFiles/simple.xml", settings)) {
+ while (!xr.EOF)
+ xr.Read ();
+ }
+ }
}
}
#endif